Програмирование кнопок
- Войдите на сайт для отправки комментариев
Сб, 28/11/2020 - 14:53
Доброго Всем времени суток !
Кто может помочь в программировании переключателей.
Есть четыре переключателя каждый из них имеет две позиции с высоким уровнем или низким,
мне нужно как то их смикшировать и выдать на одном из пинов ардуино короткий импульс при переключении любого из переключателей. Надо отследить все переключатели и при любом изменении
вывести короткий импульс на одну из ног ардуино?
digitalRead(), if(), digitalWrite(), delay/millis()
Садман !!! Супер ! :)))
мне нужно как то...
Такие темы следует создавать в платном разделе "Ищу исполнителя".
В остальных принято вместе с вопросом публиковать скетч с попытками что-то сделать самостоятельно, схему соединений и конкретные вопросы (а не вопрос "как сделать?").
digitalRead(), if(), digitalWrite()
Так не получается.
Неправда Ваша - получается.
Мене нужно чтобы при любом переключении переключателей на выходе был небольшой импульс.
В независимости в каком положении переключатель, надо ловить любое изменение переключателей.
То, что Вам нужно, следует описывать в разделе "Ищу исполнителя".
В остальных разделах обсуждение начинается только после того, как выложены код и схема.
А можно небольшой примерчик ПОЖАЛУЙСТА.
А можно небольшой примерчик ПОЖАЛУЙСТА.
Вот смотрите как прикольно получается, вы тут с 16 года, за 4 года не освоили вопрос ?
int val1 = 0; int val2 = 0; int val3 = 0; int val4 = 0; int num = 0; void setup() { pinMode(8, INPUT); pinMode(9, INPUT); pinMode(10, INPUT); pinMode(11, INPUT); pinMode(12, OUTPUT); } void loop() { val1 = digitalRead(8); val2 = digitalRead(9); val3 = digitalRead(10); val4 = digitalRead(11); if(val1 == 0)num = 1; if(val1 == 1)num = 2; if(val2 == 0)num = 3; if(val2 == 1)num = 4; switch (num){ case 1: digitalWrite(12,1); delay(50); digitalWrite(12,0); break; case 2: digitalWrite(12,1); delay(50); digitalWrite(12,0); break; case 3: digitalWrite(12,1); delay(50); digitalWrite(12,0); break; case 4: digitalWrite(12,1); delay(50); digitalWrite(12,0); } }const uint8_t pins_in[]={8,9,10,11}; uint8_t pins_old_state[sizeof(pins_in)]; const uint8_t pin_out=12; #define IMPULSE_DELAY 50 void setup() { pinMode(pin_out,OUTPUT); digitalWrite(pin_out,LOW); for(uint8_t i=0;i<sizeof(pins_in);i++){ pinMode(pins_in[i],INPUT_PULLUP); pins_old_state[i]=digitalRead(pins_in[i]); } } void loop() { static uint8_t timer=0; if(digitalRead(pin_out) && millis()-timer>IMPULSE_DELAY){ digitalWrite(pin_out,LOW); } for(uint8_t i=0;i<sizeof(pins_in);i++){ uint8_t stat=digitalRead(pins_in[i]); if(pins_old_state[i]!=stat){ pins_old_state[i]=stat; timer=millis(); digitalWrite(pin_out,HIGH); } } }А тот код который привели вы говорит о вашем полнейшем не понимании. В следующий раз заходите в песочницу.
Огромное СПАСИБО заработало !!!
Удивительно....
Удивительно....