
Am avut nevoie de un amplificator de microfon pentru un alt proiect si mi s-a parut interesant sa fac un mic proiectel si cu Arduino :)
Asa am ajuns sa fac o comanda acustica (batut din palme sau fluierat sau, daca modifici codul .. poti face sa raspunda la 2 batai consecutive sau orice alt "cod").
Pasul 1: Schema electronica

Schema este de fapt un amplificator pentru microfon realizat cu circuitul integrat LM 386 si cateva componente externe.
Schema a fost luata de aici: http://wiring.org.co/learning/basics/microphone.html
Pasul 2: Conectarea cu Arduino
Conectarea se realizeaza prin 3 fire (+5V, masa (GND) si un pin analog).
Pasul 3: Codul
// Setari // Pragul de sunet int mic_threshold = 500; // Pin-ul (analog) pentru intrarea amplificatorului nostru int pin_mic = 0; // Pin-ul (digital) pentru LED int pin_led = 13; // Cate cicluri de "liniste" sunt necesare pentru a schimba starea sistemului? int ticks_needed = 100; // Alte variabile int mic_value; int is_on = false; int ticks = ticks_needed; void setup() { Serial.begin(9600); // Seteaza LED-ul pe oprit pinMode(pin_led, OUTPUT); digitalWrite(pin_led, LOW); } void loop() { // Valoarea audio mic_value = analogRead(pin_mic); Serial.println(mic_value, DEC); // Este valoarea citita suficienta? + au trecut X perioade de liniste? if (mic_value >= mic_threshold && ticks > ticks_needed) { // Este stins LED-ul? if (is_on == 0) { // Aprinde LED is_on = 1; digitalWrite(pin_led, HIGH); } else { // Stinge LED is_on = 0; digitalWrite(pin_led, LOW); } ticks = 1; } else { if (ticks > ticks_needed) { ticks = ticks_needed + 1; } else { ticks++; } } delay(10); }
Pasul 4: Testare :)