(→Présentation du projet) |
|||
(24 versions intermédiaires masquées) | |||
Ligne 1 : | Ligne 1 : | ||
{{avertissement}} | {{avertissement}} | ||
- | {{vidéo|numérovidéo = <videoflash type="mediaspip" num ="1">http:// | + | {{vidéo|numérovidéo = <videoflash type="mediaspip" num ="1">http://www.youtube.com/watch?v=MaLPagG4lIc&feature=youtu.be|400|300</videoflash>}} |
==Présentation du projet== | ==Présentation du projet== | ||
- | Dans ce tutoriel on vous montre comment réaliser un Vu-mètre a l'aide d'un bar-graphe et d'une photo-résistance. | + | 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 | + | 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 . |
==Liste du matériel== | ==Liste du matériel== | ||
Ligne 19 : | Ligne 19 : | ||
==réalisation du projet== | ==réalisation du projet== | ||
- | = | + | |
+ | '''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. | ||
+ | |||
+ | [[Image:Vumetre1.jpg|500px]] | ||
+ | |||
+ | [[Image:Vumetre2.jpg|500px]] | ||
+ | |||
+ | [[Image:Vumetre3.jpg|500px]] | ||
+ | |||
+ | '''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. | ||
===Schéma Fritzing=== | ===Schéma Fritzing=== | ||
+ | [[Image:Vumetrephotoresistance2.png|500px]] | ||
+ | | ||
+ | |||
===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() { | ||
+ | |||
+ | //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); | ||
+ | } | ||
+ | } | ||
</pre> | </pre> | ||
==Liens avec d'autres projets arduino== | ==Liens avec d'autres projets arduino== | ||
chercher ici : http://wikidebrouillard.org/index.php/Catégorie:Arduino | chercher ici : http://wikidebrouillard.org/index.php/Catégorie:Arduino | ||
- | |||
- | |||
==Liens avec le quotidien== | ==Liens avec le quotidien== | ||
- | + | nous trouvons le même principe appliqué sur les écrans des ordinateurs et LCD . | |
[[Catégorie:Arduino]] | [[Catégorie:Arduino]] |
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