L’utilisation des LED est un moyen très pratique pour afficher des informations ou des données. Elles sont très faciles à utiliser et peuvent être contrôlées à distance. Dans cet article, nous allons vous montrer comment allumer une LED à partir d’une chaîne de caractères reçue sur le port série. Nous allons vous expliquer comment configurer le port série et comment envoyer des données à la LED. Nous allons également vous montrer comment contrôler la LED à l’aide de la chaîne de caractères reçue.
Allumer une LED à partir d’une chaine avec paramètre reçue sur le port Série
1. Présentation
Ce programme permet d’allumer une LED connectée sur n’importe quelle broche de la carte Arduino à partir d’une chaine reçue sur le port Série. L’intérêt ici est l’utilisation de ma librairie Utils qui implémente des fonctions facilitant le décodage de chaines avec paramètres en provenance du port série.
Ce programme utilise les fonctionnalités suivantes :
- Utilise la connexion série vers le PC
Ressources utiles associées à ce programme :
- La librairie Serial – pour les communications séries entre la carte Arduino et l’ordinateur ou d’autres composants
- Ma librairie Arduino Utils
2. Matériel Nécessaire
2.1 L’espace de développement Arduino
- … pour éditer, compiler le programme et programmer la carte Arduino.

2.2 Le matériel suivant pour réaliser le montage associé
- une plaque d’essai pour montage sans soudures,

- des straps,

- une LED rouge 5mm,

- une résistance 1/4w de 200 Ohms environ,

3. Instructions de montage
- La connexion série vers le PC utilise les broches 0 et 1 (via le câble USB)
- Broche 2 : Une LED connectée en série avec sa résistance
4. Le schéma théorique du montage
Le schéma théorique du montage (cliquer pour agrandir)
5. Le circuit du montage
Le schéma du montage à réaliser (cliquer pour agrandir)
6. Fonctionnement du programme
6.1 Structure globale du programme
Ce programme simple comprend :
- une entête déclarative
- une partie « configuration » qui ne sera exécutée qu’une fois (fonction setup( ) )
- une partie constituée d’une boucle sans fin que le programme répètera à l’infini ( fonction loop( ) ) : c’est le coeur du programme.
6.2 Déroulement du programme
Le programme se déroule de la façon suivante :
- Après avoir pris en compte les instructions de la partie déclarative,
- puis après avoir exécuté la partie configuration ( fonction setup( ) ),
- le programme bouclera sans fin ( fonction loop ( ) ), exécutant de façon répétée le code compris dans la boucle sans fin.

Le déroulement du programme
7. Explication du programme
7.1 Au niveau de la partie déclarative :
- On déclare la broche de LED
7.2 Au niveau de la fonction d’initialisation setup( ) :
- On met la broche en sortie
7.3 Au niveau de la boucle principale, la fonction loop ( ) :
- On reçoit la chaine en réception sur le port série à l’aide de la fonction waiting()
- On analyse ensuite la chaîne reçue avec la fonction testInstructionLong() qui permet de vérifier le formatage de la chaine reçue : ici digitalWrite(broche,etat)
8. Mise en oeuvre du programme
8.1 Préparation du montage et programmation de la carte Arduino :
- Commencer par réaliser le montage indiqué sur plaque d’expérimentation
- Ensuite, programmer la carte Arduino avec ce programme (en bas de page) selon la procédure habituelle
8.2 Préparation du Terminal côté PC dans le logiciel Arduino
- Côté PC, il faut ouvrir la fenêtre terminal de l’IDE Arduino : pour ce faire, un simple clic sur le bouton « Sérial Monitor ».

- La fenêtre « Terminal » s’ouvre alors :

- Il faut alors régler le débit de communication sur la même valeur que celle utilisée par le programme avec lequel nous allons programmer la carte Arduino :

8.3 Fonctionnement
- Saisir une chaine de la forme digitalWrite(broche,etat) sur dans le Terminal Série
9. Le programme complet en langage Arduino
A copier/coller directement dans l’éditeur Arduino
//— exemple librairie Utils —
// Par X. HINAULT – Sept. 2012
// Tous droits réservés – GPLv3
#include <Utils.h> // inclusion de la librairie
Utils utils; // déclare objet racine d’accès aux fonctions de la librairie Utils
String chaineReception=« »; // déclare un String
long params[6]; // déclare un tableau de long – taille en fonction nombre max paramètres attendus
int LED=2; // broche de la LED
void setup() {
pinMode(LED,OUTPUT); // met la broche en sortie
Serial.begin(115200); // Initialisation vitesse port Série
// Utiliser vitesse idem coté Terminal série
Serial.println(« Saisir une chaine de la forme digitalWrite(broche,etat) »);
Serial.println( » avec broche entre 0 et 19 et niveau 0 ou 1 : »); // message initial
} // fin setup
void loop() {
//chaineReception=utils.waitingString(true);// avec debug
chaineReception=utils.waitingString();// sans debug
if (chaineReception!=« ») { // si une chaine a été reçue
if(utils.testInstructionLong(chaineReception,« digitalWrite(« ,2,params)==true) { // si chaine digitalWrite(broche, etat) bien reçue
Serial.println(« Arduino a recu le parametre : « + (String)params[0]);
Serial.println(« Arduino a recu le parametre : « + (String)params[1]);
digitalWrite(params[0],params[1]); // met la broche dans l’état voulu
} // fin si testInstructionLong==true
} // fin // si une chaine a été reçue
} // fin loop
Articles Liés
- Allumer/éteindre une LED à partir d'une chaîne reçue sur le port série
L'utilisation des LED est un moyen très pratique pour afficher des informations ou des états.…
- Recevoir une chaine de caractères depuis Processing via le port série USB
L'utilisation du port série USB est un moyen pratique et efficace pour communiquer entre un…
- L'appui sur un BP allume une LED sur une carte Arduino distante par envoi d'une chaîne via 2 PC connectés à un réseau wifi.
L'utilisation des technologies modernes pour contrôler des dispositifs à distance est devenue une pratique courante.…