Каскад светодиодных лент.
- Войдите на сайт для отправки комментариев
Сб, 19/10/2019 - 07:48
Здравствуйте. Хотел бы уточнить, настраиваю каскад лент светодиодных 12 В, через 8 - канальный релейный модуль. Через монитор порта на ИК - порт приходят комбинации кнопок с шумами (FFFFFFFF). При нажатии кнопки с пульта, лента гаснет и загорается не сразу(приходиться раз 15 нажать, чтобы сработало). Если кто сможет, подскажите в чем проблема.
Moderator : пожалуйста, вставьте код правильно (новым сообщением в тему), как описано в http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukommentarii
#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); }Проблема - в многочисленных операторах delay с большими задержками. При таком коде странно, что кнопки хотя бы с 15 раза срабатывают