Logo Mon Club Elec

Allumer une LED à partir d’une chaine avec paramètre reçue sur le port Série

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.
Allumer une LED à partir d’une chaine avec paramètre reçue sur le port Série

2.2  Le matériel suivant pour réaliser le montage associé

  • une plaque d’essai pour montage sans soudures,
Allumer une LED à partir d’une chaine avec paramètre reçue sur le port Série
  • des straps,
Allumer une LED à partir d’une chaine avec paramètre reçue sur le port Série
  • une LED rouge 5mm,
Allumer une LED à partir d’une chaine avec paramètre reçue sur le port Série
  • une résistance 1/4w de 200 Ohms environ,
Allumer une LED à partir d’une chaine avec paramètre reçue sur le port Série

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

Allumer une LED à partir d’une chaine avec paramètre reçue sur le port Série

Le schéma théorique du montage (cliquer pour agrandir)

5.  Le circuit du montage

Allumer une LED à partir d’une chaine avec paramètre reçue sur le port Série

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.
Allumer une LED à partir d’une chaine avec paramètre reçue sur le port Série
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 ».
Allumer une LED à partir d’une chaine avec paramètre reçue sur le port Série
  • La fenêtre « Terminal » s’ouvre alors :
Allumer une LED à partir d’une chaine avec paramètre reçue sur le port Série
  • 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 :
Allumer une LED à partir d’une chaine avec paramètre reçue sur le port Série

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

 

Noter cet article

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Archive Mon Club Elec

Articles populaires

Newsletter

Inscrivez-vous maintenant et bénéficiez d'un soutien continu pour réaliser vos travaux électriques en toute sécurité.