Вот так верно?
При смене сигнала на энкодере(D2, D3) подключается либо D4(High) через резистор 680ом, либо D5 - 330ом.
Вот только, правильно ли я провел схемнотехническую имититацию нажатия резистивной кнопки не знаю.
Код:#define VolUp 4 #define VolDown 5 #define encoder0PinA 2 #define encoder0PinB 3 void setup() { pinMode(encoder0PinA, INPUT); digitalWrite(encoder0PinA, HIGH); // подключить подтягивающий резистор pinMode(encoder0PinB, INPUT); digitalWrite(encoder0PinB, HIGH); // подключить подтягивающий резистор attachInterrupt(0, doEncoderA, FALLING); // настроить прерывание interrupt 0 на pin 2 attachInterrupt(1, doEncoderB, FALLING); // настроить прерывание interrupt 0 на pin 3 pinMode(VolUp, OUTPUT); pinMode(VolDown, OUTPUT); Serial.begin (115200); } void loop() { //digitalWrite(VolDown , HIGH); } // обработка прерывания void doEncoderA() { if(digitalRead(encoder0PinB)==HIGH){Volume(1);} } // обработка прерывания void doEncoderB() { if(digitalRead(encoder0PinA)==HIGH){Volume(0);} } void Volume(byte updown) { Serial.println(updown); if (updown==1) {digitalWrite(VolUp , HIGH);} else {digitalWrite(VolDown , HIGH);} delay(200); digitalWrite(VolUp , LOW); digitalWrite(VolDown , LOW); }





Ответить с цитированием
