problema impianto domotico

Salve a tutti… spero che staite trascorrendo buone vacanze…
io come al solito non demordo nemmeno nei giorni festivi e oggi dopo vigilia e natale ho fatto qualche prova del mio impianto d’ illuminazione per il mio modellino di casa domotica.

però noto una cosa alquanto strana e non so darmi una spiegazione forse qualcuno di voi può aiutarmi in merito.

Prima di tutto spiego com’è composto il mio impianto d’ illuminazione:

2 lampioni esterni che si attivano tramite fotoresistenza
5 luci per gli ambienti ( 5 ambienti) conrollabili tramite un telecomando da remoto… telecomando che funziona tramite ricevitore ir tsop 1838.

tutto qui ok i collegamenti perfetti e tutto… solo che per testare ho usato solo 3 led giusto per vedere il funzionamento al posto dei 5.

l’ intoppo si manifesta con la luce dei lampioni con la fotoresistenza ovvero quando c’è buio si accendono ma in modo molto debole …
ho provato i medesimi lampioni solo con il codice della fotoresistenza senza il codice completo che includeva comandi di ricevitore ed altri led e per magia la luce dei lampioncini è bella intensa!!!

ho provato a staccare ricevitore e luci sempre con il codice completo e l’ intesità dei lampioncini è sempre debole…
sospetto che sia il codice completo che isulta pesante all’ arduino e non ce la fà???
qualcuno può aiutarmi??? posto il codice completo

int fotoresistenza = A1;
int led6=6;
int led7=7;
#include <IRremote.h> 
int receiver = 11; 
IRrecv irrecv(receiver); 
decode_results results;
 
void setup() {
  Serial.begin(9600);
  irrecv.enableIRIn(); 
 pinMode(2, OUTPUT);
 pinMode (3,OUTPUT);
 pinMode (4,OUTPUT);
}
 
void loop() {
  
int Val= analogRead(fotoresistenza);  
 Serial.print("sensor = " );
  Serial.println(Val); 
delay(1000);

if (Val>=600) {
   digitalWrite(led6,LOW);
   digitalWrite (led7,LOW);

 }

else  {
  digitalWrite(led6,HIGH);
  digitalWrite (led7,HIGH);
} 
  
  if (irrecv.decode(&results)) 
  {
    Serial.println(results.value, HEX); 
    irrecv.resume();
  }
 
  if ( results.value == 0xFF30CF ){ 
    digitalWrite(2, HIGH);   
  } 
 if ( results.value == 0xFF18E7){ 
    digitalWrite(2, LOW);   
  }
if ( results.value == 0xFF7A85 ){ 
    digitalWrite(3, HIGH);   
  } 
 if ( results.value == 0xFF10EF){ 
    digitalWrite(3, LOW);   
  }
  
  if ( results.value == 0xFF38C7 ){ 
    digitalWrite(4, HIGH);   
  } 
 if ( results.value == 0xFF5AA5){ 
    digitalWrite(4, LOW);   
}
}

Si.
Non hai dichiarato con pinmode i pin a cui sono attaccati i led.
All’accensione tutti i pin sono settati in INPUT, quindi se gli dai un digitalwrite HIGH non fai altro che accendere la pull’up interna.

#include <IRremote.h>

const int fotoresistenza = A1;
const int led6 = 6;
const int led7 = 7;
const int ReleA = 2;
const int ReleB = 3;
const int ReleC = 4;
const int receiver = 11;

IRrecv irrecv(receiver);
decode_results results;

void setup() {
  Serial.begin(9600);
  irrecv.enableIRIn();
  pinMode(led6, OUTPUT);
  pinMode(led7, OUTPUT);
  pinMode(ReleA, OUTPUT);
  pinMode(ReleB, OUTPUT);
  pinMode(ReleC, OUTPUT);
}

void loop() {
  int Val = analogRead(fotoresistenza);
  Serial.print("sensor = " );
  Serial.println(Val);

  if (Val >= 600) {
    digitalWrite(led6, LOW);
    digitalWrite(led7, LOW);
  }
  else {
    digitalWrite(led6, HIGH);
    digitalWrite(led7, HIGH);
  }

  if (irrecv.decode(&results)) {
    Serial.println(results.value, HEX);
    irrecv.resume();
  }

  if ( results.value == 0xFF30CF) digitalWrite(ReleA, HIGH);
  if ( results.value == 0xFF18E7) digitalWrite(ReleA, LOW);
  if ( results.value == 0xFF7A85) digitalWrite(ReleB, HIGH);
  if ( results.value == 0xFF10EF) digitalWrite(ReleB, LOW);
  if ( results.value == 0xFF38C7) digitalWrite(ReleC, HIGH);
  if ( results.value == 0xFF5AA5) digitalWrite(ReleC, LOW);

  delay(1000);
} // EndLoop
Lo sketch usa 10.934 byte (38%) dello spazio disponibile per i programmi. Il massimo è 28.672 byte.
Le variabili globali usano 384 byte (15%) di memoria dinamica, lasciando 2.176 byte liberi per le variabili locali. Il massimo è 2.560 byte.