Серво двумя кнопками. Проверьте пожалуйста.
- Войдите на сайт для отправки комментариев
Сб, 12/03/2022 - 12:12
Здравствуйте, соучастники!
Делаю электронный слив для унитаза. После нескольких дней поиска нашел скетч, немного его подправил, (добавил вторую кнопку и убрал светодиоды) вроде заработало на симуляторе, но гложут сомнения, как-то все легко и просто получилось. Посмотрите пожалуйста,будет работать?
#include <Servo.h> // подключаем библиотеку для работы с сервоприводом Servo servo; // объявляем переменную servo типа "servo" int button2_pin = 4; // пин кнопки2 int button_pin = 2; // пин кнопки // переменные int buttonState = 0; // переменная для хранения состояния кнопки int button2State = 0; // переменная для хранения состояния кнопки void setup() { pinMode(button_pin, INPUT); // Инициализируем цифровой вход/выход в режиме входа. pinMode(button2_pin, INPUT); // Инициализируем цифровой вход/выход в режиме входа. servo.attach(3); // привязываем сервопривод к аналоговому выходу 3 void loop() { buttonState = digitalRead(button_pin);// считываем значения с входа кнопки if (buttonState == HIGH) { servo.write(180); //ставим вал на 180 delay (2000); // задержка в 2 секунды } else { servo.write(0); //ставим вал на 0 } { button2State = digitalRead(button2_pin);// считываем значения с входа кнопки if (button2State == HIGH) { servo.write(180); //ставим вал на 180 delay (4000); // задержка в 4 секунды } else { servo.write(0); //ставим вал на 0 } } }
И второй вопрос: можно ли в промежутках между работой полностью отключать Ардуину, например, ИК датчиком через триггерное реле?
Странный скетч. Непонятна логика работы.
На заполнение это никак не влияет. Это на слив. Смысл устройства - с помощью сервы подымать клапан слива. Нажатие одной кнопки на 2 секунды (сливается примерно половина бачка) другой кнопкой - на 4 секунды для полного слива всей воды. Делеи нужны для задержки клапана слива в поднятом состоянии на эти самые 2 и 4 секунды
1. Убери делеи: http://arduino.ru/tutorials/BlinkWithoutDelay
2. Зачем ардуину отключать?
1. Убери делеи: http://arduino.ru/tutorials/BlinkWithoutDelay
2. Зачем ардуину отключать?
1. В данном случае делеи никак не мешают
2. Чтобы не писать коды для спящего режима)
Я думаю делеи в таком случае никак не будут мешать или вредить работе Ардуино
1. Ты ссылку открывал?
2. Зачем ардуино сон? Ты ее от батареек питать вздумал? Это просто глупо - серва будут жрать во много раз больше, чем сможешь сэкономить сном. Да и не тот уровень у тебя - в сон лезть. Пусть работает.
Хорошо, "отключение" убираем))
Я думаю делеи в таком случае никак не будут мешать или вредить работе Ардуино
Дело твоё. Зачем тогда тему создал?
1. Ты ссылку открывал?
Думаю для такой простой задачи не нужны все эти заморочки с миллисами.
Я думаю делеи в таком случае никак не будут мешать или вредить работе Ардуино
Дело твоё. Зачем тогда тему создал?
Чтобы узнать имеет ли право на жизнь такой вариант воплощения
Дак вставь серву в унитаз и узнаешь - работает или нет. В моём нужнике такой девайс испытания не пройдёт.
Как это всё поставить - это будет отдельная тема))) Сейчас хотел про код. Я нуб в этом деле.
Мне кажется без ардуино будет интересней делать.
Мне кажется без ардуино будет интересней делать.
как без Ардуино организовать поворот сервы на определенный угол по короткому нажатию сенсорной кнопки и зафиксировать удержание там на 2 и 4 секунды с возвратом обратно? NE 555? )))
Сервой можно вращать с помощью NE555 (особенно на два угла), длительности задавать с помощью конденсаторов. Ардуино просто расширяет возможности реализации фантазий :-)
Сервой можно вращать с помощью NE555 (особенно на два угла), длительности задавать с помощью конденсаторов. Ардуино просто расширяет возможности реализации фантазий :-)
По работе Ардуино с сервоприводами информации больше. По 555 я ничего внятного не нашел.
Ну тогда Ардуино. Проверяйте свой скетч на макете. Только в "сетапе" вал на 0 забыли поставить :-)
servo.attach Это?
После добавить
servo.write(0);
//ставим вал на 0
может это:
После добавить
servo.write(0);
//ставим вал на 0
Сейчас хотел про код. Я нуб в этом деле.
если спрашиваешь про код - то слушай ответы. Делеи надо убрать. "Заморочки с миллис" - это две строки. Делеи ты поставил просто из лени. Не пытайся убедить нас, что ты такой болван, что не можешь понять миллис.
После добавить
servo.write(0);
//ставим вал на 0
Желательно, но в вашем варианте скетча необязательно. Проверяйте на макете, спрашивать "почему у меня получилось так..." лучше чем спрашивать "а что будет если я..." :-)
А чё две темы-то? У ТС в доме два унитаза? Или зачем?
По 555 я ничего внятного не нашел.
В том то и беда что Гуглем пользоваться не могут! Ужос! И это интеллигенция, вроде бы.(
А чё две темы-то? У ТС в доме два унитаза? Или зачем?
А порнуху
Сейчас хотел про код. Я нуб в этом деле.
Что-то не работает твой код в симуляторе((
Конечно не работает. Нужно головой подумать и в двух местах поправить - хоть какое-то участие принять в деле.
Поправил, пины кнопок и сервы, все равно не работает
ПС: И с помощью автомата, можно ОДНОЙ ардуиной сделать автоматизацию ЧЕТЫРЕХ сральников. с делеями это не получится.