Controllo led[RISOLTO]

Salve ha tutti ho un problema per quanto riguarda il controllo di un led.Allora la mia intenzione è quella di controllare un led sia tramite un fotoresistenza , sia tramite un sensore ir. Vi posto lo sketch che sono riuscito a fare.

#include <IRremoteInt.h>
#include <IRremote.h>


#define TASTO_LED      3772793023

const int receiver = 4; // pin 1 of IR receiver to Arduino digital pin 11
IRrecv irrecv(receiver); // create instance of 'irrecv'
decode_results results;

//definizione dei pin 
 int pin_Led=     3;
 
void setup() {
 Serial.begin(9600);
  irrecv.enableIRIn();


pinMode(pin_Led,OUTPUT);

   digitalWrite(pin_Led,LOW);
}

void loop() {
   int luminosita= analogRead(pin_FOTOR);
 Serial.print("luminosità: ");
 Serial.println(luminosita);
 delay(500);

 if(luminosita<350){
  digitalWrite(pin_Led,LOW);
 }
 if(luminosita>351){
  digitalWrite(pin_Led,HIGH);
}

if (irrecv.decode(&results)) 
  {
    Serial.println(results.value); //stampa sul monitor seriale il codice ricevuto
    irrecv.resume();
  }
   //verifica se il codice ricevuto corrisponde
     //a quello impostato per l'accensione del led
  if ( results.value == TASTO_LED1 ||  results.value == TASTO_LED2  ){ 
    digitalWrite(pin_Led, HIGH);
  
  }  
  else{
   digitalWrite(pin_Led,LOW);}
}

Con questo sketch il led si accende se premo il rispettivo tasto del telecomando, invece non si accende in base alla fotoresistenza. Se tolgo la parte per il controllo tramite il telecomando, il led si accende e si spegne in base alla lettura della fotoresistenza.
Non riesco a capire quale sia il problema

grazie mille

Comincia a sintetizzare il codice.

Anteponi tutta la parte di ottenimento valori luminosità e ir
E comanda il led solo con
(esempio)

digitalWrite (led, (luminosità>350) O ((messaggoi==primo) O (messaggio == secondo)));

Che dovrebbe fare la stessa cosa. Aggiungi anche un Serial.println (messaggio);

Usa il principio IPO (input process output)

Ciao Uwe

grazie mille ho risolto.

Potresti anche indicare come hai risolto a beneficio di chi potrebbe incontrare questa discussione in futuro?

#include <IRremoteInt.h>
#include <IRremote.h>


#define TASTO_LED      3772793023

const int receiver = 4; // pin 1 of IR receiver to Arduino digital pin 11
IRrecv irrecv(receiver); // create instance of 'irrecv'
decode_results results;

//definizione dei pin 
 int pin_Led=     3;
 
void setup() {
 Serial.begin(9600);
  irrecv.enableIRIn();


pinMode(pin_Led,OUTPUT);

   digitalWrite(pin_Led,LOW);
}

void loop() {

  
 int luminosita= analogRead(pin_FOTOR); //lettura pin fotoresistenza
 Serial.print("luminosità: ");
 Serial.println(luminosita);            //stampa il valore di luminosita
 delay(500);
 
if (irrecv.decode(&results)) 
  {
    Serial.println(results.value); //stampa sul monitor seriale il codice ricevuto
    irrecv.resume();
  }
     //verifica se il codice ricevuto corrisponde
     //a quello impostato per l'accensione del led
  if ( results.value == TASTO_LED1 ||  results.value == TASTO_LED2 || luminosita>351 )
  { 
    digitalWrite(pin_Led, HIGH);
  }  
  else
  {
   digitalWrite(pin_Led,LOW);
   }
}

Grazie di aver condiviso, punto karma :slight_smile: