Cerchiamo di capire il codice che lascerò poco più sotto per il ricevitore..
Come per il codice del trasmettitore, includiamo la libreria RC-Switch ed istanziamo un oggetto RC-Switch per poter utilizzare i metodi della libreriaRC-Switch. Per il ricevitore dobbiamo anche inizializzare una linea seriale in modo da poter visualizzare i dati ricevuti nel nostro monitor seriale. Quindi impostiamo la velocità di trasmissione su 9600 bit al secondo ed usiamo il LED integrato per visualizzare quando vengono ricevuti i dati RF.
L’unica proprietà dell’oggetto RC-Switch che dobbiamo impostare è il pin collegato al moduloricevitore. Dopodiché siamo pronti per iniziare a ricevere i dati in modo da poter abilitare l’interrupt del ricevitore utilizzando il metodo.enableReceive().
Questo completa il ciclo di Setup. Nel nostro ciclo principale stiamo sostanzialmente aspettando la ricezione di dati RF controllando continuamente se sono disponibili dati validi con il metodo.available () appropriatamente denominato. Il metodo.available () restituirà vero solo se sono stati ricevuti dati validi.
Tali dati hanno una certa combinazione di bit e sono inviati prima di ogni pacchetto permettendo alla libreria RC-Switch di discriminare il rumore dal pacchetto corretto di dati. Una volta che il metodo.available () ritorna vero, accendiamo il nostro LED per mostrare che i dati sono stati ricevuti, stampiamo i dati ricevuti e la lunghezza dei bit nel nostro monitor seriale, chiamiamo il metodo.resetAvailable () che cancella i dati ricevuti dai buffer permettendoci di ricevere nuovi dati e infine spegniamo il nostro LED.
Il Ricevitore RF 433 che utilizzeremo nel progetto è l’RXB6 e funziona ottimamente con la libreria appena utilizzata. La differenza è che ha una sensibilità notevolmente maggiore ed opportunamente collegato ad una antenna permette di captare segnali lontani con più efficacia.
// include the RC-Switch library #include <RCSwitch.h> // instantiate an RC-Switch object RCSwitch mySwitch = RCSwitch(); // rename the primary serial line #define debug_Serial Serial // Pin 2 to receive data on (Interrupt 0) #define RX_PIN 0 // use the Leonardo’s onboard LED to display data being received #define LED_PIN 13 void setup() { // set led pin as an output pinMode(LED_PIN, OUTPUT); // make sure led pin is low digitalWrite(LED_PIN, LOW); // enable the serial line used for debugging debug_Serial.begin(9600); delay(100); // enable the RC-Switch receiver pin and start checking for RF data mySwitch.enableReceive(RX_PIN); } void loop() { // if data is available if(mySwitch.available()) { // turn on LED to show that data has been received digitalWrite(LED_PIN, HIGH); // display the received data on the debug serial line debug_Serial.print(“Received value: “); debug_Serial.println(mySwitch.getReceivedValue()); debug_Serial.print(“Bit Length: “); debug_Serial.println(mySwitch.getReceivedBitlength()); // this should be called right after receiving data mySwitch.resetAvailable(); // turn the led off again digitalWrite(LED_PIN, LOW); } }
Fun88 Casino Review - Vie Casino
RispondiEliminaJoin Fun88 Casino and get 100% up to £100 Welcome bet365 Bonus when you join today. Get up 1xbet to £100 welcome bonus at fun88 soikeotot Vie Casino.