Bonjour, voilà je suis en terminales sti2d SIN et pour avancer danse mon projet j'aurai besoin d'aide pour comprendre deux programmes arduino qui permettent l'échanges de données via des modules Xbee. Voici les programmes et merci d'avance !!!! ps: je suis très en retard sur ma partie
Code:programme d'émission : #define pot 0 //potentiometre sur A0 byte TXD; void setup() { Serial.begin(9600); } void loop() { TXD = map(analogRead(pot),0,1023,0,255); // TXD est l'octet à transmettre de 0 à max 255 //Eciture sur RS232 pour envoi via Xbee Serial.println(TXD); //envoi des caractères composants l'octet TXD + caractère retour charriot "\n" du println // envoi toutes les secondes pour ne pas saturer la communication delay(1000); } Et le programme réception: #include <Wire.h> #include "rgb_lcd.h" char RXD[6]; int index, ValRXD,i; rgb_lcd lcd; void setup() { // init RS232 pour dialogue Xbee Serial.begin(9600); // init ecran lcd lcd.begin(16, 2); index=0; lcd.clear(); lcd.setCursor(0,0); //colonne 0, ligne 0 lcd.print("Reception XBee"); } void loop() { lireCaractereRecu(); AfficherDonneeComplete(); } void lireCaractereRecu(){ // Lecture RS232, si présence d'une donnée recue (RXD) if (Serial.available() > 0) { RXD[index]=Serial.read(); index=index+1; } } // test si dernier caractère du nombre reçu // traduit les caractères ascii du nombre en valeur entiere // affiche sur un ecran lcd la valeur entière du nombre recu void AfficherDonneeComplete(){ // Si le dernier caractère lu est le fin de ligne (println uniquement) // traiter la chaine de caractères recus et afficher le nombre entier correspondand if (RXD[index-1]=='\n') { ValRXD= atoi(RXD); // convertir la chaine de caracteres en entier // effacer uniquement l'ancienne valeur affichée (4 caractères debut ligne 1) for (i=0; i<3;i++){ lcd.setCursor(i, 1); lcd.print(" "); } // afficher la nouvelle lcd.setCursor(0,1); lcd.print(ValRXD); //effacer l'ancienne chaine de caracteres du tableau de réception for (i=0; i<index;i++){ RXD[i]=0; } delay(1000); // maintenir l'affichage 1 sec index=0; // raz index pour la prochaine valeur à recevoir } //fin if }
-----