Merci
J'ai tester virtualwire, j'ai mis du temps mais j'y suis finalement arriver.
Mais je bloque maintenant pour recevoir un message sur un pin et l'envoyer comme message avec virtualwire, et aussi pour le contraire recevoir un message de virtualwire et le retransmettre dans un pin
j'envoie les deux code que j'ai pour le moment:
emeteur:
#include <VirtualWire.h> // inclusion de la librairie VirtualWire
const char *msg = "ok"; // Tableau qui contient notre message
void setup() // Fonction setup()
{
Serial.begin(9600); // Initialisation du port série pour avoir un retour sur le serial monitor
Serial.println("Tuto VirtualWire"); // Petit message de bienvenue
vw_setup(2000); // initialisation de la librairie VirtualWire à 2000 bauds (note: je n'utilise pas la broche PTT)
}
void loop() // Fonction loop()
{
Serial.print("TX ... "); // On signale le début de l'envoi
vw_send((uint8_t *)msg, strlen(msg)); // On envoi le message
vw_wait_tx(); // On attend la fin de l'envoi
Serial.println("Done !"); // On signal la fin de l'envoi
delay(1000); // Et on attend 1s pour pas flooder
}
recepteur:
#include <VirtualWire.h> // inclusion de la librairie VirtualWire
uint8_t buf[VW_MAX_MESSAGE_LEN]; // Tableau qui va contenir le message recu (de taille maximum VW_MAX_MESSAGE_LEN)
uint8_t buflen = VW_MAX_MESSAGE_LEN; // Taille maximum de notre tableau
void setup() // Fonction setup()
{
Serial.begin(9600); // Initialisation du port série pour avoir un retour sur le serial monitor
Serial.println("Tuto VirtualWire"); // Petit message de bienvenue
vw_setup(2000); // initialisation de la librairie VirtualWire à 2000 bauds (note: je n'utilise pas la broche PTT)
vw_rx_start(); // Activation de la partie réception de la librairie VirtualWire
}
void loop() // Fonction loop()
{
if (vw_wait_rx_max(200)) // Si un message est recu dans les 200ms qui viennent
{
if (vw_get_message(buf, &buflen)) // On copie le message, qu'il soit corrompu ou non
{
Serial.print("RX : ");
for (byte i = 0; i < buflen; i++) // Si il n'est pas corrompu on l'affiche via Serial
Serial.print(buf[i]);
Serial.println("");
}
}
}
Merci
Autre petite question qui me laisse perplexe:
est-ce normal que sur une carte vide de connectique avec un code type celui ci dessous , sans aucun capteur ,:
void setup()
{
Serial.begin(2400);
}
int val;
void loop()
{
val = analogRead(2);
Serial.println(val);
delay(200);
}
mon moniteur affiche des valeurs type:
288
289
290
292
296
300
303
307
311
315
319
323
327
336
350
363
372
376
c'est comme du bruit permanant , et cela me fait ca sur mes deux cartes, anomalie de la carte ou quelque chose que je ne comprend pas?