kmd » 20 июн 2019, 15:32
#include <IRremote.h> // подключаем библиотеку для IR приемника
const byte red = 10;
const byte green = 11;
const byte yellow = 9;
IRrecv irrecv(A0); // указываем пин, к которому подключен IR приемник
decode_results results;
void setup() // процедура setup
{
irrecv.enableIRIn(); // запускаем прием инфракрасного сигнала
pinMode(yellow, OUTPUT);
pinMode(red, OUTPUT); // пин 13 будет выходом (англ. «output»)
pinMode(green, OUTPUT); // пин 12 будет выходом (англ. «output»)
pinMode(A0, INPUT); // пин A0 будет входом (англ. «intput»)
Serial.begin(9600); // подключаем монитор порта
}
void loop() // процедура loop
{
if (irrecv.decode(&results)) // если данные пришли выполняем команды
{
Serial.println(results.value); // отправляем полученные данные на порт
// включаем и выключаем светодиоды, в зависимости от полученного сигнала
if (results.value == 16753245) {
digitalWrite(red, HIGH);
}
if (results.value == 16736925) {
digitalWrite(red, LOW);
}
if (results.value == 16720605) {
digitalWrite(green, HIGH);
}
if (results.value == 16712445) {
digitalWrite(green, LOW);
}
if (results.value == 16769055) {
digitalWrite(yellow, HIGH);
}
if (results.value == 16754775) {
digitalWrite(yellow, LOW);
}
if (results.value == 16754775) {
// плавное включение светодиода
for (int i=0; i <= 255; i++){
analogWrite(yellow, i);
delay(10);
}
// плавное включение светодиода end
// плавное выключение светодиода
for (int i=255; i>= 0; i--){
analogWrite(yellow, i);
delay(10);
}
// плавное выключение светодиода end
}
irrecv.resume(); // принимаем следующий сигнал на ИК приемнике
}
}