apprendre arduino

Apprendre l’Arduino : les ports analogiques et numériques

La carte Arduino est une carte électronique programmable, qui facilite la programmation aujourd’hui à plusieurs personnes et permet à tout le monde d’intégrer le bon monde de création et de conception (robotique : le fait de faire bouger des choses ou mettre du mouvement, domotique : la commande domestique,..). Je vais être clair sur ce point sur les entrées analogiques et numériques et vous parlez aussi des sorties PWM de l’arduino en bref.

Cette carte possède une puce sur laquelle plusieurs éléments sont centrés. C’est le microprocesseur de la carte Arduino qui orchestre notre programme. On retrouve également des bornes ou broches, ou alors des PINS sur cette carte. Ces PINS sont à bien comprendre pour bien utiliser la carte ARDUINO, c’est l’objectif de ces lignes :

C’est une question de plus que je rencontre surtout et souvent dans des forums qui réunit les utilisateurs de la carte Arduino et plus particulièrement ceux qui débutent en programmation avec cette carte électronique programmable.

J’ai donc choisi inclure ce titre dans cette formation : « Créer vos systèmes électroniques avec Arduino»

En électronique, on a toujours une tension ou non sur les bornes de nos composants électroniques ou partout sur nos circuits. Ces tensions ont des valeurs qui vont des 0 à une centaine de volts (ici je parle bien de l’électronique basique ou élémentaire, car l’électronique de puissance se confond plus facilement à l’électricité car on atteint même une dizaine de kilovolts !!). Ces tensions peuvent dont prendre plusieurs valeurs : progressivement ou au fil du temps ou alors à certaines conditions. C’est là qu’il faut comprendre, pour pouvoir continuer avec la carte Arduino et ses entrées (analogiques et numériques).

A lire également :  Comment piloter un servomoteur avec un NE555 sans ARDUINO ?

Les sorties PWM 3, 5, 6, 9, 10,11

Une carte Arduino possède 13 sorties ( ou broches ou encore pins). Ces sorties servent pour interagir avec les capteurs ou tous les autres composants électroniques extérieurs à l’Arduino. Cependant, nous observons une caractéristique commune à toutes ces broches : obtenir soit une tension de 0V soit une tension de 5volts à la sortie. Nous verrons une particularité pour les broches 3, 5, 6, 9, 10, 11 qui sont des broches dites PWM

Le  plus   simple   moyen   de  faire  varier  la   luminosité   d’une  LED ,   c’est   de  faire   varier  le   courant  qui  la   traverse. Mais  lorsqu’elle   est  branchée  sur  la   broche  d’une carte    Arduino,   ce  n’est  pas   possible :   les   broches  1  à  13  sont   en effet   numériques.  C’est- à- dire   qu’elles  n’ont  que   deux  états:  0  ou  1;  allumé   ou  éteint ( et ces états correspondent aux  deux niveaux de tensions 0 et 5 ). 

Alors pour   faire   varier  la luminosité   d’une  LED ( le courant pour une sortie),  on  va  utiliser   une   fonction   appelée  PWM :   Pulse Width Modulation en Anglais,   soit  modulation  de largeur   d’impulsions, en français.  Il   s’agit  de  faire   varier  les   périodes   hautes   (allumé)   et   basses  (éteint)  des   broches  à grande fréquence.  Ainsi, lors  d’un  cycle de 25%  en position haute et  75%  en position basse,  la  LED  sera  moins brillante  que   pour   un  cycle  à  50%/50%.

En  d’autre  terme,   cela   signifie  qu’on  va  faire   clignoter   très   vite   les   LEDs;   tellement  vite   que   l’œil   ne  percevra qu’une  lumière  continue. Mais plus  en augmentera la  durée des  périodes  où la  LED  est éteinte, moins il  y aura de  lumière   émise;   et   donc moins  la   LED   semblera  brillante.

A lire également :  Convertisseur 12V - 220V : [montage pratique]
sortie PWM arduino

Les   broches  capables   de  supporter  du  PWM sont   identifiées   par  un symbole suivant « ~ « .  Il   s’agit  des  broches  3,   5,   6,   9,   10 et 11, comme à l’image suivante :

carte Arduino sortie PWM

Une autre difference,   au  lieu   d’utiliser   la fonction digitalWrite,  pour   utiliser   le   PWM,   on  utilise la fonction analogWrite

La  valeur   du  PWM  s’étend  sur  256   paliers,  de  0  (=0%)   à  255   (=100%).  On  peut   ainsi  définir   la   valeur   PWM souhaitée  avec  la   formule   suivante :

Valeur PWM = (pourcentage : 100) x 255

Si vous êtes un matheux, vous pouvez donc facilement exprimer le pourcentage en fonction de ces autres paramètres, comme suit : Pourcentage = (valeur PWM : 255) x 100.

Projet Arduino : Variateur de lumière pour Led sur sortie PWM

int   ledPin   =   10;     //On  renomme  la  broche   10  en  "ledPin"  
int   timer  =   100 ;     //On  définit  une   durée  de  0,1   seconde  pour  la  variable   t imer 
 

void  setup()  {  
 
pinMode(ledPin,  OUTPUT);  
 
}  

 
void  loop()   {  
 
    //  LED   à   0%.      
    analogWrite(ledPin,  0);    
    delay(timer);  
     
    //  LED   à   19.6%.      
    analogWrite(ledPin,  50);   
    delay(timer);  
   
    //  LED   à   39.2%.      
    analogWrite(ledPin,  100);   
    delay(timer);  
     
    //  LED   à   58.8%.     
    analogWrite(ledPin,  150);   
    delay(timer);  
     
    //  LED   à   78.4%.      
    analogWrite(ledPin,  200);   
    delay(timer);  
     
    //  LED   à   100%.       
    analogWrite(ledPin,  255);   
    delay(timer);  
}

Projet Arduino : Modifier la luminosité d’une LED linéairement

 
 

int   ledPin   =   10;     //On  renomme  la  broche   10  en  "ledPin"   
void  setup()  {  
 
}   
void  loop()   {  
 
  //  Variation  du  min   au  max   par   addition   de  5   jusqu'à  256  
 
  for   (int  fadeValue  =   0   ;   fadeValue  <=  255;  fadeValue  +=  5) 
  {    
    //  Définition  de  la  valeur   de  luminosité  (de   0   à   255)   
    analogWrite(ledPin,  fadeValue);  
   
    //  Attente  de  30  millisecondes   entre  chaque   palie r   pour  voir  l'effet.      
    delay(30); 
  }  
 
  //  Variation  du  max   au  min   par   soustraction  de  5   depuis   256  
 
  for   (int  fadeValue  =   255   ;   fadeValue  >=  0;  fadeValue  - =   5)   
  {  
    //  Définition  de  la  valeur   de  luminosité  (de   0   à   255)   
    analogWrite(ledPin,  fadeValue);  
 
    //  Attente  de  30  millisecondes   entre  chaque   pal ier   pour  voir  l'effet.      
    delay(30); 
  }  
 
}

 

About the author

Curieux aux nouvelles technologies, développeur python vivant à Kinshasa, Congo - RD.

Commentaires

Laisser un commentaire

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

0 Partages
Partagez
Tweetez
Partagez
Enregistrer