Suis-je bete ..
Donc voila j'ai un ATtiny 85 en emission et j'aimerais juste un ATmega en reception. Pour l'instant les essais se font avec 2 arduino UNO.
J'aimerais recevoir le mot (rotation) , et le mettre dans une variable afin de le comparer et lancer la fonction associée (c'est surtout pour eviter les parasites car a terme j'en aimerais plusieurs qui fonctionnent indépendement).
Donc voila mes codes (c'est pas ecore bien organisé) et plagiés de ton site =)
Pour les essais je met juste un petit interrupteur au niveau de la broche DATA , et j'appuis quand je veux envoyer (+ simple).
RECEPTION :
include // inclusion de la librairie VirtualWire
uint8_t buf[VW_MAX_MESSAGE_LEN]; // Tableau qui va contenir le message reçu (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
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
Serial.println("debut de la reception"); // Petit message de bienvenue
}
void loop() // Fonction loop()
{
if (vw_wait_rx_max(200)) // Si un message est reçu 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.write(buf*);*
* Serial.println("");*
_ if(strcmp("rotation", (char*)buf) == 0)_
{
* vw_rx_stop;*
* digitalWrite(2, LOW);*
delay (1000);
digitalWrite (2, HIGH);
vw_rx_start;
}
}}}
-------------------------------------------------------------
EMISSION :
#include // inclusion de la librairie VirtualWire
const char *msg = "rotation"; // Tableau qui contient notre message
void setup() // Fonction setup()
{
* vw_setup(2000); // initialisation de la librairie VirtualWire à 2000 bauds (note: je n'utilise pas la broche PTT)*
}
void loop() // Fonction loop()
{
vw_send((uint8_t )msg, strlen(msg)); // On envoie le message
* vw_wait_tx(); // On attend la fin de l'envoi
* delay(1000); // Et on attend 1s pour pas flooder*
}