TPBD1 : Partie 3 Chapitre 2 – Sorties / entrées analogiques

Accueil/TPBD1 : Partie 3 Chapitre 2 – Sorties / entrées analogiques
TPBD1 : Partie 3 Chapitre 2 – Sorties / entrées analogiques 2016-12-20T11:38:36+00:00

Project Description

Maintenant on aborde des notions plus avancés, fini les pins avec tout ou rien, maintenant on pourra mettre un peu de tension, pas du tout, beaucoup mais pas tout… Bref on aura un total contrôle du courant passant par nos pins. Attention ce tutoriel ne marche que pour les entrés analogiques et les sorties PWM.

 

Introduction

arduino

Tout comme les sorties /entrées numériques, les sorties/entrées analogiques communiquent avec l’extérieur grâce ou courant de la carte Arduino. Sauf que ses signaux ne sont pas de type tout ou rien (numériques) mais qui varient entre 0 et 5 VOLTS donc ça peut être 0,1 volt ou 4,9 volts par exemple. Ce qui permet, par exemple, de faire tourner un moteur à une vitesse qui varie.

Sur la photo a gauche ; en rouge les sorties analogiques et en bleu les entrées.

 

Déclarer une sortie analogique

Sur l’arduino UNO les pins qui peuvent émettre un courant analogiques son marquer par un ~, ce sont les PWM.

Pour dire qu’un PIN de l’arduino est une sortie on commence par déclarer sur lequel elle se trouve : (en général ceci est déclarer avant le void setup() )

int ma_sortie = 2; //On déclare la sortie "ma_sortie" sur le pin 2 de l'arduino.

Ensuite on dit que c’est une sortie , on déclare sa dans le setup :

pinMode(ma_sortie , OUTPUT); // ma_sortie est égal a la variable déclarer plus et tôt et OUTPUT signale que c'est une sortie.

Pour l’instant ça va.C’est comme le numérique.

Commander une sortie analogique

Maintenant nous voulons utiliser notre sortie. Pour choisir quelle tension faire sortir nous utilisons cette ligne :

analogWrite(ma_sortie, valeur); // met la sortie ma_sortie a l'état haut.

valeur est égal au courant que vous voulez faire sortir entre 0 et 5v , je m’explique vous choisissez une valeur entre 0(=0V,équivalent à la masse) et 255(=5V)

 

Déclarer une entrée analogique

Pour declarer une entrée il suffit de faire comme pour une sortie sauf que on remplace OUTPUT par INPUT.

pinMode(mon_entree , INPUT); // mon_entree est égal à la variable déclarer plus et tôt et INPUT signale que c'est une entrée

Commander une entrée analogique

Pour commander une entrée analogique, on peut récupérer une valeur entre 0 et 1023 en utilisant :

int valeur = analogRead(mon_entree);

TP: Les commandées par un potentiomètre

Pour Ce tutoriel nous avons besoins de :

  • Une Arduino
  • Une plaque d’essais
  • Des cables
  • Un potentiomètre
  • 5 résistances de 220 ohm
  • 5 leds

 

Reliez les 5 leds aux pin 13, 12, 11, 10 et 9 avec leur pate positive, l’anode et leur cathode à une résistance puis ç la masse.

Puis rentrez ce code dans votre Arduino :

int led1 = 13;
int led2 = 12;
int led3 = 11;
int led4 = 10;
int led5 = 9;
int mon_entree = 0;//on déclare l'entrée
void setup()
{
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(led5, OUTPUT);
pinMode(mon_entree, INPUT); // on dit que notre entrée est une entrée 
}
void loop() {

if(analogRead(mon_entree) == 0) // on regarde combien on recoit
{ digitalWrite(led1, LOW);
 digitalWrite(led2, LOW);
 digitalWrite(led3, LOW);
 digitalWrite(led4, LOW);
 digitalWrite(led5, LOW);

}
if(analogRead(mon_entree) >= 1 && analogRead(mon_entree) < 200)
{ digitalWrite(led1, HIGH);
 digitalWrite(led2, LOW);
 digitalWrite(led3, LOW);
 digitalWrite(led4, LOW);
 digitalWrite(led5, LOW);

}
if(analogRead(mon_entree) >= 200 && analogRead(mon_entree) < 400 )
{ digitalWrite(led1, HIGH);
 digitalWrite(led2, HIGH);
 digitalWrite(led3, LOW);
 digitalWrite(led4, LOW);
 digitalWrite(led5, LOW);

}
if(analogRead(mon_entree) >= 400 && analogRead(mon_entree) < 800)
{ digitalWrite(led1, HIGH);
 digitalWrite(led2, HIGH);
 digitalWrite(led3, HIGH);
 digitalWrite(led4, LOW);
 digitalWrite(led5, LOW);

}

if(analogRead(mon_entree) >= 800 && analogRead(mon_entree) < 1000)
{ digitalWrite(led1, HIGH);
 digitalWrite(led2, HIGH);
 digitalWrite(led3, HIGH);
 digitalWrite(led4, HIGH);
 digitalWrite(led5, LOW);

}
if(analogRead(mon_entree) >= 1000)
{ digitalWrite(led1, HIGH);
 digitalWrite(led2, HIGH);
 digitalWrite(led3, HIGH);
 digitalWrite(led4, HIGH);
 digitalWrite(led5, HIGH);

}
}

5 Commentaires

  1. nico 8 novembre 2014 à 19 h 23 min␣- Répondre

    Bonjour, merci pour ce tuto génial, je débute avec Arduino.

    Je vous contact car suivant votre tuto a la lettre j’ai compiler le code pour les 5 led
    au lien suivant: https://tutoarduino.com/portfolio-items/tpbd1-partie-3-chapitre-2-sorties-entrees-analogiques/
    le programme ne voulait se compiler car il y a 2 void loop, je sais pas si c’est une erreur j’ai remplacé par setup et c’est ok bonne continuation…

    Nico

  2. arnaud9212 9 novembre 2014 à 13 h 33 min␣- Répondre

    Effectivement la première boucle est bien la setup() nous corrigeons cela immédiatement. Merci de cette remarque!

  3. Adrienne 26 février 2015 à 21 h 34 min␣- Répondre

    Merci le tutoriel est très clair ! Bonne continuation l’équipe TutoArduino

  4. damienjdf 15 octobre 2015 à 14 h 09 min␣- Répondre

    Bonjour,

    J’ai un peu de mal à connecter le tout, même si ça doit être simple.
    A-t-on un plan de montage ?
    Mon souci est de savoir ou placer le potentiomètre ?

    Merci

  5. lh99 7 avril 2016 à 11 h 00 min␣- Répondre

    Bonjour,
    suite au montage j’ai grillé le potentiomètre, quelqu’un aurait-il une raison à proposer?
    Merci

Laisser un commentaire