Communiquer en série avec une carte
La liaison série
Introduction
1/ Fonctionnement d'une transmission série
La liaison série (transmission série) permet d'envoyer des informations les unes après les autres, entre un point A et un point B (de l'ordinateur au microcontrôleur pour notre cas)sur une seule voie.
Pour que l'information circule par transmission série, celle-ci à besoin d'un émetteur et d'un récepteur bidirectionnel, et d'une masse :
Attention de ne pas confondre la liaison série avec la liaison RS232. Ces deux modes de communications utilisent des signaux électriques mais qui seront différents entre l'un et l'autre. Mais ce n'est pas tout, la distribution des "0" et des "1" est elle aussi, différente :
- Pour représenter un 1 en liaison RS232, la tension sera comprise entre -3V et -25V, en liaison série appelé aussi TTL la tension se situe entre 2.2V et 5V.
- Pour représenter un 0 en liaison RS232, la tension sera comprise entre 3V et 25V, en TTL la tension se situe entre 0 et 0.7V.
Sur une carte ARDUINO, de n'importe quel type quelle soit, la voie de transmission utilise les PIN 0 et 1. Il est donc conseillé, que lorsque l'on sollicite la connexion TTL, de ne rien connecter+ sur ces dernières. La vitesse est exprimée en bauds.
Dans l'exercice ci-dessous, le but sera d'éteindre et d'allumer une LED à l'aide de la lettre "a" et "b" de votre clavier.
Passons à la pratique!
2/ Le matériel
- Une carte de type UNO
- Une LED
- Une plaque d'essai
- Des fils de connexions
- Une résistance de 100Ω au minimum
3/ Le schéma
Connecter la LED et la résistance sur la PIN 2 de la carte.
4/ Le programme
/*Tutoriel IHM 3D*/
int LED = 2;
int recevoir; // Variable servant à récupérer les données reçues
void setup() {
Serial.begin(9600); // initialisation de la connexion
pinMode(LED, OUTPUT);
Serial.println ("Bienvenue sur les tutoriels d'IHM 3D");
}
void loop() {
if (Serial.available() > 0) { // Si des données sont disponibles sur la liaison série
recevoir = Serial.read();
if (recevoir == 'a') {
Serial.println ("La lettre -a- vient d'être envoyé au microcontroleur, La LED est allumée");
digitalWrite (LED, HIGH);
}
if (recevoir == 'b') {
Serial.println ("La lettre -b- vient d'être envoyé au microcontroleur, La LED est éteinte");
digitalWrite (LED, LOW);
}
}
}
/******************FIN DU PROGRAMME*********************/
5/ Résultat
Ouvrir le moniteur série en cliquant sur la loupe en haut à gauche de l'IDE.
Taper la lettre "a" pour allumer votre LED ou la lettre "B" pour l'éteindre.
6/ Conclusion
Ce document tutoriel est maintenant terminé. N'hésitez pas à parcourir le site d'IHM-3D et de découvrir ses activités et de poser vos questions à l'adresse située en pied de page.