Ик приемник
- Войдите на сайт для отправки комментариев
Вс, 16/03/2014 - 22:40
У Меня есть ардуино , ик приемник и серво машинки . Хочу с помошью Ик управлять сервами . А что мне делать если у меня получается так , что у всех кнопока первый код одинаковый а второй у всех одинаковый ( "кнопка 1 "- (1)FF629D , (2)FFFFFFFF . "кнопка 2 " - (1)FFA857, (2 )FFFFFFF . Как в программе различать эти кнопки если 2 сигнаал одинаковый . Пробовал так но не получаеться . Ведь эти 2 кода выдаються рандомно
#include <Servo.h> #include <IRremote.h> #define RECV_PIN 11 //вход ИК приемника IRrecv irrecv(RECV_PIN); decode_results results; unsigned long Value1 = 0xFF629D; unsigned long Value2 = 0xFFA857; Servo sg90; int sg90pos = 0; int Code ; void setup() { irrecv.enableIRIn(); // включить приемник sg90.attach(3); } void ChCode() { if (Code == Value1)sg90pos++; { sg90pos++; ServWrite(); } if (Code == Value2) { sg90pos--; ServWrite(); } } void loop() { if (irrecv.decode(&results)){ if (results.value != 0xFFFFFFFF) { Code = results.value; ChCode(); } else { ChCode(); } irrecv.resume(); } } void ServWrite() { sg90pos = constrain(sg90pos, 0, 180); sg90.write(sg90pos); delay(20); }
Имхо, в данном случае FFFFFFFF - просто отработка "повтора" предыдущей команды.
Если в вашем случае это не важно - просто игнорируйте такие посылки (или обрабатывайте соответствующим образом).
В 22 строке удалите sg20pos++.
Может ещё что есть, но для начала 22 строка
А зачем ведь кто я показывают что если эта кнопка срабатывает я двигаются в положительную сторону
А как мне это записать ? Не очень понял
Ведь для постоянного поворота сервы я должен удерживать кнопку