Код компилируется и заливается, но светодиодная лента не светит.
При этом на этом же макете с теми же параметрами по выводу - работает.
это не работает:
void setup() {
// pinMode(OutPin, OUTPUT);
Serial.begin(9600);
Serial.println(F("файл: dimmer_LED_IR-Pult"));
Serial.println(F("ШИМ на выводе D3"));
Serial.println(F("IR датчик на выводе D6"));
Serial.println(F("диапазон ШИМ 0...255"));
IR.begin(); // Инициируем работу с ИК-приёмником
}
void loop() {
//смотрим, что пришло по ИК каналу
if (IR.check()) // Если в буфере имеются данные, принятые с пульта (была нажата кнопка)
{
Serial.print(F(" Код кнопки: ")); // Выводим код нажатой кнопки
Serial.println(IR.data);
IR_Code = IR.data;
if (IR_Code == 551486205) { //стрелка вверх
brightnesR = brightnesR + Step;
}
if (IR_Code == 551518845) { //стрелка вниз
brightnesR = brightnesR - Step;
}
}
Serial.println(brightnesR);
analogWrite(OutPin, brightnesR);
}
#define OutPin 3 // D3 назначаем выходным для ШИМа
// int Bright[] = {10, 20, 30, 40, 70, 100, 150, 170, 200, 220, 250};
// int i = 5; // начальное значение ШИМ из массива выше
byte brightnesR = 5;
byte Step = 10 ;
#include <iarduino_IR_RX.h> // Подключаем библиотеку для работы с ИК-приёмником
iarduino_IR_RX IR(6); // Объявляем объект IR, с указанием вывода к которому подключён ИК-приёмник
unsigned long IR_Code = 0;
void setup() {
// pinMode(OutPin, OUTPUT);
Serial.begin(9600);
IR.begin(); // Инициируем работу с ИК-приёмником
}
void loop() {
//смотрим, что пришло по ИК каналу
if (IR.check()) // Если в буфере имеются данные, принятые с пульта (была нажата кнопка)
{
Serial.print(F(" Код кнопки: ")); // Выводим код нажатой кнопки
Serial.println(IR.data);
IR_Code = IR.data;
if (IR_Code == 551486205) { //стрелка вверх
brightnesR = brightnesR + Step;
}
if (IR_Code == 551518845) { //стрелка вниз
brightnesR = brightnesR - Step;
}
}
Serial.println(brightnesR);
analogWrite(OutPin, brightnesR);
}
Рабочий код без IR приемника, а не рабочий - с приемником? И почём вы решили, что у вас проблема в analogWrite()?
Как бы логичнее думать, что у вас приемник не работает.
В коде есть вывод данных в Сериал. Он что-нибудь печатает в Мониторе?
да, именно в мониторе значения для вывода в ШИМ исправно перебираются. То есть код с пульта считывается и не в НЕХ
Первоначально схема работала с реостатом, и сейчас если залить тот код - всё работает (переменник не выпаивал). То есть схема (подключения) те же, переменные те же и объявлены так же.
Библиотека использует второй аппаратный таймер, как для раскодирования данных с ИК-приёмника «в фоновом режиме», так и для формирования несущей частоты ИК-передатчика. Не выводите сигнал ШИМ на 3 или 11 вывод, это помешает корректной работе библиотеки.
Просто перенесите ленту на любой другой ШИМ выход, кроме 3 и 11 - должно заработать.