Bluetooth tone

De FunLab Documentation
Aller à : navigation, rechercher

Jouer des notes sur un arduino via Bluetooth

Logiciels et matériel nécessaire

 1 smartphone Android
 1 arduino Uno
 1 module Bluetooth
 Câbles : 6 + une nappe dans mon cas pour la connexion avec le module BT
 1 PC
 1 Breadboard
 1 buzzer
 le logiciel "Bluetooth Terminal"


Pour les connexions : brancher le + du buzzer au pin 4 de l'arduino, avec une résistance entre les deux. Relier les pins Rx et Tx du module BT à l'arduino, le 5v et le Gnd du module à ceux de l'arduino.


le code

Téléverser le code Arduino :

bt_tone_term.ino
char incomingByte;  // incoming data

void setup() {
  Serial.println("DEBUT");
  Serial.begin(9600); // initialization
  pinMode(4, OUTPUT); // set a pin for buzzer output
  buzz(4, 1014, 500);

}


void buzz(int targetPin, long frequency, long length) {
  long delayValue = 1000000/frequency/2; // Calcule le delay entre deux transitions (cycle?)
  //// 1 seconde en microsecondes, divisé par la frequence, puis divisé par deux
  //// car il y a deux phase par cycle
  long numCycles = frequency * length/ 1000; // calculate the number of cycles for proper timing
  //// multiply frequency, which is really cycles per second, by the number of seconds to
  //// get the total number of cycles to produce
 for (long i=0; i < numCycles; i++){ // for the calculated length of time...
    digitalWrite(targetPin,HIGH); // write the buzzer pin high to push out the diaphram
    delayMicroseconds(delayValue); // wait for the calculated delay value
    digitalWrite(targetPin,LOW); // write the buzzer pin low to pull back the diaphram
    delayMicroseconds(delayValue); // wait againf or the calculated delay value
  }
}

void loop() {
  if (Serial.available() > 0) {  // Si on recoit quelquechose sur le port série
  incomingByte = Serial.read(); // on le lit
  Serial.println("incomingByte");
  Serial.println(incomingByte);
    
    if(incomingByte == 'c') {
      Serial.println("C5 / Do5");  // affiche la note joué sur le port série
      buzz(4, 523, 500); // fait vibrer le buzzer sur la pin 4 à 523Hz pendant une 1/2 seconde
    }
    else if(incomingByte == 'd') {
       buzz(4, 587, 500); // fait vibrer le buzzer sur la pin 4 à 587Hz pendant une 1/2 seconde
       Serial.println("Ré5");// affiche la note joué sur le port série
    }
    else if(incomingByte == 'e') {
       buzz(4, 659, 500); // fait vibrer le buzzer sur la pin 4 à 659Hz pendant une 1/2 seconde
       Serial.println("Mi5");// affiche la note joué sur le port série
    }
    else if(incomingByte == 'f') {
       buzz(4, 698, 500); // fait vibrer le buzzer sur la pin 4 à 698Hz pendant une 1/2 seconde
       Serial.println("Fa5");
    }
    else if(incomingByte == 'g') {
       buzz(4, 784, 500); // fait vibrer le buzzer sur la pin 4 à 784Hz pendant une 1/2 seconde
       Serial.println("Sol5");
    }
    else if(incomingByte == 'a') {
       buzz(4, 880, 500); // fait vibrer le buzzer sur la pin 4 à 880Hz pendant une 1/2 seconde
       Serial.println("La5");
    }
    else if(incomingByte == 'b') {
       buzz(4, 988, 500); // fait vibrer le buzzer sur la pin 4 à 988Hz pendant une 1/2 seconde
       Serial.println("Si5");
    }
  }
}

le logiciel du smartphone

Installer Bluetooth Terminal sur le smartphone (installer depuis Google Play).

utilisation

Pour jouer un Do : taper c puis entrée Pour un Ré : d et entrée, etc.