Salve,
Mi sono bloccato...
Sto cercando di comandare le uscite di arduino tramite segnali IR e RC.
Finora riesco a decodificare i segnali tramite monitor seriale sia IR che RC, comandare le uscite con IR ma mi sono bloccato quando cerco di comandare le uscite con RC.
La mia intenzione sarebbe quella di comandare le uscite disponibili, potendo modificare solo il codice decodificato, semplicemente inserendolo nel programma senza dover dividere le uscite fra quelle comandabili da IR o RC e senza fare grandi variazioni al programma, ma semplicemente cambiare il codice decodificato.
#include <IRremote.h>
#include <RCSwitch.h>
const byte pin22 = 22;
const byte pin23 = 23;
const byte pin24 = 24;
const byte pin25 = 25;
const byte pinIR = 11;
IRrecv irrecv(pinIR);
RCSwitch mySwitch = RCSwitch();
decode_results results;
unsigned long prevMillis=0;
unsigned long Intervallo=0;
int Stato=0;
void setup()
{ delay(1000);
Serial.begin(9600);
irrecv.enableIRIn();
mySwitch.enableReceive(0);
pinMode(pin22, OUTPUT);
pinMode(pin23, OUTPUT);
pinMode(pin24, OUTPUT);
pinMode(pin25, OUTPUT);
}
void loop()
{
if (irrecv.decode(&results))
{ Serial.println(results.value, HEX);
if ( results.value == 0x38863BE0 ) // tasto 1 telecomando DICOM
{ prevMillis=millis();
Stato=1;
digitalWrite(pin22, HIGH);
delay(1000);
digitalWrite(pin22, LOW);
}
if ( results.value == 12845399 ) //tasto 1 radiocomando MFT-26-2 -20100001-
{ prevMillis=millis();
Stato=1;
digitalWrite(pin23, HIGH);
delay(1000);
digitalWrite(pin23, LOW);
}
if ( results.value == 0xFF7A85 ) //tasto 3 telecomando MP3
{ prevMillis=millis();
Stato=1;
digitalWrite(pin24, HIGH);
delay(1000);
digitalWrite(pin24, LOW);
}
if ( results.value == 0x38863BC8 ) //tasto 4 telecomando DICOM
{ prevMillis=millis();
Stato=1;
digitalWrite(pin25, HIGH);
delay(30);
digitalWrite(pin25, LOW);
}
irrecv.resume();
}
if (mySwitch.available()) {
int value = mySwitch.getReceivedValue();
if (value == 0) {
Serial.print("Unknown encoding");
} else {
Serial.print("Received ");
Serial.println( mySwitch.getReceivedValue() );
}
mySwitch.resetAvailable();
}
}
Solo il pin 23 che riceve il comando tramite RC non attiva l'uscita.
Mentre in IR funziona tutto.
Grazie