Uitzicht:
john_lenfr -> Je ne sais pas, je n'ais pas encore testé, je ne peux le faire qu'en cour quand j'ai les 2 cartes.derder9161 -> j'arrivais à le faire, par exemple j'en voyais un message depuis le moniteur série de l'émetteur et le moniteur série du récepteur l'affichait. Pareil pour le LCD sur la carte du récepteur, j'arrivais à afficherle mot que je voulais dessus mais je n'arrivais pas a mettre les deux en liaison, que le message que j'envoit sur le moniteur série soit aussi affiché sur le LCD.
Voici le code que j'utilisais:
Le même pour l'émetteur:
#include <VirtualWire.h>
const char msg = "Arduino"; / Tableau qui contient notre message */
void setup()
{
Serial.begin(9600); /* Initialisation du port série /
Serial.println("Page d'envoit de trame");
vw_setup(2000); / initialisation de la librairie VirtualWire à 2000 bauds /
/ plus la vitesse de transmission est lente plus la porté est accentué et inversement */
}
void loop()
{
Serial.print("Début d'envoi: ");
vw_send((uint8_t )msg, strlen(msg)); / envoie le message / / Transmet un message de taille len à partir des données contenues dans le tableau buf /
/ uint_8 = unsigned char = 1 octet, strlen renvoi le nombre de caractere dans une chaine de caractère char /
vw_wait_tx(); / Fonction bloquante qui attend la fin de la transmission en cours avant de continuer le programme /
Serial.println("Envoyé !"); / on signal la fin de l'envoi /
delay(1000); / on attend 1s pour pas flooder */
}
Celui du récepteur:#include <LiquidCrystal.h>
#include <VirtualWire.h>
uint8_t buf[VW_MAX_MESSAGE_LEN];
uint8_t buflen = VW_MAX_MESSAGE_LEN;
LiquidCrystal lcd(7, 8, 9, 10, 6, 12);
void setup()
{
Serial.begin(9600);
Serial.println("Tuto VirtualWire");
vw_setup(2000);
vw_rx_start();
lcd.begin(16, 2);
lcd.print("bonjour Adonis");
}
void loop()
{
if (vw_wait_rx_max(200))
{
if (vw_get_message(buf, &buflen))
{
Serial.print("RX : ");
for (byte i = 0; i < buflen; i++)
{
Serial.print(char(buf[i])); // char permet l'affichage en ASCII
}
Serial.println("");
}
}
lcd.setCursor(0, 1);
lcd.print(millis()/1000);
}
Et j'ai changé parce que comme la personne m'a dit sur l'autre forum, je ne cherche pas à l'afficher sur le moiniteur série mais directement sur le LCD. Le moniteur série me servait uniquement dans ce cas pour voir si l'enformation circulait entre l'émetteur et le récepteur.
A ba forcément, si tu supprime la partie récupération de la donnée tu va pas afficher grand chose.
Il faut laisser l'aquisition qui passe par :
vw_get_message(buf, &buflen)