Каскад светодиодных лент.

Salgari
Offline
Зарегистрирован: 19.10.2019
Здравствуйте. Хотел бы уточнить, настраиваю каскад лент светодиодных 12 В, через 8 - канальный релейный модуль. Через монитор порта на ИК - порт приходят комбинации кнопок с шумами (FFFFFFFF). При нажатии кнопки с пульта, лента гаснет и загорается не сразу(приходиться раз 15 нажать, чтобы сработало). Если кто сможет, подскажите в чем проблема. 
 
 
Moderator : пожалуйста, вставьте код правильно (новым сообщением в тему), как описано в http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukommentarii
 
 
Salgari
Offline
Зарегистрирован: 19.10.2019
#include "IRremote.h"
IRrecv irrecv(11);
decode_results results1;
decode_results results2;
decode_results results3;
decode_results results4;
decode_results results5;
decode_results results6;
decode_results results7;
decode_results results8;
int d=900;
int led1=0;
int led2=0;
int led3=0;
int led4=0;
int led5=0;
int led6=0;
int led7=0;
int led8=0;
void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn();
  pinMode(11, INPUT);
  pinMode(2, OUTPUT);
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);
}
void loop() {
  if ( irrecv.decode( &results1 ))
  
  { 
    Serial.println(results1.value, HEX);
    
    if (results1.value==0xFFA25D&&led1==0)
    {
       digitalWrite( 2, LOW );led1=1;results1.value=0;
    }
    if (results1.value==0xFFA25D&&led1==1)
    {
        digitalWrite( 2, HIGH );led1=0;results1.value=0;
    }
        irrecv.resume();   
  }
delay(d);

 if ( irrecv.decode( &results2 )) { 
 Serial.println(results2.value, HEX);
    
if (results2.value==0xFF629D&&led2==0){
  digitalWrite( 3, LOW );led2=1;results2.value=0;
}
if (results2.value==0xFF629D&&led2==1){
  digitalWrite( 3, HIGH );led2=0;results2.value=0;
} 
 irrecv.resume();   
}

delay(d);

if ( irrecv.decode( &results3 )) { 
  Serial.println(results3.value, HEX);
    
if (results3.value==0xFFE21D&&led3==0){
  digitalWrite( 4, LOW );led3=1;results3.value=0;
}
if (results3.value==0xFFE21D&&led3==1){
  digitalWrite( 4, HIGH );led3=0;results3.value=0;
} 
 irrecv.resume();   
} 

delay(d);

 if ( irrecv.decode( &results4 )) { 
    Serial.println(results4.value, HEX);
     
if (results4.value==0xFF22DD&&led4==0){
  digitalWrite( 5, LOW );led4=1;results4.value=0;
}
if (results4.value==0xFF22DD&&led4==1){
  digitalWrite( 5, HIGH );led4=0;results4.value=0;
}
 irrecv.resume();   
}
delay(d);


    if ( irrecv.decode( &results5 )) { 
    Serial.println(results5.value, HEX);
    
if (results5.value==0xFF02FD&&led5==0){
  digitalWrite( 6, LOW );led5=1;results5.value=0;
}
if (results5.value==0xFF02FD&&led5==1){
  digitalWrite( 6, HIGH );led5=0;results5.value=0;
} 
 irrecv.resume();   
}  

delay(d);
 if ( irrecv.decode( &results6 )) { 
    Serial.println(results6.value, HEX);
    
if (results6.value==0xFFC23D&&led6==0){
  digitalWrite( 7, LOW );led6=1;results6.value=0;
}
if (results6.value==0xFFC23D&&led6==1){
  digitalWrite( 7, HIGH );led6=0;results6.value=0;
}
 irrecv.resume();   
} 
delay(d);
   if ( irrecv.decode( &results7 )) { 
    Serial.println(results7.value, HEX);
    
if (results7.value==0xFFE01F&&led7==0){
  digitalWrite( 8, LOW );led7=1;results7.value=0;
}
if (results7.value==0xFFE01F&&led7==1){
  digitalWrite( 8, HIGH );led7=0;results7.value=0;
} 
 irrecv.resume();   
} 
delay(d);
  if ( irrecv.decode( &results8 )) { 
    Serial.println(results8.value, HEX);
    
if (results8.value==0xFFA857&&led8==0){
  digitalWrite( 9, LOW );led8=1;results8.value=0;
}
if (results8.value==0xFFA857&&led8==1){
  digitalWrite( 9, HIGH );led8=0;results8.value=0;
}   
 irrecv.resume();   
  }
  delay(d);
}

 

b707
Offline
Зарегистрирован: 26.05.2017

Проблема - в многочисленных операторах delay с большими задержками. При таком коде странно, что кнопки хотя бы с 15 раза срабатывают