irrecv.enableirin() не работает

SUPERNYAMSTER

✩✩✩✩✩✩✩
19 Дек 2020
27
1
узнай коды пульт:
#include <IRremote.h> // подключаем библиотеку для IR приемника

IRrecv irrecv(3); // указываем пин, к которому подключен IR приемник
decode_results results;

void setup() {
   irrecv.enableIRIn();  // запускаем прием инфракрасного сигнала
   Serial.begin(9600); // подключаем монитор порта
}

void loop() {
   if (irrecv.decode(&results)) // если данные пришли выполняем команды
   {
      Serial.println(results.value); // отправляем полученные данные на порт
      irrecv.resume(); // принимаем следующий сигнал на ИК приемнике
   }
}
тут все работает. на ардуно моргает лампочка RX при приеме сигнала пульта. узнал коды кнопка. добил кот для серво поиграть решил изучить.

серво и ик-порт:
#include <IRremote.h>       // IR приемника
#include <ServoSmooth.h>    // серво
IRrecv irrecv(3);         // пин IR приемника
decode_results results;   //результат приема ИК

ServoSmooth myservo;       // создаем объект для управления серво

void setup()
{
   irrecv.enableIRIn();       // запускаем прием ик сигнала
   myservo.attach(8,10,175);  // указываем серво(пин, мин, макс, импульс)
   myservo.smoothStart();     // плавный старт говорят
   myservo.setSpeed(90);    // ограничить скорость
   myservo.setAccel(0.9);      // установить ускорение (разгон и торможение)
}

void loop()
{
  if (irrecv.decode(&results))   {         // если данные пришли выполняем команды
     if (results.value == 4001918335) {  // поворачиваем серво(угол), от ИК сигнала
      myservo.setTargetDeg(20);   }
     if (results.value == 3810010651) { // поворачиваем серво(угол), от ИК сигнала
      myservo.setTargetDeg(170);   }
     irrecv.resume();                     // принимаем следующий сигнал на ИК приемнике
  }
}
а вот тут уже лампочка RX не включается. но все компилируется и заливается. хотя кот включается. серво встает на указанное начальное положение
плата китай УНО
приемник 1838
серво sg90
питание усб
 

Старик Похабыч

★★★★★★★
14 Авг 2019
4,262
1,300
Москва
Уберите библиотеку сервы на время.
Вместо
myservo.setTargetDeg(20);
напишите что то типа Serial.println("go 20");
то же вместо 170.
Скорее всего все будет работать. Попробуйте взять обычную библиотеку сервы.

лампочка RX мигает когда что то использует Serial на вывод - вы там печатает что то
 

SUPERNYAMSTER

✩✩✩✩✩✩✩
19 Дек 2020
27
1
с простым серво все работаеТ.
с серсмутч не работает. видимо где то ошибка в понимании команд смутча
 

Akademik33

✩✩✩✩✩✩✩
19 Сен 2020
30
0
с простым серво все работаеТ.
с серсмутч не работает. видимо где то ошибка в понимании команд смутча
На сколько я понимаю, проблема в myservo.attach(8,10,175). 10 и 175 это не угол поворота,это длина импуса для мин и мах. Можешь их просто удалить и оставить только 8 номер пина серво. Думаю должно заработать.