Après avoir réalisé une fois un amplificateur a base de LM386 sur breadboard (voir articles Arduino), je suis tombé sur un module tout fait… A quoi bon réinventer la roue …
En plus de ne plus avoir a recréer le montage, il y a une grosse réduction du bruit du au fils sur la platine de prototypage, il est plus compact et les connectiques sont plus simples (borniers et pins).
Ce dont vous aurez besoin
- Un module LM386 - Disponible ici
- Un Arduino – Disponible ici
- Quelques câbles de prototypage – Disponibles ici
- Une résistance de 10K – DISPONIBLE ICI
Branchement
Au niveau du branchement c’est relativement simple.
Coté IN il y a 4 broches
- VCC -> 5V à 12V
- GND -> GND
- IN -> Le positif de votre entrée audio
- GND -> Le négatif de votre entrée audio
Coté OUT deux broches:
- IN -> Le positif de votre haut-parleur.
- GND -> Le négatif de votre haut-parleur.
Utilisation avec l’Arduino
Pour une utilisation avec l’Arduino, c’est exactement la même chose que l’article précédent.
Connexion à l’Arduino
- VCC -> 5V de l’arduino
- GND -> GND de l’arduino
- IN -> pin 9 de l’arduino
- GND -> de l’arduino
Coté OUT deux broches:
- IN -> Le positif de votre haut-parleur.
- GND -> Le négatif de votre haut-parleur.
Code
Pareil que le précédent article, juste pour le test:
/* Play Melody
* -----------
*
* Program to play melodies stored in an array, it requires to know
* about timing issues and about how to play tones.
*
* The calculation of the tones is made following the mathematical
* operation:
*
* timeHigh = 1/(2 * toneFrequency) = period / 2
*
* where the different tones are described as in the table:
*
* note frequency period PW (timeHigh)
* c 261 Hz 3830 1915
* d 294 Hz 3400 1700
* e 329 Hz 3038 1519
* f 349 Hz 2864 1432
* g 392 Hz 2550 1275
* a 440 Hz 2272 1136
* b 493 Hz 2028 1014
* C 523 Hz 1912 956
*
* (cleft) 2005 D. Cuartielles for K3
*/
int ledPin = 13;
int speakerOut = 9;
byte names[] = {'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C'};
int tones[] = {1915, 1700, 1519, 1432, 1275, 1136, 1014, 956};
byte melody[] = "2d2a1f2c2d2a2d2c2f2d2a2c2d2a1f2c2d2a2a2g2p8p8p8p";
// count length: 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
// 10 20 30
int count = 0;
int count2 = 0;
int count3 = 0;
int MAX_COUNT = 24;
int statePin = LOW;
void setup() {
pinMode(ledPin, OUTPUT);
}
void loop() {
analogWrite(speakerOut, 0);
for (count = 0; count < MAX_COUNT; count++) {
statePin = !statePin;
digitalWrite(ledPin, statePin);
for (count3 = 0; count3 <= (melody[count*2] - 48) * 30; count3++) {
for (count2=0;count2<8;count2++) {
if (names[count2] == melody[count*2 + 1]) {
analogWrite(speakerOut,500);
delayMicroseconds(tones[count2]);
analogWrite(speakerOut, 0);
delayMicroseconds(tones[count2]);
}
if (melody[count*2 + 1] == 'p') {
// make a pause of a certain size
analogWrite(speakerOut, 0);
delayMicroseconds(500);
}
}
}
}
}
0 commentaires