Bluetooth tone
De FunLab Documentation
Sommaire
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.