Написал такой вот скетч Код (Text): #include <Servo.h> #include <IRremote.h> int RECEIVE_PIN = 11; IRrecv irrecv(RECEIVE_PIN); decode_results results; Servo myservo; Servo myservo2; void setup() { Serial.begin(9600); irrecv.enableIRIn(); myservo.attach(4); myservo2.attach(9); } void loop() { if ((irrecv.decode(&results)) && (results.value==0xFF48B7) ) { myservo.write(180); myservo2.write(2); } else if ((irrecv.decode(&results)) && (results.value==0xFF6897) ) { myservo.write(2); myservo2.write(180); } } Моя задумка такова: нажимаю на одну кнопку - серво поворачиваются на один угол0 нажимаю на другую - поворачиваются на другой угл. При подключении к питанию ардуино нажимаю на одну кнопку - сервы поворачивают, нажимаю на другую - ничего не происходит, хотя сервы должны были повернуться на другой угл. Почему так?
Да, подключил к питанию плату - попробовал одну кнопку, выключил и включил питание - попробовал другую. Команды верны и сервы поворачиваются, но потом другие команды они не выполняют
А что в это время выдает ИК приемник? Код (Text): //#include <Servo.h> #include <IRremote.h> const int RECEIVE_PIN = 11; IRrecv irrecv(RECEIVE_PIN); decode_results results; int cmd_count = 0; void setup() { Serial.begin(9600); irrecv.enableIRIn(); } void loop() { if (irrecv.decode(&results)) { Serial.print("command["); Serial.print(cmd_count++); Serial.print("]: "); Serial.print("0x"); Serial.println(results.value, HEX); } }
При таком куске коде: Код (Text): if ((irrecv.decode(&results)) && (results.value==0xFF48B7) ) { Serial.println(results.value, HEX); irrecv.resume(); // Receive the next value myservo.write(180); myservo2.write(2); } else if ((irrecv.decode(&results)) && (results.value==0xFF6897) ) { Serial.println(results.value, HEX); irrecv.resume(); // Receive the next value myservo.write(2); myservo2.write(180); } в мониторе появляются команды(FF48B7 и FF6897 без 0x).