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
#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);
}
}