(→Schéma Fritzing) |
(→Code) |
||
Ligne 26 : | Ligne 26 : | ||
===Code=== | ===Code=== | ||
<pre> | <pre> | ||
- | + | ||
- | // | + | #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() { | ||
+ | |||
+ | 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){ | ||
+ | digitalWrite(LED1, HIGH); | ||
+ | } | ||
+ | else{ | ||
+ | digitalWrite(LED1, LOW); | ||
+ | |||
+ | } | ||
+ | |||
+ | |||
+ | if (average > 50){ | ||
+ | digitalWrite(LED2, HIGH); | ||
+ | } | ||
+ | else{ | ||
+ | digitalWrite(LED2, LOW); | ||
+ | |||
+ | } | ||
+ | |||
+ | if (average > 90){ | ||
+ | digitalWrite(LED3, HIGH); | ||
+ | } | ||
+ | else{ | ||
+ | digitalWrite(LED3, LOW); | ||
+ | |||
+ | } | ||
+ | |||
+ | if (average > 140){ | ||
+ | digitalWrite(LED4, HIGH); | ||
+ | } | ||
+ | else{ | ||
+ | digitalWrite(LED4, LOW); | ||
+ | |||
+ | } | ||
+ | |||
+ | if (average > 200){ | ||
+ | digitalWrite(LED5, HIGH); | ||
+ | } | ||
+ | else{ | ||
+ | digitalWrite(LED5, LOW); | ||
+ | |||
+ | } | ||
+ | |||
+ | if (average > 250){ | ||
+ | digitalWrite(LED6, HIGH); | ||
+ | } | ||
+ | else{ | ||
+ | digitalWrite(LED6, LOW); | ||
+ | |||
+ | } | ||
+ | |||
+ | if (average > 300){ | ||
+ | digitalWrite(LED7, HIGH); | ||
+ | } | ||
+ | else{ | ||
+ | digitalWrite(LED7, LOW); | ||
+ | |||
+ | } | ||
+ | |||
+ | if (average > 340){ | ||
+ | digitalWrite(LED8, HIGH); | ||
+ | } | ||
+ | else{ | ||
+ | digitalWrite(LED8, LOW); | ||
+ | |||
+ | } | ||
+ | |||
+ | if (average > 400){ | ||
+ | digitalWrite(LED9, HIGH); | ||
+ | } | ||
+ | else{ | ||
+ | digitalWrite(LED9, LOW); | ||
+ | |||
+ | } | ||
+ | |||
+ | if (average > 500){ | ||
+ | digitalWrite(LED10, HIGH); | ||
+ | } | ||
+ | else{ | ||
+ | digitalWrite(LED10, LOW); | ||
+ | |||
+ | } | ||
+ | |||
+ | |||
+ | Serial.println(val); | ||
+ | } | ||
+ | } | ||
</pre> | </pre> | ||
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 .
#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() { 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){ digitalWrite(LED1, HIGH); } else{ digitalWrite(LED1, LOW); } if (average > 50){ digitalWrite(LED2, HIGH); } else{ digitalWrite(LED2, LOW); } if (average > 90){ digitalWrite(LED3, HIGH); } else{ digitalWrite(LED3, LOW); } if (average > 140){ digitalWrite(LED4, HIGH); } else{ digitalWrite(LED4, LOW); } if (average > 200){ digitalWrite(LED5, HIGH); } else{ digitalWrite(LED5, LOW); } if (average > 250){ digitalWrite(LED6, HIGH); } else{ digitalWrite(LED6, LOW); } if (average > 300){ digitalWrite(LED7, HIGH); } else{ digitalWrite(LED7, LOW); } if (average > 340){ digitalWrite(LED8, HIGH); } else{ digitalWrite(LED8, LOW); } if (average > 400){ digitalWrite(LED9, HIGH); } else{ digitalWrite(LED9, LOW); } if (average > 500){ digitalWrite(LED10, HIGH); } else{ digitalWrite(LED10, LOW); } Serial.println(val); } }
chercher ici : http://wikidebrouillard.org/index.php/Catégorie:Arduino
quelles peuvent être les applications technologiques de ce montage, ou est-ce qu'on retrouve des programmes qui y ressemble ?
© Graphisme : Les Petits Débrouillards Grand Ouest (Patrice Guinche - Jessica Romero) | Développement web : Libre Informatique