Sommaire |
Dans ce tutoriel on vous montre comment réaliser un Vu-mètre a l'aide d'un bar-graphe ou 10 led et d'une photo-résistance.
Le but du Vu-mètre dans ce tutoriel est de détecter le niveau de la lumière, c'est pour cela qu'on utilise une photo-résistance. Si le niveau de la lumière est élevé, le bar-graphe ou les 10 led ne seront pas tous allumés et tant qu'on baisse le niveau de la lumière les 10 led s’allumeront de plus en plus .
Que voit-on ?
* À lumière ambiante, seule les premieres leds sont allumées.
* Cacher la photorésistance avec le doigt => toutes les leds seront allumées.
Explication simple
La photorésistance envoie une quantité plus ou moins grande d'électricité à la carte en fonction de l'intensité lumineuse reçue, l'Arduino réagit à cette quantité en allumant les leds. En effet, la photo-résistance modifie sa résistance interne en fonction de l'intensité lumineuse incidente.Plus la luminosité est forte, plus la valeur renvoyée par la photo resistance est faible.
#define NUMREADINGS 15 int senseLimit = 15; int probePin = A0; //Initialisation de la valeur de luminosité initiale int val = 0; //Déclaration des variables correspondant au placement des différents leds int LED1 = 11; int LED2 = 10; int LED3 = 9; int LED4 = 8; int LED5 = 7; int LED6 = 6; int LED7 = 5; int LED8 = 4; int LED9 = 3; int LED10 = 2; int readings[NUMREADINGS]; int index = 0; int total = 0; int average = 0; //Initialisation de la carte void setup() { //Initialisation des entrées/sorties de la carte Arduino pinMode(2, OUTPUT); pinMode(3, OUTPUT); pinMode(4, OUTPUT); pinMode(5, OUTPUT); pinMode(6, OUTPUT); pinMode(7, OUTPUT); pinMode(8, OUTPUT); pinMode(9, OUTPUT); pinMode(10, OUTPUT); pinMode(11, OUTPUT); //Ouverture du port série pour affichage des données du capteur dans le terminal Serial.begin(9600); for (int i = 0; i < NUMREADINGS; i++) readings[i] = 0; } //Boucle principale void loop() { //On lit la valeur renvoyée par le capteur lumineux val = analogRead(probePin); if(val >= 1){ val = constrain(val, 1, senseLimit); val = map(val, 1, senseLimit, 1, 1023); total -= readings[index]; readings[index] = val; // read from the sensor total += readings[index]; index = (index + 1); if (index >= NUMREADINGS) index = 0; average = total / NUMREADINGS; if (average > 10){ //On allume la LED digitalWrite(LED1, HIGH); } else{ //On éteint la LED digitalWrite(LED1, LOW); } if (average > 50){ //On allume la LED digitalWrite(LED2, HIGH); } else{ //On éteint la LED digitalWrite(LED2, LOW); } if (average > 90){ //On allume la LED digitalWrite(LED3, HIGH); } else{ //On éteint la LED digitalWrite(LED3, LOW); } if (average > 140){ //On allume la LED digitalWrite(LED4, HIGH); } else{ //On éteint la LED digitalWrite(LED4, LOW); } if (average > 200){ //On allume la LED digitalWrite(LED5, HIGH); } else{ //On éteint la LED digitalWrite(LED5, LOW); } if (average > 250){ //On allume la LED digitalWrite(LED6, HIGH); } else{ //On éteint la LED digitalWrite(LED6, LOW); } if (average > 300){ //On allume la LED digitalWrite(LED7, HIGH); } else{ //On éteint la LED digitalWrite(LED7, LOW); } if (average > 340){ //On allume la LED digitalWrite(LED8, HIGH); } else{ //On éteint la LED digitalWrite(LED8, LOW); } if (average > 400){ //On allume la LED digitalWrite(LED9, HIGH); } else{ //On éteint la LED digitalWrite(LED9, LOW); } if (average > 500){ //On allume la LED digitalWrite(LED10, HIGH); } else{ //On éteint la LED digitalWrite(LED10, LOW); } //On affiche val sur le moniteur Serial.println(val); } }
chercher ici : http://wikidebrouillard.org/index.php/Catégorie:Arduino
nous trouvons le même principe appliqué sur les écrans des ordinateurs et LCD .
© Graphisme : Les Petits Débrouillards Grand Ouest (Patrice Guinche - Jessica Romero) | Développement web : Libre Informatique