ir + китай leonardo
- Войдите на сайт для отправки комментариев
Захотел включать - выключать компьютер ик пультом. Была у меня https://ru.aliexpress.com/item/Free-Shipping-New-Pro-Micro-for-arduino-ATmega32U4-5V-16MHz-Module-with-2-row-pin-header/1348800135.html?spm=a2g0s.9042311.0.0.274233edv8iA5L и пульт с ик-приемником от тв-тюнера Beholder. Наваял такую суперпрограмму :
#include <HID-Project.h> #include <HID-Settings.h> #include <IRLibDecodeBase.h> #include <IRLib_P01_NEC.h> IRdecodeNEC myDecoder; #define MYPROTOCOL NEC #include <IRLibRecv.h> #define Power_pin 14 IRrecv myReceiver(2); //pin number for the receiver byte keyVolID; long prevMillis; bool flag; void Pdelay() { if (millis() - 2000 < prevMillis) flag = true; else flag = false; digitalWrite(Power_pin, flag); } void setup() { myReceiver.enableIRIn(); // Start the receiver pinMode(Power_pin, OUTPUT); Consumer.begin(); } void loop() { if (myReceiver.getResults()) { myDecoder.decode(); switch (myDecoder.value) { case 0x61D630CF : Consumer.write(MEDIA_VOLUME_UP); break; case 0x61D618E7 : Consumer.write(MEDIA_VOLUME_DOWN); break; case 0x61D6D827 : Consumer.write(MEDIA_PLAY_PAUSE); break; case 0x61D658A7 : Consumer.write(MEDIA_STOP); break; case 0x61D6C837 : Consumer.write(MEDIA_PREVIOUS); break; case 0x61D69867 : Consumer.write(MEDIA_NEXT); break; case 0x61D67887 : Consumer.write(MEDIA_FAST_FORWARD); break; case 0x61D6F807 : Consumer.write(MEDIA_REWIND); break; case 0x61D68877 : Consumer.write(MEDIA_VOLUME_MUTE); break; case 0x61D648B7 : prevMillis = millis(); break; } myReceiver.enableIRIn(); // Re-enable receiver } Pdelay(); }
Подключена "леонарда" в системный блок на внутренний USB коннектор, на который питание +5 подается всегда, пока системник включен в розетку. Power_pin через оптрон замыкает кнопку питания. В общем работает, скетч простой, прямо из примеров, комп включается, громкость +- работает, треки переключаются. Только длится радость недолго, примерно сутки. Потом ардуина перестает реагировать на пульт, в системе видна под своим именем, и с помощью IDE не прошивается. Перезагрузка компьютера не помогает, а ресет ардуины восстанавливает работу на сутки примерно. То есть на следующий день воспользоваться плодами прогресса не удается. Когда писал скетч и смотрел коды кнопок заметил что ик приемник ловит помехи от энергосберегающей лампы люстры, видимо энергосберегайки фонят в ик диапазоне. Где ошибка?