Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/LocalSettings.php on line 193

Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/LocalSettings.php on line 197

Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/includes/parser/Parser.php on line 2338

Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/includes/parser/Parser.php on line 2338

Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/includes/parser/Parser.php on line 2338

Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/includes/parser/Parser.php on line 2338

Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/includes/parser/Parser.php on line 2338
[ Wikidébrouillard ] Le capteur qui avait peur de l'obscurité

Le capteur qui avait peur de l'obscurité

De Wikidebrouillard.

Article incomplet en cours de rédaction
Modèle:Vidéo


Sommaire

Présentation de l'expérience

Certaines fleurs, une fois la nuit tombée, se referment et se rouvrent le matin. On va ici reprendre ce système avec un capteur de luminosité qui fera le coeur de la fleur et 2 servomoteurs à la place des pétales.

Matériel

  • Fichier:Photorésistance.jpg 1 photorésistance ou un capteur de luminosité, ici on a utilisé un TEMT6000
  • 2 servomoteurs
  • 1 arduino (uno ici)
  • du papier/carton/autres permettant de faire des rectangles qu'on fixera aux servomoteurs
  • des fils
  • 1 ordinateur avec le logiciel arduino

L'expérience

Le montage

On alimente en 5V le capteur et les 2 servomoteurs (fils rouges des servomoteurs et Vcc du capteur). Le fils noir des servomoteurs ainsi que le GND du capteur sont reliés au ground (GND) d'arduino. Le servomoteur de droite (quand on est face au capteur) sera branché sur l'entrée 9, celui de gauche à l'entrée 6.

Le code

#include <Servo.h> // On inclue la librairie permettant de contrôler les servomoteurs

Servo droite; //on crée l'objet de type "Servo" qui sera nommé droite
Servo gauche; //et le second, celui de gauche

//ces variables seront chargées de contrôler la position des servo
int posgauche = 0; 
int posdroite = 0;

int lum = 0; //la variable où sera stockée la luminosité

int etat = 1; // variable permettant de connaître les positions des servomoteurs (voir ci-dessous)

int comptemps = 0; //variable permettant de compter le temps
int seuil = 50; //le seuil où le dispositif se refera

void setup() {
 //on donne la broche où est reliée le servo
 droite.attach(9);
  gauche.attach(6);
}

void loop() {
  lum = analogRead(A0); //on lit la luminosité sur la broche A0 où est relié le capteur
  if((lum<seuil)&&(etat==0)) { 
  //si la luminosité est inférieur au seuil et que l'état est à 0
    comptemps++;
    //on ajoute 1 au compteur
    if(comptemps==10) {
    //si le compteur est à 10 (c'est à dire si le programme a fait 10 tours)
        for(posdroite = 0, posgauche=180;(posdroite<179)&&(posgauche>1);posdroite++, posgauche--) {
      gauche.write(posgauche);
      delay(10);
      droite.write(posdroite);
      delay(20);
    }
    //on rouvre la "fleur" et on met l'état à 1
    etat=1;
    }
  }
  else if((lum<seuil)&&(etat==1)) {
  //si la luminosité est en dessous du seuil et que état est à 1
    for(posgauche = 0, posdroite=180;(posgauche<179)&&(posdroite>1);posgauche++, posdroite--) {
      gauche.write(posgauche);
      delay(10);
      droite.write(posdroite);
      delay(20);
    }
    //on referme la "fleur" et on met état à 0
    etat=0;
  }
  else if((lum>seuil)&&(etat==0)) {
  //Si la luminosité est au-dessus du seuil et que la "fleur" est refermée
    for(posdroite = 0, posgauche=180;(posdroite<179)&&(posgauche>1);posdroite++, posgauche--) {
      gauche.write(posgauche);
      delay(10);
      droite.write(posdroite);
      delay(20);
    }
    etat=1;
    comptemps = 0;
    //On ouvre la "fleur" et on remet le compteur à 0, ainsi que l'état à 1
  }
  else if((lum>seuil)&&(etat==1)) {
    //on continue sans rien faire : la luminosité n'est pas inférieur au seuil et la "fleur" est ouverte
  }
  delay(1000);
}

A noter : les lignes commençant par "//" sont des commentaires : ils sont effacés lorsque le programme est envoyé à l'arduino, ils n'influencent pas son application

L'état 0 correspondant à un état "replié" et le 1 à un état "ouvert".

Le seuil de luminosité étant géré par une variable, il suffit de remplacer "50" par une autre valeur afin d'ajuster le seuil de luminosité à l'endroit où on fait le montage.

Que voit-on ?

On voit que si on met son doigt sur le capteur de luminosité, le système se referme "protégeant" le capteur. Si on attend un peu ou qu'on éclaire le capteur, le système se rouvre.

Explications

En mettant le doigt sur le capteur, on réduit la luminosité reçu par le capteur : permettant de passer le seuil. Une fois le seuil franchie, l'arduino va faire bouger les servomoteurs pour refermer le système. Inversement, si la luminosité est plus haute que le seuil, le système va se rouvrir.

Cela illustre le fait que certaines fleurs se referment la nuit.

Questions sans réponses

Expériences sur Wikidébrouillard

Autres expériences

Autres expériences avec le même concept, recherche sur internet (indiquer les liens). 

Applications : liens avec le quotidien

Le but depuis le début est de simuler une fleur. On pourra ajouter d'autres servomoteurs afin d'ajouter des pétales, mais attention aux collisions...

Lieux propices à sa réalisation

Plutôt dans une salle afin qu'on puisse utiliser un ordinateur.

AR
BO

Le capteur qui avait peur de l'obscurité

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