questo è il codice completo,
i tasti uno , due , tre, funzionano perfettamente come voglio io,
invece il tasto zero voglio che mi svolga questa funzione cioè
lo premo e mi si alza la porta 5 (HIGH) e dopo un delay(200) si spegne sola senza che io debba ripremere alcun tasto.
è possibile?
non capisco, cosa significa quel "irrecv.resume()" alla fine di ogni ricezione?
deo metterlo?
ecco il codice:
#include <IRremote.h>
#include <IRremoteInt.h>
#define UNO 0x687CBF0
#define DUE 0x687CBC8
#define TRE 0x687CBE8
#define ZERO 0x687CBFC
#define POWER 0x687CBC0
int RECV_PIN = 4; //riceve segnale ricevitore IR
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
pinMode (2, OUTPUT); //attiva relè A , salita serranda
pinMode (3, OUTPUT); //attiva relè B, discesa serranda
pinMode (5, OUTPUT); //attiva relè bistabile, luce balcone
pinMode (7,INPUT);
irrecv.enableIRIn();
Serial.begin (9600);
}
void loop() {
if (irrecv.decode(&results)) {
Serial.println(results.value, HEX);
irrecv.resume();
}
if (results.value == UNO){
digitalWrite (2, HIGH);
digitalWrite (3, LOW);
delay(100);
}
if (results.value == DUE){
digitalWrite (2,LOW);
digitalWrite (3,LOW);
delay(100);
}
if (results.value == TRE){
digitalWrite(2, LOW);
digitalWrite (3,HIGH);
delay(100);
}
if (results.value == ZERO){
digitalWrite(5,HIGH);
delay(200);
digitalWrite (5,LOW);
delay (200);
}
if(results.value == POWER){
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(5, LOW);
}
}