Arduino cours led et boutons

image principale Arduino cours led et boutons

Difficulté:

Aujourd’hui premier tutoriel sur des bases d’arduino avec comme projet final réaliser un feu tricolore ( dans un autre tuto ) .



Pour cette première partie nous allons juste apprendre le fonctionnement d’un arduino avec des leds et des boutons .

Matériel :

Budget : Non défini

  • Il vous faut 2 leds , 4 résistances dont 2 adaptées au led et 2 boutons.

Etape 1 : Les composants

Avant d’attaquer le premier tuto on va revenir sur les composants nécessaires.
Les résistances , elles servent à limiter le courant et le plus souvent à protéger des composants, ici nos leds.
Et ses résistances elles ont des valeurs qui sont exprimés en Ohm et une puissance en Watt pour la dissipation de ce courant en chaleur.

Les leds , ici on va utiliser des leds pour signaler quelque chose car il en existe d’autre types. Comme pour éclairer, avec les leds de puissance , des leds infra rouge comme celle des télécommandes classiques et même des leds ultraviolet.
Ce qu’il faut savoir c’est que les leds ont un sens , un coté positif , l’anode et un coté négatif la cathode.

Vous pouvez l’identifier rapidement soit avec la longueur des pattes de la led , la plus longue est le positif , soit en regardant la led , le plus petit morceau métallique est le positif(sauf exception).

Il faut aussi savoir que les leds ont des caractéristiques comme une tension de seuil et une intensité nécessaire au fonctionnement.
Pour faire fonctionner notre led ici on va avoir besoin d’une résistance mais pour cela il faut calculer la valeur nécessaire de la résistance pour protéger notre led suffisamment .
Nous avons récupéré les caractéristiques techniques de notre led et nous allons calculer la valeur nécessaire au bon fonctionnement.

Ici notre led a une tension de fonctionnement (seuil) de 2.2V et le courant nécessaire est de 20mA

Il faut que l’on se base sur 2 lois
– la loi d’ohm Ur = R x I
– la loi des Mailles Ualim = Ur + Uled
Ici on replace Ur dans notre loi des mailles ce qui nous donne Ualim = (R x I) + Uled

Dans ce résultat on veut connaître la valeur de R notre résistance donc en transposant tout ça on obtient R= ( Ualim – Uled ) / I
Ualim est égal au voltage avec lequel on alimente la led , ici on utilise le 5V d’arduino
Uled est égal a 2,2V la tension de seuil de sa caractéristique
Et I l’intensité nécessaire au fonctionnement de la led I=0,02A ( 20mA )

Ce qui nous donne (5 V – 2,2 V ) / 0,02 A = 140Ω calculé
Mais dans la serie E24 ( tolerance de 5% ) la valeur supérieur la plus proche que l’on va choisir est 150 ohm .

Maintenant que l’on a calculé la valeur de notre résistance on doit vérifier la puissance nécessaire a la résistance pour ne pas griller.
On calcule la puissance dissipé . Encore un calcul P = R x I²
En transposant avec la loi d’ohm cela donne P= U² / R
P= (Ualim – ULed )² / R
Ce qui nous donne ( 5 V – 2,2 V )² / 150 Ω = 0,052 W
Donc une résistance 1/4 de Watt ( 0,25 W ) est largement dimensionnée
( la puissance des résistances doit être largement supérieure pour éviter de que votre résistance ne chauffe trop et brûle , surtout si un jour vous souhaitez utiliser des led de puissance, sachez qu’il existe d’autres solutions )

Je sais c’est la partie la moins fun du tuto mais cela va être utile. !

Je ne vous présente pas les boutons c’est simple on appuie et ça laisse passer le courant, par contre ici il faudra utiliser une résistance de rappel appelé pull up ou pull down suivant le branchement effectué.
Voici le schéma rapide ci joint des 2 options , d’un coté on va détecter un état haut quand on appui sur le bouton , de l’autre quand on appuiera le bouton on détectera un état bas (on peut se passer de la résistance de rappel et utiliser celle de l’arduino mais ici je préfère utiliser mes propres résistances).
Pull-up dans le code on détectera un état bas. Par défaut l’arduino va détecter un état haut ( 5V )
Pull-down dans le code on détectera un état haut. Par défaut l’arduino détectera un état bas ( 0V ).

Etape 2 : Le schéma

Allé on passe au schéma logique Avant de commencer un projet il vous faut un schéma même rapide de ce que va faire votre programme.
Je vais garder en tête aussi les évolutions que l’on va apporter pour le prochain tuto ou l’on abordera les timers.
N’oublions pas que le projet final est un feu tricolore, mais ici nous allons simplement faire un système qui allume une led quand on appuie sur un bouton et éteint l’autre led ; même principe pour le deuxième bouton .

Au début notre programme allume une des deux led que l’on choisi, si j’appuie sur le bouton 1 j’allume la led 1 et j’éteins la led 2 et autre cas si j’appuie sur le bouton 2 j’allume la led 2 et j’éteins la led 1
On passe au montage de notre prototype: j’ai mon arduino ici , je connecte une led au pin 10 et la deuxième led a pin 7 , on se laisse quelques pin disponibles pour le tutoriel suivant.
Puis je connecte un bouton sur la pin 4 et l’autre sur le pin 3 avec un montage pull down, quand on va appuyer on va détecter un état haut sur notre arduino .
Pour les led on fait attention au sens ; on sait que l’arduino envoie notre 5V donc l’anode coté arduino , on n’oublie pas nos résistances et on relie le tout au gnd .

