Exercice Arduino - Xbee - Capteur de distance
Cours : Exercice Arduino - Xbee - Capteur de distance. Recherche parmi 300 000+ dissertationsPar Transfohera • 10 Mai 2018 • Cours • 1 100 Mots (5 Pages) • 980 Vues
[pic 1][pic 2]
Exercice 1 : Afficher la valeur de la distance en cm.
Vous avez à votre disposition :
2 cartes Arduino UNO, 2 cartes xbee et 2 cartes connecteurs.
2 câbles USB.
Un capteur ultrasons, un afficheur LCD et deux LEDs.
- Saisir le programme émetteur fourni (fixer l'adresse réseau à votre numéro d’équipe (exemple 0001pour équipe1).
- Compléter la partie manquante afin de lire la valeur du capteur de distance. Envoyer la valeur de la variable distance par le Xbee. (Utiliser la commande XBee.print( ) ;)
- Envoyer le caractère 'F' par le Xbee.
- Mettre un délais de 50ms.
- Saisir le programme récepteur fourni (fixer l'adresse réseau à votre numéro d’équipe.
- Compléter la partie manquante : Écrire sur la premiere ligne « distance= » sur le LCD et afficher la variable distance en cm.
- Valider le fonctionnement
- Modification 1 :
Quand la distance est >400cm la LED1 s'allume sinon elle reste éteinte.
- Modification 2 :
Quand la distance < 10cm la LED2 s'allume sinon elle reste éteinte.
- Modification 3 :
Quand la distance est >400cm écrire sur la deuxième ligne du LCD ligne « MAX ».
- Modification 4 :
Quand la distance est < 10cm écrire sur la deuxième ligne du LCD ligne « MIN ».
- Modification 5 :Pour les plus avancés !
Plus on se rapproche du capteur plus la LED1 clignote vite.
Programme Xbee émetteur
#include
#include
Ultrasonic ultrasonic(4); // Création d'un objet de type Ultrasonic
SoftwareSerial XBee(2, 3); // RX, TX
void setup()
{
XBee.begin(9600);
XBee.print("+++"); // passage en mode commande pour configurer le module
char confdata=0;
while (confdata !='\r') // attente réponse 'OK' du XBee (ce n'est pas immédiat !)
{ if (XBee.available() >0)
{ confdata = XBee.read(); }
}
XBee.print("ATRE\r"); // RAZ module XBee
XBee.print("ATDL1\r"); // on fixe l'adresse destinataire : 1
XBee.print("ATMY0\r"); // on fixe l'adresse module : 0
XBee.print("ATID1111\r"); // on fixe l'adresse réseau : 1111
XBee.print("ATCN\r"); // sortie du mode commande
}
void loop()
{
int distance = 0;
ultrasonic.MeasureInCentimeters(); // mesure de la distance
distance = ultrasonic.RangeInCentimeters; // stockage de la mesure dans "distance"
XBee.print(distance); // envoi de la distance
XBee.print('F'); // envoi du caractère "F"
delay(50);
}
Programme Xbee recepteur
#include
#include
#include "rgb_lcd.h" // Bibliothèque LCD
#include "Timer.h" // Bibliothèque Timer
SoftwareSerial XBee(2, 3); // RX, TX
const int ledPin = 4; // LED Branchée sur D4
int inputDistance = 0;
rgb_lcd lcd; // Création d'un objet lcd de type rgb_lcd
Timer lcdTimer; // Création du Timer lcdTimer
...