Странные наводки
- Войдите на сайт для отправки комментариев
Вс, 07/03/2021 - 00:58
Вот с чем столкнулся:
В коробке 10х20 см установлена ардуино нано и тумблер, на включение которого жужжат пару сервомашинок.
Столкнулся с очень странным поведением. Ардуино встает на паузу, пока я не поднесу руку к коробке на расстояние в 10-20 см. Т.е. присутствует странный эффект емкостного "возбуждения". Выполнение программы встает на паузу, пока я не поднесу руку.
Что за баг? Как с этим бороться?
Вот с чем столкнулся:
В коробке 10х20 см установлена ардуино нано и тумблер, на включение которого жужжат пару сервомашинок.
Столкнулся с очень странным поведением. Ардуино встает на паузу, пока я не поднесу руку к коробке на расстояние в 10-20 см. Т.е. присутствует странный эффект емкостного "возбуждения". Выполнение программы встает на паузу, пока я не поднесу руку.
Что за баг? Как с этим бороться?
Исключить все висящие в воздухе провода длиннее 10 см подключенные к входам. Или использовать внешние подтягивающие или стягивающие резисторы небольшого номинала 1-10 КОм.
Вот с чем столкнулся:
В коробке 10х20 см установлена ардуино нано и тумблер, на включение которого жужжат пару сервомашинок.
Столкнулся с очень странным поведением. Ардуино встает на паузу, пока я не поднесу руку к коробке на расстояние в 10-20 см. Т.е. присутствует странный эффект емкостного "возбуждения". Выполнение программы встает на паузу, пока я не поднесу руку.
Что за баг? Как с этим бороться?
#include <Servo.h> Servo lidservo; Servo armservo; Servo flag; int switchpin = 3; int action = 1; int pos = 0; void setup() { pinMode(switchpin,INPUT); lidservo.attach(1); armservo.attach(2); flag.attach(4); // Servo Default Starting Position armservo.write(50); flag.write(50); lidservo.write(90); } void loop() { // Action Selection starting with 1 if (digitalRead(switchpin) == HIGH) { if (action > 8) { action = 1; } if (action == 1) { action1(); } else if (action == 2) { action2(); } else if (action == 3) { action3(); } else if (action == 4) { action4(); } else if (action == 5) { action5(); } else if (action == 6) { action6(); } else if (action == 7) { action7(); } else if (action == 8) { action8(); } action += 1; } } //The Following are actions that are chosen chronologically void action1() { lidservo.write(20); delay(1000); armservo.write(177); delay(500); armservo.write(50); delay(1000); lidservo.write(90); delay(1000); } void action2() { lidservo.write(50); delay(100); armservo.write(177); delay(250); armservo.write(50); delay(100); lidservo.write(90); } void action3() { for(pos = 90; pos > 20; pos -=1) { lidservo.write(pos); delay(50); } armservo.write(177); delay(250); armservo.write(50); delay(100); lidservo.write(90); } void action4() { delay(250); lidservo.write(50); delay(100); armservo.write(177); delay(2500); for(pos = 177; pos > 90; pos -=1) { armservo.write(pos); delay(50); } lidservo.write(90); armservo.write(50); } void action5() { lidservo.write(50); delay(500); lidservo.write(90); delay(500); lidservo.write(50); delay(500); lidservo.write(90); delay(500); lidservo.write(50); delay(500); lidservo.write(90); delay(2500); lidservo.write(50); delay(100); armservo.write(177); delay(250); armservo.write(50); delay(100); lidservo.write(90); } void action6() { lidservo.write(50); delay(100); armservo.write(155); delay(250); armservo.write(50); delay(100); lidservo.write(90); delay(250); lidservo.write(50); delay(100); armservo.write(155); delay(250); armservo.write(50); delay(100); lidservo.write(90); delay(250); lidservo.write(50); delay(100); armservo.write(155); delay(250); armservo.write(50); delay(100); lidservo.write(90); delay(250); lidservo.write(50); delay(100); armservo.write(177); delay(250); armservo.write(50); delay(100); lidservo.write(90); } void action7() { for(pos = 90; pos > 20; pos -=2) { lidservo.write(pos); delay(50); } for(pos = 50; pos < 145; pos +=2) { armservo.write(pos); delay(100); } armservo.write(177); for(pos = 177; pos > 50; pos -=2) { armservo.write(pos); delay(100); } for(pos = 20; pos < 90; pos +=2) { lidservo.write(pos); delay(50); } lidservo.write(90); } void action8() { if (digitalRead(switchpin) == HIGH) { delay(1000); for(pos = 90; pos > 20; pos -=2) { lidservo.write(pos); delay(50); } for(pos = 50; pos < 175; pos +=10) { flag.write(pos); delay(50); } delay(250); for(pos = 175; pos > 125; pos -=10) { flag.write(pos); delay(50); } for(pos = 125; pos < 175; pos +=10) { flag.write(pos); delay(50); } for(pos = 175; pos > 125; pos -=10) { flag.write(pos); delay(50); } for(pos = 125; pos < 175; pos +=10) { flag.write(pos); delay(50); } for(pos = 175; pos > 125; pos -=10) { flag.write(pos); delay(50); } for(pos = 125; pos < 175; pos +=10) { flag.write(pos); delay(50); } for(pos = 175; pos > 125; pos -=10) { flag.write(pos); delay(50); } for(pos = 125; pos < 175; pos +=10) { flag.write(pos); delay(50); } delay(250); for(pos = 175; pos > 50; pos -=10) { flag.write(pos); delay(50); } for(pos = 20; pos < 90; pos +=2) { lidservo.write(pos); delay(50); } delay(2000); lidservo.write(50); delay(100); armservo.write(177); delay(250); armservo.write(50); delay(100); lidservo.write(90); } }Провода сократил. Ни чего не изменилось.
Там ещё стоит платка заряда лития и dc-dc с 3,7 до 5В
У Вас в коробке крыса, она чуйствует, когда вы руку подносите.
А код нужно по правилам вставлять.
Извините за нарушение правил. ))
тумблер как подключен? похоже нет подтяжки 3 пина никуда.
3 пин ардуины?
Извините за нарушение правил. ))
Так вставьте правильно. Так его никто читать не будет. Или скажут, что ошибка в строке №ХЗ, т.к. номеров строк нет.
3 пин ардуины?
Вам в посте #2 сказали, что нужна схема. Схемы нет. Отсюда и такие разговоры. Делайте, что Вам говорят, если Вам правда помощь нужна!
3 пин ардуины?
ну если
относится к ардуине, то - да!
Верно, тумблер подключен без подтяжки! Попробую исправить это.
Подтянул 3-ий вывод. Результат нулевой....
Прошу еще вашей помощи!
Подтянул 3-ий вывод.
куда? и как(чем)?
10 К к плюсу
ну так код то в этом случае надо менять..
Прошу в этом вопросе помощи!
как выключатель то подключен?
Один контакт на минус, второй на 3 пин. К 3 пину 10К от плюса.
как выключатель то подключен?
нда, бедный народец пошёл, мало у кого хрустальный шар есть. а ещё реже два.....
Схема: Ардуино нано, три сервы на трех пинах (1,2,4) и тумблер на 3 пине.
К 3 пину резистор на 10К от плюса.
Извиняюсь, но ставить и изучать программу, что бы нарисовать три элемента но очень хочется...
Нарисуй на бумажке и фото приложи к сообщению. А вообще проверь контакты, особенно землю. Если все точки земли соединить одним проводом, то подобных чудес не бывает.
Извиняюсь, но ставить и изучать программу, что бы нарисовать три элемента но очень хочется...
Словесное описание не заменяет схему. Ну а если "не очень хочется", зачем вообще было писать на форум?
Если Вам
Всем спасибо за советы! Развел + и - заново. Подправил подтяжку на 3-ем пине. Все заработало.
Все заработало.
это поаод, тем более в пятницу
Согласен. Остальным тоже Привет!
Жаль, что тут многие себя позиционируют исключительными. Но и им тоже спасибо! )))