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

Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/includes/parser/Parser.php on line 2338
[ Wikidébrouillard ] Perroquet buzzer

Perroquet buzzer

De Wikidebrouillard.

(Matériel)
(La réalisation)
Ligne 23 : Ligne 23 :
3/Copier le code
3/Copier le code
-
       code
+
       /////////// Déclaration des variables
 +
// ces variables sont constantes
 +
const int CAPTEUR = A0;// le piézo est connecté à la broche Analogue 0
 +
const int LED = 13;//la LED est connecté à la broche 13
 +
const int ENCEINTE = 12;//l'enceinte est connecté à la broche 12
 +
const int SEUIL = 1;//valeur de seuil
 +
const int ANTIREBOND = 100;//temps de fonctionnement de l'antirebond
 +
const int FIN = 2000;//temps d'attente après le dernier coup
 +
const int NOMBREMARQUEURS = 50;//nombre de coups maximum
 +
 
 +
// ces variables changent
 +
int lectureCapteur = 0;// variable pour stocker la valeur du capteur
 +
int ledEtat = LOW;//etat de la LED, LOW:eteint, HIGH:allumé
 +
int mode = 1;//ecriture ou lecture
 +
int posTableau = 0;//
 +
long temps = 0;
 +
long marqueurTemps[NOMBREMARQUEURS];
 +
int i = 0;
 +
 
 +
boolean DEBUG = false;
 +
boolean BOUCLE = false;
 +
 
 +
void setup() {
 +
  pinMode(LED, OUTPUT);
 +
  Serial.begin(9600);
 +
}
 +
 
 +
/////////// Boucle principale
 +
void loop() {
 +
  switch(mode) {
 +
  case 1: //mode enregistrement
 +
    digitalWrite(LED, HIGH);
 +
   
 +
    if(DEBUG == true) Serial.println("mode 1");
 +
    // lecture de la valeur du piézo
 +
    lectureCapteur = analogRead(CAPTEUR);
 +
   
 +
    // si la valeur captée est supérieure au seuil choisi et que le temps écoulé
 +
    //depuis le dernier impacte est supérieur au temps de l'ANTI-REBOND,
 +
    //alors  on rentre dans la condition
 +
    if (lectureCapteur >= SEUIL && millis() - temps >= ANTIREBOND) {
 +
      marqueurTemps[posTableau] = millis() - temps;
 +
      posTableau++;
 +
      temps = millis(); //mise à jour du temps courant
 +
    }
 +
    if (millis() - temps >= FIN && posTableau >=1) {
 +
      posTableau = 0;
 +
      mode = 2;
 +
      if (DEBUG == true) Serial.println("mode 2");
 +
      temps = millis();
 +
    }
 +
    break;
 +
 
 +
  case 2:
 +
    digitalWrite(LED, LOW);
 +
    if (lectureCapteur >= 0 ) {
 +
      for (i=1; i<NOMBREMARQUEURS; i++) {
 +
        tone(ENCEINTE, 1800, 100);
 +
        delay(marqueurTemps[i]);
 +
        marqueurTemps[i]=0;
 +
      }
 +
      posTableau = 0;
 +
     
 +
      mode = 1;
 +
      if (DEBUG == true) Serial.println("mode 2 stop");
 +
      temps = millis();
 +
      break;
 +
    }
 +
    break;
 +
  }
 +
}
 +
 
4/Relier l'arduino au pc
4/Relier l'arduino au pc

Version du 15 janvier 2013 à 15:51

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


Sommaire

Présentation de l'expérience

Nous allons réaliser un système qui permet d'enregistrer et répéter des séries d'impacts reçu par un objet tel un perroquet qui répète ce qu'il entend.

Matériel

  • 1 Arduino
  • 2 piezo
  • 1 résistance
  • 1 LED
  • 1 plaque LABTECH
  • des fils électrique

L'expérience

La réalisation

1/Réaliser le circuit

     

2/Lancer le logiciel arduino

3/Copier le code

     /////////// Déclaration des variables

// ces variables sont constantes const int CAPTEUR = A0;// le piézo est connecté à la broche Analogue 0 const int LED = 13;//la LED est connecté à la broche 13 const int ENCEINTE = 12;//l'enceinte est connecté à la broche 12 const int SEUIL = 1;//valeur de seuil const int ANTIREBOND = 100;//temps de fonctionnement de l'antirebond const int FIN = 2000;//temps d'attente après le dernier coup const int NOMBREMARQUEURS = 50;//nombre de coups maximum

