Test nr. 2 - TxRx tra due LiLyPad

Aggiunto da Moreno Petrucci circa 3 anni fa

Ho provato la trasmissione e ricezione in contemporanea tra due LiLyPad non originali. La lettura del segnale viene fatta sul pin 11 .
Dopo la trasmissione dell'informazione, la porta di lettura IR deve esser riabilitata con il comando "irRecv.enableIrIn();" ed occorre inserire subito dopo un ritardo di un certo valore x tra 60 e 80 delay(x) per dare il tempo di esecuzione comando .
Ci tengo a precisare che questo non sta scritto da nessuna parte, l'ho potuto constatare solo facendo prove sperimentali.

Su un LiLypad ho inserito un ritardo di 60 mentre su un altro ho dovuto metter un ritardo di 80 altrimenti la porta in lettura non si riattivava. Non so se questo può esser dovuto dal processore montato, forse ha caratteristiche e velocità di elaborazione leggermente diverse. Mi sembra strano però provando a cambiare il valore del ritardo in effetti il LiLypad funziona meglio.

Per concludere il test sembra aver dato esito POSITIVO, quindi per la logica di funzionamento e quindi appartenenza al gruppo "calmi o agitati" penso che si possa utilizzare questo metodo per comunicare.

Prossimo test sarà : Controllo motori e movimento del TribeBot .

Di seguito riporto il codice utilizzato per il test.

#include <IRremote.h>

int RECV_PIN = 11;

IRrecv irrecv(RECV_PIN);
IRsend irsend;

decode_results results;

void setup() {
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
}

void loop() {
if (irrecv.decode(&results)) {
Serial.println(results.value, HEX);
if (results.value == 0xA80) {
digitalWrite(13,HIGH);
}
else {
digitalWrite(13,LOW);
}
irrecv.resume(); // Receive the next value
}
delay(100);
for (int i = 0; i < 3; i++) {
irsend.sendSony(0xa70, 12); // Sony TV power code
delay(40);
}
irrecv.enableIRIn();// Start the receiver
delay(80); //!!! >>> Da adattare su ogni singolo LilyPad <<< !!!!

}


Commenti