Ciao a tutti, sto cercando di trasferire dati da un Arduino con un sensore di prossimità ad un altro Arduino tramite un modulo Wifi a 433MHz. Ho inizialmente visualizzato i dati arrivati sul monitor del PC, con successo, ma ora vorrei usare un LCD per leggerli. Purtroppo con LCD non riesco a visualizzare i dati.
Qui di seguito il mio sketch, ringrazio in anticipo tutti.
/* Collegamenti:
* LCD RS pin to digital pin 12
* LCD Enable pin to digital pin 11
* LCD D4 pin to digital pin 5
* LCD D5 pin to digital pin 4
* LCD D6 pin to digital pin 3
* LCD D7 pin to digital pin 2
*/
/*
Con questo shield arduino riceve il valore della tensione rilevata che viene trasmesso
dall'altro shield denominato trasmissione.
In questo caso il modulo RX si connette ad arduino al pin 11.
*/
#include <VirtualWire.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);
const int led_pin = 13;
const int transmit_pin = 12;
const int receive_pin = 10; //prima era 11
const int transmit_en_pin = 9; //prima era =3
byte message[VW_MAX_MESSAGE_LEN]; // a buffer to hold the incoming messages
byte msgLength = VW_MAX_MESSAGE_LEN; // the size of the message
void setup()
{
lcd.begin(16, 2);
lcd.print("inizio...");
delay(1000);
Serial.begin(9600); // Debugging only
//Serial.println("setup");
// Initialise the IO and ISR
vw_set_tx_pin(transmit_pin);
vw_set_rx_pin(receive_pin);
vw_set_ptt_pin(transmit_en_pin);
vw_set_ptt_inverted(true); // Required for DR3100
vw_setup(2000); // Bits per sec
vw_rx_start(); // Start the receiver PLL running
pinMode(led_pin, OUTPUT);
}
void loop()
{
if (vw_get_message(message, &msgLength)) // Non-blocking
{ digitalWrite(led_pin, HIGH); // Flash a light to show received good message
// Message with a good checksum received, dump it.
//Serial.print("Distanza : ");
for (int i = 0; i < msgLength; i++)
{
//Serial.write(message[i]);
lcd.clear();
lcd.print(message[i]);
}
//Serial.println();
digitalWrite(led_pin, LOW);
}
}
Sketch ricevitore con lcd.txt (1.34 KB)