Salve a tutti,
Ho utilizzato:
-1 arduino Nano v3.0 (ricevitore)
-1 Arduino UNO (trasmettitore)
-1 Ricevitore/Trasmettitore RF http://www.icstation.com/433mhz-transmitter-receiver-arduino-project-p-1402.html?aid=10
-1 telecomando apri-cancello (identico a quello del tutorial http://www.amazon.it/Telecomando-autoapprendente-copritasti-duplicazione-Nero-Argento/dp/B00H1XK30G?ie=UTF8&psc=1&redirect=true&ref_=oh_aui_detailpage_o01_s00)
Dunque sono partito per gradi e, dopo aver saldato un piccolo cavo a spirale sul ricevitore e trasmettitore come antenna, sono riuscito a inviare la classica stringa "Hello World".
Trasmettitore:
/**
Questo programma va caricato sul TX e permette di inviare una stringa ad un altro Arduino
*/
#include <VirtualWire.h>
int ledPin = 13;
char Sensor1CharMsg[21];// The string that we are going to send trought rf
int counter = 0;
void setup()
{
Serial.begin(9600); // Debugging only
Serial.println("setup");
// initialize the digital pin as an output.
pinMode(ledPin, OUTPUT);
vw_set_tx_pin(2);
// Initialise the IO and ISR
vw_set_ptt_inverted(true); // Required for DR3100
vw_setup(2000); // Bits per sec
}
void loop() {
//const char *msg = "hello";
sprintf(Sensor1CharMsg, "Hello world: %d", counter);
digitalWrite(ledPin, HIGH); // Flash a light to show transmitting
vw_send((uint8_t *)Sensor1CharMsg, strlen(Sensor1CharMsg));
vw_wait_tx(); // Wait until the whole message is gone
digitalWrite(ledPin, LOW);
counter++;
delay(20);
}
RICEVITORE:
/**
Questo programma va caricato sul RX e permette di ricevere una stringa che è stata inviata da un altro Arduino
Pin (5V,GDN, D2)
*/
#include <VirtualWire.h>
char StringReceived[22];
void setup()
{
Serial.begin(9600); // Debugging only
Serial.println("setup");
vw_set_rx_pin(2);
// Initialise the IO and ISR
vw_set_ptt_inverted(true); // Required for DR3100
vw_setup(2000); // Bits per sec
vw_rx_start(); // Start the receiver PLL running
}
void loop()
{
uint8_t buf[VW_MAX_MESSAGE_LEN];
uint8_t buflen = VW_MAX_MESSAGE_LEN;
if (vw_get_message(buf, &buflen)) { // Non-blocking
int i;
digitalWrite(13, true); // Flash a light to show received good message
// Message with a good checksum received, dump it.
Serial.print("Got: ");
for (i = 0; i < buflen; i++) {
Serial.print(buf[i], HEX);
Serial.print(" ");
// Fill Sensor1CharMsg Char array with corresponding
// chars from buffer.
StringReceived[i] = char(buf[i]);
}
Serial.println("");
Serial.println("StringReceived:" + String(StringReceived));
Serial.println("");
digitalWrite(13, false);
}
memset( StringReceived, 0, sizeof( StringReceived));// This line is for reset the StringReceived
}
Pieno di entusiasmo ho provato a seguire il seguente tutorial:
Risultato nullo nemmeno un segno.
Notavo che dal tutorial sembra che il telecomando lavori a 24bit, mentre dalla descrizione su Amazon riporta 36bit.
Ho aperto il telecomando e all'interno c'è un componente "bxr433a" che se non ho capito male lavora alla stessa frequenza del ricevitore in mio possesso.
La mia idea sarebbe quella di ricevere i segnali legati ai 4 tasti del telecomando.
Qualcuno ha già sperimentato qualcosa di simile o ha qualche idea da suggerire?