// ces variables changent int lectureCapteur = 0;// variable pour stocker la valeur du capteur int ledEtat = LOW;//etat de la LED, LOW:eteint, HIGH:allumé int mode = 1;//ecriture ou lecture int posTableau = 0;// long temps = 0; long marqueurTemps[NOMBREMARQUEURS]; int i = 0;

boolean DEBUG = false; boolean BOUCLE = false;

void setup() {

 pinMode(LED, OUTPUT);
 Serial.begin(9600);

}

/////////// Boucle principale void loop() {

 switch(mode) {
 case 1: //mode enregistrement
   digitalWrite(LED, HIGH);
   
   if(DEBUG == true) Serial.println("mode 1");
   // lecture de la valeur du piézo
   lectureCapteur = analogRead(CAPTEUR);
   
   // si la valeur captée est supérieure au seuil choisi et que le temps écoulé 
   //depuis le dernier impacte est supérieur au temps de l'ANTI-REBOND,
   //alors  on rentre dans la condition
   if (lectureCapteur >= SEUIL && millis() - temps >= ANTIREBOND) {
     marqueurTemps[posTableau] = millis() - temps;
     posTableau++;
     temps = millis(); //mise à jour du temps courant
   }
   if (millis() - temps >= FIN && posTableau >=1) {
     posTableau = 0;
     mode = 2;
     if (DEBUG == true) Serial.println("mode 2");
     temps = millis();
   }
   break;
 case 2:
   digitalWrite(LED, LOW);
   if (lectureCapteur >= 0 ) {
     for (i=1; i<NOMBREMARQUEURS; i++) {
       tone(ENCEINTE, 1800, 100);
       delay(marqueurTemps[i]);
       marqueurTemps[i]=0;
     }
     posTableau = 0;
     
     mode = 1;
     if (DEBUG == true) Serial.println("mode 2 stop");
     temps = millis();
     break;
   }
   break;
 }

}


4/Relier l'arduino au pc

5/Téléverser le programme

La manipulation

1/Réaliser le circuit

2/Téléverser le programme

3/Attendre que la LED soit allumée

4/Produire une série de sons

5/Attendre que la LED soit éteinte

6/Écouter la série de sons

7/Attendre que la LED soit allumée

8/Recommencer

Que constatons-nous ?

Après une série de sons entendu par l'objet, nous attendons que la LED s’éteigne puis nous entendons la série de sons entendu.Puis la LED se rallume nous signalant la possibilité de réitérer l’expérience.

Explications

De manière simple

Le programme enregistre la série de sons reçu puis après un temps d'attente sans bruit, il envoi un signal à l'enceinte qui le restituera.

La LED est allumé tant que l'on peut enregistrer et est éteinte lorsqu'elle lit la série de sons.

Après chaque son reçu il faut un temps avant de pouvoir recevoir un autre son, on l'appelle l'antirebond. Il permet de ne pas enregistrer deux sons lorsqu'un seul est produit.

Pour que le son soit enregistré il faut qu'il dépasse le seuil de détection car sinon il y aurait trop de son détecté.

Allons plus loin dans l'explication

Une LED est un composant qui s'illumine quand un courant la traverse. La propriétés de la LED est qu'elle ne s'illumine que si le courant la traverse dans un seul sens, de l'ANODE (la patte la plus longue) à la CATHODE (la patte la plus courte).

Un piezo est constitué d'une lamelle qui, lorsqu'elle est déformée, émet une impulsion électrique. A l'inverse lorsqu'elle reçoit une impulsion, la lamelle vibre et émet un son.

Liens avec d'autres expériences

Expériences sur Wikidébrouillard

Indiquer ici les expériences de Wikidébrouillard.

Autres expériences

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

Applications : liens avec le quotidien

C'est de la culture, ça aide à comprendre le monde !! N'hésitez pas à lancer la discussion de votre fiche (après l'avoir sauvegarder !) afin de trouver de l'aide pour la compléter

Lieux propices à sa réalisation

Tout endroit en dehors d'un lieu humide ou trop bruyant.

Catégories

Arduino

Portail des ExplorateursWikidébrouillardLéon DitFLOGPhoto mystèreJ'ai FaitPortraits
AR
FI

Perroquet buzzer

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