Apprendre à programmer avec Arduino - Intensité d'une LED

Arduino, vous en avez probablement déjà entendu parler?

Ce microcontrôleur est utilisé dans le monde des Makers pour créer des projets très variés. 

Vous avez envie de vous lancer, sans savoir par où commencer?  

Je vous propose de découvrir les bases de la programmation avec Arduino d'une manière simple. Je ne ferai pas un cours descriptif sur ce micro contrôleur. Il existe de nombreux ouvrages spécialisés qui le font très bien. 

Je vais essayer d’être synthétique, d’aller à l’essentiel, pour démarrer doucement et sans prise de tête. Comme avec mes élèves. 


Petit à petit vous allez découvrir des composants et le langage pour les contrôler.

Comme des  briques, ces éléments vont venir s'emboîter pour enrichir vos connaissances afin que vous puissiez aller vers des projets plus complexes.  

Troisième épisode


Comment faire varier l’intensité d’une LED, comme avec les anciennes lampes halogènes ? Cet exemple va vous permettre de découvrir les broches PWM de l’Arduino.



Un peu d’électronique

La carte Arduino est pourvue de deux types de broches : les entrées et les sorties numériques (digital) et des entrées analogiques (analog).

Les broches digitales reçoivent ou émettent des valeurs binaires (0 ou 1). 
  • Une valeur 0, cela signifie que la broche ne génère pas de signal (LOW). Ce qui se traduit par une tension de 0 V à sa sortie.
  • Une valeur 1 signifie que la broche génère un signal (HIGH). Ce qui se traduit par une tension de 5V à sa sortie.

Les broches digitales sont au nombre de 13 notées de 1 à 13. Le numéro de six de ces broches est précédé du symbole (~). Il s’agit de broches de type PWM.

PWM en anglais Pulse Width Modulation ou Modulation à largeur d’Impulsion, en français. 

L’impulsion, la tension qui est donnée à la broche (qui est transmise au composant) peut être modulée avec des valeurs comprises entre 0 et 255. 
Pour une valeur de 255, la LED reçoit en continu une tension de 5V. L’Arduino génère un signal carré. Lorsque la valeur est diminuée, la tension oscille entre 5V et 0V sur des temps plus ou moins longs. Ce qui donne l’effet d’un changement d’intensité.

« Le PWM est un signal de fréquence fixe qui a un rapport cyclique qui varie avec le temps suivant les ordres qu’elle reçoit. »


Source Arduino.cc



Branchement




Code 1

Ce premier programme consiste à augmenter progressivement l’intensité de la LED.


Structure du code

Ce programme présente deux nouvelles structures, une boucle et une instruction, positionnées dans la boucle de répétition. 


Syntaxe

for (initialisation ; conditions ; incrémentation) ;
   {

   }



for = est une boucle utilisée pour répéter une instruction, ou un bloc d’instructions, regroupées entre des accolades.

L’entête d’une boucle for est constituée de trois parties :
  • Initialisation : la variable i est initialisée à 0
  • Condition : la condition est vraie tant que la valeur de i est plus petite que la valeur 255 (intensité maximale)
  •  Incrémentation : à chaque lecture de la boucle, la variable i est incrémentée de 1 (++)


for (int i=0; i<255;i++) // le programme teste en permanence la condition et incrémente la variable i. Lorsque la condition renvoie Faux, l’exécution de la boucle est arrêtée.




Syntaxe 

analogWrite(broche, valeur);

analogWrite = génère une impulsion sur une broche définie

L'instruction analogWrite est constitué de deux paramètres à définir :
  • La broche : concernée par cette impulsion
  • La valeur de l'impulsion envoyé sur la broche


Code 2

Ce deuxième programme consiste à augmenter progressivement l’intensité de la LED. Puis à la diminuer.


Une fiche synthétique est disponible sur mon Padlet.



#defiArduino

Programmez deux boutons :
  • Le 1er pour allumer progressivement la LED
  • Le 2ème pour éteindre progressivement la LED





Commentaires

Posts les plus consultés de ce blog

Scratch - Dessiner dans un repère orthonormé

Fabriquer une main articulée

Scratch : les déplacements