Faites du bruit !! (Le buzzer et un capteur)

Créations

jicehel

il y a 5 ans

Un petit tuto rapide pour prendre en main 2 nouveaux composants sympas pour des montages:

Un capteur de mouvement et un buzzer.


Principe de fonctionnement

Le capteur PIR (Passive Infra Red) ( HCSR501 dans notre exemple) détecte une source d'infra-rouge placée dans son champ de "vision" et détecte ses mouvements.  Il permet de détecter une présence humaine ou animale dans un périmètre et déclencher une réponse.

(Vous trouverez plus de détails sur le capteur PIDR a différents endroits. Ici par exemple: http://tiptopboards.com/124-module-d%C3%A9tecteur-de-mouvements-infra-rouge-hcsr501-.html)


Câblage à réaliser

  • pin1 +V --> Alim VBAT de la META (fil violet sur le schéma vue de face ci dessous)
  • pin2 OUT --> Signal pin 2 digital Arduino (le fil blanc ci dessous)
  • pin3 GND --> GND (Le fil bleu sur la photo i-dessous)



Nous relions aussi une LED ainsi: L'anode (le +, la patte la plus longue de la LED) va sur la pin "5"

La cathode de la led est branchée dans une colonne libre. Dans cette colonne, on branche une résistance qui l'on relie à une autre colonne que l'on relie ensuite  à GND. Enfin, on relie le + du buzzer à la PIN 6 de la META et le - sur la partie 'GND".

Enfin, on teste tout ça avec ce programme

#include <Gamebuino-Meta.h>

const int LED = 5;      // La broche 5 se nomme maintenant LED
const int Capteur = 2;  // La broche 2 se nomme maintenant Capteur (C'est notre capteur de présence
const int HP = 6;       // La broche 6 se nomme maintenant HP en fait cest le buzzer mais bon HP c'est plus court

int EtatCapteur;

void setup() {
  gb.begin();
  //contenu de l'initialisation
  pinMode(LED, OUTPUT);       // On demande à mettre la broche 2 en sortie
  pinMode(Capteur, INPUT);    // Capteur est une valeur à récupérer => entrée
  pinMode(HP, OUTPUT);        // On demande à mettre la broche "HP" en sortie pour pouvoir jouer un son
}

void JoueSon (int duree, int frequence) {
  duree*=1000;
  int period = (1.0 / frequence) * 1000000;
  long temps_passe = 0;

  while (temps_passe < duree) {
    digitalWrite(HP, HIGH);
    delayMicroseconds(period / 2 );
    digitalWrite(HP, LOW);
    delayMicroseconds(period / 2 );
    temps_passe+=period;
  }
}

void loop() //fonction principale, elle se répète (s’exécute) à l'infini
{
  //contenu du programme
  EtatCapteur = digitalRead(Capteur);
  if (EtatCapteur == HIGH)  {
    digitalWrite(LED, HIGH); // Si on détecte un mouvement, on allume la LED
    JoueSon(300,160);
    delay(150);
  }
  else  {
    digitalWrite(LED, LOW); // Snon, on éteind la LED
    JoueSon(0,0);            // On ne joue pas de son
    delay(150);
  }
}


Si tout va bien, quand vous bougez prêt du capteur, la LED s'allume et vous avez une série de petits sons générés par le buzzer... 

Marre que votre sœur vienne fouiller dans vos tiroirs ? Piégez la en cachant votre montage dedans et attendez qu'elle sévisse... bon ce n'est pas une sirène non plus, vous n’embêterez pas les voisins. Jouez avec les paramètres des sons: durée et fréquence pour écouter les sons générés.

A bientôt.


Voir la création