Vu-mètre avec bar-graphe et photo-resistance

De Wikidebrouillard.

Article incomplet en cours de rédaction
La vidéo "Vu-mètre avec bar-graphe et photo-resistance"

Sommaire

Présentation du projet

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 .

Liste du matériel

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. 

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

Code


#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); 
  }
} 

Liens avec d'autres projets arduino

chercher ici : http://wikidebrouillard.org/index.php/Catégorie:Arduino

Liens avec le quotidien

nous trouvons le même principe appliqué sur les écrans des ordinateurs et LCD .

Portail des ExplorateursWikidébrouillardLéon DitFLOGPhoto mystèreJ'ai FaitPortraitsAnnuaire
AR
CO

Vu-mètre avec bar-graphe et photo-resistance

Rechercher

Page Discussion Historique
Powered by MediaWiki
Creative Commons - Paternite Partage a l

© Graphisme : Les Petits Débrouillards Grand Ouest (Patrice Guinche - Jessica Romero) | Développement web : Libre Informatique