Подключил ИК-фотодиод (940 нм) к ESP32 (катодом к пину, который настроен как INPUT с подтяжкой к питанию, анод на землю).
Направляю пульт, получаю сигнал. В цикле записываю в буфер тайминги в микросекундах между переходами уровней.
Потом пытаюсь воспроизвести этот же сигнал из буфера на ИК-светодиоде (940 нм), направляя его в телевизор. Но телевизор не реагирует.
Узнал, что пульт выдаёт сигнал не постоянно, а ШИМом с некоторой частотой в десятки килогерц.
Попробовал передавать высокий/низкий уровень не так:
digitalWrite(LED_IR, HIGH);
digitalWrite(LED_IR, LOW);
а так:
ledcWrite(0, FREQ / 2);
ledcWrite
(0, 0);
предварительно настроив канал:
ledcSetup(0, FREQ, 16);
ledcAttachPin(LED_IR, 0);
pinMode(LED_IR, OUTPUT);
Не помогло. Телевизор не реагирует.
Пробовал менять
#define FREQ 36000
на разные константы, тоже не помогло.
Если направить пульт в камеру телефона, то вспышка ярче, чем когда я смотрю камерой на свой ИК-светодиод в момент передачи.
Где у меня может быть ошибка?
П.С. я просто экспериментирую, для себя.