Initiation Arduino (2ème séance)

Le vendredi 08 mars 2019

Sept participants étaient présent à cette soirée (André, Daniel, Eric, Jean-Claude, Jean-Pierre, Michel et Pascal).
Sans oublier Patrick qui est venu m’épauler pour les travaux pratique.

Patrick a présenté un document rassemblant quelques éléments comme l’historique et la philosophie de l’Arduino, les différentes versions hardwares, la connectique de l’Arduino Nano, un comparatif des différentes versions de cartes, une synthèse des entrées/sorties numériques et analogiques, ….

Cartes Arduino : Uno, Mini, Nano, Mega

@Zdjęcia Arkadiusz Sikorski 2012

Le document utilisé par Patrick étant sous copyright pour partie, je ne me permettrais pas de le publier ici.

Pour ceux qui souhaiteraient creuser le sujet, je les invite à visiter ces quelques sites :

Ci-dessous, vous trouverez le pinout de l’Arduino Nano :

Arduino Nano Pinout

@wikimedia.org

Rappelons-nous qu’il est préférable de ne pas utiliser la sortie numérique D13, qui est raccordée à une diode LED sur la carte, ce qui risque de perturber ce que vous pourriez tenter de faire (pensez au chiffre 13 portant malheur HiHi !).
Deux autres entrées/sorties sont également déconseillées, il s’agit des D0 et D1, qui sont réservées à la communication série et entre autre avec la prise USB.
Sur un Arduino Nano, nous n’avons en réalité que l’usage de 10 entrées/sorties numériques de D2 à D12.
Si vos besoins en entrées/sorties sont supérieurs, vous devrez vous tournez vers des versions d’Arduino comme les Due ou Mega.
Il existe aussi des cartes d’extensions.

La recommandation à propos des entrées digitales et afin qu’une valeur logique soit stable, il faut que le niveau 0 logique soit compris entre 0 et 1 V. Quant à la valeur logique 1, elle devra se trouver entre 3,5 V et 5 V.
La zone comprise entre 1 V et 3,5 V sera considérée comme une zone d’incertitude, elle pourra prendre une valeur logique de 0 ou de 1, de manière aléatoire et en fonction du matériel.
Donc à proscrire !!!!

Arduino Zones de  Valeurs logiques

Toujours pour les pines digitales en entrée, nous avons 3 cas de figure :

Montage d'entrée Arduino

  • Fig. 1 : Malgré avoir défini la pine en entrée par pinMode(N° de pine, INPUT), n’ayant pas de résistance de tirage au +5V ou au 0 (Pullup ou Pulldown), nous risquons d’être dans une incertitude logique
  • Fig. 2 : Dans ce cas, nous avons défini en entrée la pine [pinMode(N° de pine, INPUT)] et avons placé une résistance de tirage au + 5V (Pullup). Le switch ouvert donnera un 1 logique. En fermant le switch, nous forcerons la pine à la masse (0 V), soit le niveau logique 0.
  • Fig. 3 : Cette fois nous utilisons la commande « pinMode(N° de pine, INPUT_PULLUP) » qui connectera en interne une résistance de tirage au niveau logique 1. Nous obtenons alors l’équivalent de la Fig. 2. (C’est la solution que nous utilisons avec notre kit)

A notez que la commande « pinMode(N° de pine, INPUT_PULLDOWN) » n’existe pas !!!!!!

Et nous avons résumé en quelques mots les notions acquises lors de la première séance.

Les 2 exercices du jour

Feux Tricolores

Certains auront remarqué que la séquence normale ne se déroule pas correctement (Vert => Orange => Rouge => Vert => …..) !
A vous de revoir l’attribution des couleurs en jouant sur les numéros de pines.
J’espère que Pascal me pardonnera pour cet exercice !!!!!

Vous pouvez décommanter la ligne 54 « BlinkO(); », vous observerez une nouvelle séquence : Vert => Orange clignotant => Orange => Rouge => Vert => …..

Vous pouvez décommenter tous les « Serial.print » et « Serial.println » pour regarder ce qui se passe sur le Monitoring.

Contrôle d’état d’un switch

Une fois le sketch installé sur votre Arduino, pressez les switches et vérifiez si la LED correspondante s’allume.

Vous pouvez décommenter tous les « Serial.print » et « Serial.println » pour regarder ce qui se passe sur le Monitoring.

Ce qu’il faut retenir de cette soirée !

  • Les quelques éléments présentés par Patrick et que j’ai tenté de reprendre en début de cette page
  • Les quelques nouvelles fonctions que nous avons abordé dans ces quelques exercices
    • Appel d’une fonction et création d’une fonction
    • La boucle « for » avec comme paramètres : la valeur de départ, la condition de sortie de boucle et l’incrémentation à chaque boucle
    • « pinMode(N° de pine digitale, INPUT) » ou « pinMode(SW1, INPUT_PULLUP) » : initiation d’une pine en entrée, sans ou avec résistance de « Pullup » interne
    • digitalWrite(N° de pine digitale, LOW ou HIGHT) : positionnement à un niveau logique O ou 1 d’une sortie digitale
    • La condition « if(condition) …. else » : servira à prendre des décisions selon la situation