En suivant le tuto sur la mise en place d'une communication RF : http://forum.snootlab.com/viewtopic.php?f=38&t=399
J'ai réussi a faire communiquer mes deux arduino ensemble (en même temps le copié collé sa marche bien
Sauf que j'ai maintenant quelques petits soucis, hop hop une petite présentation.
Mon but (final) :
Faire une petite voiture radiocommandé avec caméra embarqué.
Mon but (actuel) :
- Envoyés la valeur analogique de mes deux potar (sur ma carte émettrice faisant office de télécommande) vers la carte réceptrice.
- Différencié mes tensions analogique (pour l'instant je ne travaille qu'avec un seul potar). Je pensais a une trame du style A0000 a A1024 et B0000 a B1024 A et B étant mes deux potar.
Le(s) problème(s) :
- Je n'ai qu'une toute petite notion de programmation
- [résolu] Lorsque j'envoie ma valeur analogique vers ma carte réceptrice je reçoit que des caractères alphabétiques.
- Lorsque j'envoie ma valeur analogique vers ma carte réceptrice je reçoit des caractères numériques mais qui n'ont rien a voir.
Je précise que sur mon code de réception je viens de changer la ligne :
Serial.print(buf[i]); pour Serial.print(buf[i], DEC);
et je ne peut pour l'instant tester le résultat, donc si vous avez des conseils.
Ensuite pour beaucoup plus tard quand la partie voiture radiocommandé sera opérationnel il me faudrait un module de transmission, Est ce que le module 434Mhz serait adapter ? (BP : trop étroite ?) que me conseiller vous ?
En vous remerciant.
Mes codes :
Réception :
- Code: Tout sélectionner
#include <VirtualWire.h> // Vous devez télécharger et installer la librairie VirtualWire.h dans votre dossier "/libraries" !
void setup()
{
Serial.begin(9600); // On initialise "le serial monitor", j'ai laissé 9600 bauds ici car c'est la valeur par défaut mais vous pouvez la modifier. Attention à bien mettre la même valeur dans votre Serial Monitor et dans votre programme.
vw_setup(500); // Bits par seconde (vous pouvez le modifier mais cela modifiera la portée). Voir la documentation de la librairie VirtualWire.
vw_set_rx_pin(11); // C'est sur cette broche que l'on reliera les broches DATA du récepteur, vous pouvez changez de broche si vous le désirez.
vw_rx_start(); // On démarre le récepteur.
}
void loop()
{
uint8_t buf[VW_MAX_MESSAGE_LEN];
uint8_t buflen = VW_MAX_MESSAGE_LEN;
if (vw_get_message(buf, &buflen)) // On test afin de savoir si un message est reçu.
{
int i;
// Un message est reçu.
for (i = 0; i < buflen; i++)
{
Serial.print(buf[i]); // On affiche le message lettre par lettre. Par exemple buf[4] sera égale à la 5ème lettre du mot envoyé (Snootlab donc "t") car on compte le zéro ici.
}
//Serial.println(""); // On saute une ligne afin d'avoir plus de clarté.
}
}
Emission :
- Code: Tout sélectionner
#include <VirtualWire.h> // Vous devez télécharger et installer la librairie VirtualWire.h dans votre dossier "/libraries" !
int sensorPin = A0;
int sensorValue = 0;
void setup()
{
// Serial.begin(9600);
vw_setup(500); // Bits par seconde (vous pouvez le modifier mais cela modifiera la portée). Voir la documentation de la librairie VirtualWire.
vw_set_tx_pin(3); // La broche 3 sera utilisée pour transmettre la DATA, vous pouvez changez de broche si vous le désirez.
}
void loop()
{
sensorValue = analogRead(sensorPin);
//char *msg = "az"; // C'est le message à envoyer.
// Serial.println(sensorValue);
vw_send((uint8_t *)sensorValue, 4);
vw_wait_tx(); // On attend que le message complet soit envoyé.
delay(200); // Très important sinon cela peut brouiller d'autres appareils !
}