Etape 3 : Le code

Maintenant que le montage est bon on passe au code.
Ce que je fais en premier c’est de définir les numéros de pin utilisé par arduino , la zone 1 sert à définir des variables que vous allez pouvoir utiliser dans votre programme, ainsi qu’appeler des librairies mais on verra cela dans un autre tutoriel.
Je commence par les led , les numéros de nos pin sont des entiers et de plus des constantes (ne change pas)

Je le nomme facilement pour m’en rappeler
const int pinLed1a=10;
Je défini aussi ma led 2
const int pinLed2a=7;
Les boutons aussi même principe
const int pinBouton1=4;
const int pinBouton2=3;

La zone 2 zone setup , est la zone d’initialisation. Ici on va définir le mode des pin de notre arduino ( on peut aussi exécuter du code) c’est une zone dédiée a l’initialisation .
On définit les pin avec l’instruction pinMode() , il faut faire attention à la majuscule sur le M.

Dans ma parenthese en premier le numéro du pin que l’on a définit ,puis le type de pin que l’on choisi donc ici notre led1 est branchée sur le pin 10 et est en mode OUTPUT ce qui veut dire que l’on envoie des informations par cette broche donc on écrit :
pinMode(pinLed1a,OUTPUT);
On aurait put ecrire pinMode(10,OUTPUT); mais comme on a définit la valeur 10 dans la constante pinLed1a on récupère cette information et on pourra l’utiliser plus tard .
Il est plus facile de ce rappeler d’un nom de variable que de se rappeler d’un numéro surtout quand vous en avec beaucoup.
On fait de même avec la led 2 pinMode(pinLed2a,OUTPUT);

Passons aux boutons, même principe pour le numéro de pin mais ici le mode est INPUT ce qui veut dire que l’on récupère de l’information par cette broche donc on écrit :
pinMode(pinBouton1,INPUT);
pinMode(pinBouton2,INPUT);
Et comme dans mon programme a l’initialisation je souhaite allumer la led 1 j’inscris l’instruction
digitalWrite(pinLed1a,HIGH); ce qui correspond a dire met un état haut (5V) sur le pin pinLed1a , cela peut s’écrire digitalWrite(10,HIGH); comme précédemment .
Avant de terminer avec la zone 2 je vais rajouter l’instruction Serial.begin(9600); qui va vous permettre de récupérer des informations de l’arduino par le port serie (USB) et ainsi de comprendre ce qui se passe dans l’arduino et éventuellement déboguer votre programme ( très utile quand votre programme devient complexe )

On en a fini avec la zone 2 de setup, passons a la zone 3 .
Zone de loop , notre arduino va boucler indéfiniment à l’intérieur de la boucle.
Notre programme doit lire l’état des boutons et appliquer un changement si la condition est vraie.
Pour lire l’état d’une pin on utilise l’instruction digitalRead(pinBouton1) et comme on veut contrôler si cet état est à l’état haut (HIGH) on écrira:
if(digitalRead(pinBouton1) == HIGH){ }
IF peut être traduit par SI la broche du bouton 1 est égal a l’état haut alors on exécute tout ce qu’il y a dans les { }
A l’intérieur de notre condition on doit allumer la led 1 ( HIGH ) et éteindre la led 2 (LOW) ce qui nous donne
digitalWrite(pinLed1a,HIGH);
digitalWrite(pinLed2a,LOW);

Je rajoute quelques instructions pour écrire sur le port série des informations, ici j’écris que j’allume la led 1, et je reviens a la ligne. J’utilise l’instruction Serial pour utiliser le port serie et print pour écrire quelque chose car on peut aussi en lire ( read ).J’écris aussi « rn » pour revenir a la ligne.
Serial.print(« Feu 1 allume »);
Serial.print(« rn »);

On en a fini avec l’instruction pour le bouton 1, je vous laisse écrire les lignes de code pour le bouton 2 cela va vous permettre de savoir si vous avez compris le fonctionnement.
Télécharger le code arduino partiel ou le complet pour correction
Pour la zone 4 on le verra plus tard mais nous allons pouvoir créer des fonctions que nous allons pouvoir appeler dans la zone 2 ou 3.

On en a fini avec ce premier tutoriel, dans le prochain nous allons parler des timer et du fait de rajouter des temps d’arrêt .
J’allais oublier vous pouvez regarder le moniteur série dans votre programme arduino pour visualiser ce qu’il s’y passe.

N’hésitez pas à poser vos questions sur les réseaux sociaux de la chaîne, si vous ne comprenez pas certaines parties du tutoriel, de me dire ce que vous aimeriez que je crée pour en faire des vidéos tutoriel ,à partager les projets que vous aimeriez créer etc…

Comme toujours allez sur la page de C’est quoi Retro et Geek de mon site pour connaître tout ce que je recherche à faire sur la chaîne.
Merci les RetroGeeker et RetroGeekeuse

Sources :

http://retroetgeek.com/geek/arduino-cours-1-led-et-boutons/


Ces tutoriels devraient vous plaire

vignette Arduino Uno - Capteur d'humidité au sol.
Arduino Uno - Capteur d'humidité au sol.
vignette Écran Tactile et Raspberry Pi
Écran Tactile et Raspberry Pi
vignette Connecter un  écran LCD en I2C
Connecter un écran LCD en I2C

Découvrez tous les tutoriels partagés sur Oui Are Makers

Powered by Oui Are Makers