[Tuto] Utiliser un bargraphe avec un Arduino

Posté sur: mai 9, 2013

Catégories: Arduino

Tags: arduino , bargraphe , capteur , luminosite , tuto

Le bargraphe est un ensemble de LED. Il est très pratique pour visualiser des niveaux. Nous allons ici effectué un programme dans la continuité du programme sur les capteurs (Tuto ici: https://letmeknow.fr/fr/blog/5-tuto-utiliser-un-capteur-avec-le-arduino).

Bargraphe

Nous utilisons un modèle ELB-1001 dont la documentation est présente ici: http://www.everlight.com/datasheets/B1001SYGWA-S530-E2_datasheet.pdf

Liste des composants

Montage

Pour le montage, nous repartons du montage précédent en ajoutant le bargraphe comme 10 LEDs indépendantes avec leurs résistances associées sur 10 sorties numériques du Arduino.

Bargraphe_schéma

L'équivalent en montage avec des LEDs est:

 Montage à LEDs

  • Programme

On repars du programme précédent en ajoutant différents éléments:

- Une variable globale pour le nombre de LED

- Un tableau avec les pins utilisées pour les LEDs

- La définition des sorties dans le setup()

- Une variable ledLevel entre 0 et 10 pour commander le bargraphe grace à la fonction map() pour plus       d'information regardez la documentation officielle http://arduino.cc/de/Reference/Map

- Un if qui affiche un nombre de LED proportionnel à la valeur de ledLevel

// 09/05/2013

// Letmeknow.fr

// Capteur & 10k resistor en pont diviseur entre 5V et GND

// Bargraphe sur les sorties D2 a D11

#include

#define SENS_PIN 5 // Pin utilisée pour le capteur

#define LED_COUNT 10 // Nombre de LEDs utilisées

double sens; // Variable comprenant la temperature

double V_IN = 5.0; // Variable de la tension d'alimentatio

double R1 = 10000; // Valeur de la resistance en parallele

int ledPins[] = { 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; // Tableau comprenant les références des pins utilisés

void setup() {

Serial.begin(9600);

for (int thisLed = 0; thisLed < LED_COUNT; thisLed++) {

pinMode(ledPins[thisLed], OUTPUT); // Boucle pour définir les pin utilisees comme sortiesn }

}

void loop() {

sens = analogRead(SENS_PIN); // Lecture de la valeur du capteur

Serial.print("Valeur mesuree = ");

Serial.print(sens); // Affichage de la valeur mesurée de 0 à 1024

Serial.print("n");

int ledLevel = map(sens, 0, 1023, 0, LED_COUNT); // Creation d'une valeur en 0 et LED_COUNT fonction de la mesure

for (int thisLed = 0; thisLed < LED_COUNT; thisLed++) {

// Si la valeur est inferieur a LED_COUNT on allume la LED

if (thisLed < ledLevel) { digitalWrite(ledPins[thisLed], HIGH);

// turn off all pins higher than the ledLevel:

else {

digitalWrite(ledPins[thisLed], LOW); 

}

}

// Pause de 1 seconde

delay(1000);

}

laissez un commentaire

Se connecter