Управление одной кнопкой:
#include "IRremote.h"
IRrecv irrecv(2); // Пин приемника
int led = 13; // Пин светодиода
boolean ledState = false; // Состояние светодиода
decode_results results;
void setup() {
pinMode(led, OUTPUT);
irrecv.enableIRIn();
}
void loop() {
if ( irrecv.decode( &results )) {
if(results.value == 0xFFA857) { // 0xFFA857 заменить на код кнопки пульта
ledState = !ledState; // Инвертируем состояние светодиода
}
digitalWrite(led, ledState);
irrecv.resume();
}
}
Управление яркостью:
#include "IRremote.h"
IRrecv irrecv(2); // Пин приемника
int led = 13; // Пин светодиода
int brightness = 128; // Яркость светодиода, по умолчанию 50% (от 0 до 256)
int brightnessPerStep = 16; // Шаг яркости
boolean ledState = false; // Состояние светодиода
decode_results results;
void setup() {
pinMode(led, OUTPUT);
irrecv.enableIRIn();
}
void loop() {
if ( irrecv.decode( &results )) {
if(results.value == 0xABCDEF) { // 0xABCDEF заменить на код кнопки пульта
ledState = !ledState; // Инвертируем состояние светодиода
}
if(results.value == 0x111111 && brightness < 256) { // 0x111111 заменить на код кнопки пульта
brightness = brightness + brightnessPerStep;
}
if(results.value == 0x000000 && brightness > 0) { // 0x000000 заменить на код кнопки пульта
brightness = brightness - brightnessPerStep;
}
analogWrite(led, ledState ? brightness : 0);
irrecv.resume();
}
}