IDLabs-IoT Le site dédié aux objets connectés

Un site des laboratoires pédagogiques de l'école CampusID

Réalisation d’un programme de gestion d’une LED (allumer / éteindre & gestion d’intensité)

Posted on 13 mai 2018  in Non classé

Tout d'abord, qu'est-ce que l'Arduino ?

L’Arduino est une plateforme de prototypage électronique open-source, basée d’une part sur du matériel et d’autre part sur un ensemble de logiciels faciles à utiliser. Destiné aux artistes, amateurs, designers, il trouvera entièrement sa place dans l’univers du train miniature.

L’histoire retiendra que c’est dans un bar d’une petite ville du nord de l’Italie qu’est né le projet Arduino qui, de manière totalement inattendue, est en train de révolutionner le domaine de l’électronique à l’échelle mondiale, puisque pour la première fois tout le monde peut vraiment s’y essayer et découvrir qu’il aime ça  !

Sortie en 2005 comme un modeste outil pour les étudiants de Banzi à l’Interaction Design Institute Ivrea (IDII), Arduino a initié une révolution DIY dans l’électronique à l’échelle mondiale. Tous les schémas électroniques et le code source sont disponibles gratuitement sous des licences libres. Le résultat en est qu’Arduino est devenu le projet le plus influent de son époque dans le monde du matériel libre.

La petite carte est désormais devenu le couteau suisse de nombreux artistes, passionnés, étudiants, et tous ceux qui rêvaient d’un tel gadget. Plus de 250 000 cartes Arduino ont été vendues à travers le monde — sans compter celles construites à la maison.

On trouve des alcootests, des cubes à DEL, des systèmes de domotique, des afficheurs Twitter et même des kits d’analyse ADN basés sur Arduino. Il y a des soirées Arduino et des clubs Arduino. Google a récemment publié un kit de développement basé sur Arduino pour ses smartphones Android.

Il existe plusieurs cartes Arduino dont les caractéristiques sont plus ou moins riches. La caractéristique première d’une carte Arduino est le type micro-contrôleur dont elle est équipée. Actuellement, et probablement pour encore longtemps, deux familles de micro-contrôleurs sont employées : des AVR 8 bits de la société ATMEL et des ARM 32 bits de la série Cortex-M, conçus par la société Advanced RISC Machines et fabriqués par différents fondeurs.

Pour résumer rapidement, les cartes Arduino à base d’AVR sont plus simples et comportent moins de mémoire que les cartes à base d’ARM. Leur capacité de calcul est également plus faible mais elles sont généralement meilleur marché.

La carte la plus utilisée est l’Arduino Uno. Il s’agit d’une carte équipée d’un micro-contrôleur de la famille AVR 8 bits : l’ATMega328. Voici cette carte :

Maintenant que nous avons brièvement parlé des origines et des principes global d’utilisation des cartes Arduino, nous allons pouvoir réaliser l’exercice suivant : Faire fonctionner une LED (allumer / éteindre) et pouvoir gérer l’intensité de celle-ci.

 


I - Allumer / Eteindre une LED (couleur au choix, voir le tableau ci-dessous pour la correspondance des résistances)

Il est donc nécessaire dans un premier temps de présenter le matériel requis à la réalisation de cet exercice, il est le suivant :

  • Arduino Uno
  • Breadboard
  • une LED
  • cables mâle -> femelle
  • un bouton poussoir
  • une résistance 220Ω
  • une résistance 10kΩ

A savoir que tout le matériel ci-dessus est disponible dans le Starter Kit Arduino en vente sur de nombreux site.

Circuit

 

La tension de sortie de l’Aduino Uno étant en 5V, il est nécessaire d’inclure dans le montage une résistance entre la broche de l’Arduino et la Led. Pour déterminer la résistance, il faut connaître la tension d’alimentation de la Led. Voici un tableau récapitulatif de la tension d’alimentation typique en fonction de la couleur et du diamètre de la Led.

Code

Passons maintenant à la partie du code permettant le contrôle de la LED, tout du moins qui permet d’allumer et d’éteindre celle-ci.

Le code suivant permet d’allumer et d’éteindre la led en appuyant sur un bouton poussoir. Voici comment le code fonctionne.

L’Arduino lit en continu un changement d’état du bouton. Comme ce n’est pas un bouton ON/OFF, il faut gérer le changement d’état de la variable intermédiaire buttonState. Pour cela, on enregistre le temps (avec la commande millis()) dans la variable lastDebounceTime. Si le temps entre 2 clics sur le bouton est supérieur à la variable debounceDelay, alors on change l’état de buttonState et on inverse l’état de la sortie pilotant la Led.

 

II - Faire varier l’intensité d’une LED

 

Pour faire varier l’intensité lumineuse d’une Led, nous allons utiliser une sortie PWM (Pulse Width Modulation) de l’Arduino. L’Arduino Uno dispose de 6 sorties digitales qui peuvent être utilisées comme sorties PWM (3,5,6,9,10 et 11). Le schéma ci-dessous montre comment fonctionne un signal PWM. Lorsqu’on envoi la valeur 255 sur le Pin de la Led, celle-ci reçoit en continue une tension de 5V. Ensuite, lorsqu’on diminue la valeur, l’Arduino génère un signal carré, c’est à dire que pendant un certain temps, la tension est de 5 et, durant une autre période elle est de 0V. Plus on diminue la valeur, plus le temps entre deux pics à 5V sera long.

Finalement, plus la valeur diminue, moins la Led va s’allumer longtemps. La fréquence étant suffisamment rapide, l’oeil à l’illusion que l’intensité de la Led diminue. Vous pourrez la voir légèrement clignoter en diminuant suffisamment le potentiomètre.

Circuit

 

 

Code

L’Arduino lit en continue la valeur du potentiomètre (entre 0 et 1023) toutes les 100 ms. La fonction map remet à l’échelle la valeur envoyée à la sortie PWM entre 0 et 254.

 


Sources :

0 thoughts on “Réalisation d’un programme de gestion d’une LED (allumer / éteindre & gestion d’intensité)”

Laisser un commentaire

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