Недавно начал работать с ардуино и загорелся желанием сделать так чтоб при нажатии на кнопку горел 1 светодиод при отпускании первый тух а 2 загорался ардуино UNO
Пытался сделать сам но получилось так что либо горит 2 но при нажатии и отпускании кнопки работает только одна а вторая безпрерывно горит Код (C++): const int LED2=8; const int LED=9; const int BUTTON=2; void setup() { pinMode (LED2,OUTPUT); pinMode (LED,OUTPUT); pinMode (BUTTON,INPUT); } void loop() { int buttonState = digitalRead(BUTTON); if (buttonState == HIGH) { digitalWrite(LED,LOW ); digitalWrite(LED2,HIGH ); } else { digitalWrite(LED,HIGH ); digitalWrite(LED2,LOW ); } }
какова логика работы вашего алгоритма? подали напряжение на МК, ничего не горит, затем нажали кнопку жмем - горит 1 диод. отпустили - загорелся второй ?
Код (C++): #define LED2 8 #define LED 9 #define BUTTON 2 #define STATE_INIT 0 #define STATE_LED1 1 #define STATE LED2 3 char state; void setup() { pinMode (LED2,OUTPUT); pinMode (LED,OUTPUT); pinMode (BUTTON,INPUT); state = STATE_INIT; } void loop() { int buttonState= digitalRead(BUTTON); if (buttonState == HIGH && state == STATE_INIT) { digitalWrite(LED,LOW ); digitalWrite(LED2,HIGH ); state = STATE_LED1 } else if(buttonState == LOW && state == STATE_LED1) { digitalWrite(LED,HIGH ); digitalWrite(LED2,LOW ); state = STATE_LED2; } } Антидребезг сами добавьте, мне лень
Уважаемый. А таки как потом state присвоить снова 0? Чтобы программа работала бесконечно? А тс выложите фотографию или схему, как у вас там все подключено. Антидребезг таки да не помешал бы хотябы на delay();
Домашнее задание, добавить антидребезг и сделать переход в конечном автомате ) всего то одну строку поменять