25 mars 2012

Arduino leçon 5 ancienne version

Nous allons lire une entrée analogique d'Arduino, mais voyons d'abord l'utilisation d'un afficheur LCD 16x2.
pas FB

présentation de l'afficheur LCD

La plupart des afficheurs à 16 broches ont le même branchement, quelque soit leur marque. La broche n°1 est celle qui est proche de l'angle.

afficheur 16x2
brocheutilisation
1 GND
2 +5
3 contraste
4 RS
5 R/W
6 Enable
7 DB0
8 DB1
9 DB2
10 DB3
11 DB4
12 DB5
13 DB6
14 DB7
15 +5
16 GND

Le contraste (pin 3) s'ajuste avec un potentiomètre entre +5 et GND
On n'utilisera que 4 entrées du data bus (DBx)

le programme LCD_16x2

      /* programme LCD_16x2
      Utilisation de l'afficheur 16 x 2 */
     
      branchements de l'afficheur :
      * RS à digital pin 12
      * Enable à digital pin 11
      * D4 à digital pin 5
      * D5 à digital pin 4
      * D6 à digital pin 3
      * D7 à digital pin 2
      * R/W à ground (on écrit sans avoir à lire)
      * potentiomètre 10K entre +5V and ground
      - curseur relié à pin 3 (luminosité) */
     
      // il faut inclure le fichier qui contient les commandes de l'afficheur
      #include LiquidCrystal.h>
     
      // initialiser les commandes avec les n° de broches utilisées
      LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
     
      void setup() {
            // initialiser le nombre de colonnes et de lignes
            lcd.begin(16, 2);
            lcd.print("Bonjour");
      }
     
      void loop() {
            lcd.setCursor(0, 1); // col 0, ligne 1 (la seconde)
            // affichage du temps écoulé
            lcd.print(millis()/1000);
      }

Entrée analogique

Une entrée analogique ne se contente pas de 0 ou 5 volts : elle est capable d'analyser 1024 valeurs.

Pour afficher cette valeur, il faudra la traduire en volts tout simplement en cherchant son 1/205ème ( 5 volts divisés par 1024 ).
Nous allons appliquer sur l'entrée analogique 0 une tension variable venant d'un potentiomètre.
Dans notre programme, nous replacerons l'affichage du temps par celui de la tension.
dans les déclarations, on ajoute
            float sensorValue = 0;
            float voltage;

float désigne un nombre en virgule flottante et permet de stocker des nombres décimaux.
et on modifie la boucle :

      void loop() {
            sensorValue = analogRead(0);
            voltage = sensorValue/205;
            lcd.setCursor(0, 1);
            lcd.print(voltage);
            lcd.setCursor(5,1);
            lcd.print("V");
      }



haut de la page
flèche gauche Page Précédente : l'afficheur spécial pour Arduino          

Valid XHTML 1.0 Transitional