Здраствуйте, очень нужна ваша помощь.
Нужно сделать мигание светодиодов (имитация поворотников, по нажатию на кнопку на IK пульте.
Именно нужно сделать под кодом нажатия кнопки case 0xFF22DD: (PL) - правый поворотник, и по нажатию 0xFFC23D (PR) - левый поворотник, так же на повторном нажатии “поворотники” выключались.
Перешарил интернет, никак не могу понять, не хватает знаний вписать millis с прерыванием в код.
#include "IRremote.h"
boolean fFar=1;
boolean fPL=0;
boolean fPR=0;
boolean fSalon=0;
const int Far=3;
const int PL=4;
const int PR=5;
const int Salon=6;
int flag=0;
unsigned long previousMillis = 0;
const long period = 1000;
IRrecv irrecv(2); // указываем вывод, к которому подключен приемник
decode_results results;
void setup() {
Serial.begin(9600);
irrecv.enableIRIn(); // запускаем прием
pinMode(Far,OUTPUT);
pinMode(PL,OUTPUT);
pinMode(PR,OUTPUT);
pinMode(Salon,OUTPUT);
}
void loop() {
if ( irrecv.decode( &results )) { // если данные пришли
switch ( results.value ) {
case 0xFFA25D:{
if (digitalRead(0xFFA25D)==HIGH && flag==0)
digitalWrite(Far,!digitalRead(Far));
flag=1;
if (digitalRead(0xFFA25D)==LOW && flag==1)
digitalWrite(Far,!digitalRead(Far));
flag=0;
break;
//break;
case 0xFF629D:
if (digitalRead(0xFF629D)==HIGH && flag==0)
digitalWrite(Salon,!digitalRead(Salon));
flag=1;
if (digitalRead(0xFF629D)==LOW && flag==1)
digitalWrite(Salon,!digitalRead(Salon));
flag=0;
break;
case 0xFF22DD:
if (digitalRead(0xFF22DD)==HIGH && flag ==0)
digitalWrite(PL,!digitalRead(PL));
flag=1;
if (digitalRead(0xFF22DD)==LOW && flag==1)
digitalWrite(PL,!digitalRead(PL));
flag=0;
break;
case 0xFFC23D:
if (digitalRead(0xFFC23D)==HIGH && flag==0)
digitalWrite(PR,!digitalRead(PR));
flag=1;
if (digitalRead(0xFFC23D)==LOW && flag==1)
digitalWrite(PR,!digitalRead(PR));
flag=0;
break;
if (fFar) {Serial.println("Svet enables");}
else {Serial.println("Svet disable");}
if (fPL) {Serial.println("Pulse left enables");}
else {Serial.println("Pulse left disable");}
if (fPR) {Serial.println("Pulse right enables");}
else {Serial.println("Pulse right disable");}
if (fSalon) {Serial.println("Salon enables");}
else {Serial.println("Salon disable");}
Serial.println("\n");
irrecv.resume(); // принимаем следующую команду
}
}
}