Hangok kiadása Arduinoval


Ebben a projektben egy buzzer és egy LDR segítségével hangokat csalunk ki Arduino boardunkból. Először zenei skálát játszunk le az Arduinonkal, majd kiegészítjük egy
fotoellenállással. Ezzel az összeállítással csalogatunk ki különleges hangokat.

Szükséges alkatrészek:

  • Arduino board

  • Usb kábel

  • Próbapanel

  • Összekötő vezetékek

  • fotoellenállás

  • Piezo Buzzer

  • 1kohm-os ellenállás

Az áramkör:

A kód:

/*
Adafruit Arduino - Lesson 10. Simple Sounds
*/
int speakerPin = 12; //változó hozzárendelése 12 pinhez

int numTones = 10; // Tones változó 10 értéket fog tárolni
int tones[] = {261, 277, 294, 311, 330, 349, 370, 392, 415, 440};//értékadás a változónak
// mid C C# D D# E F F# G G# A

void setup()
{
for (int i = 0; i < numTones; i++) //amig i kisebb mint Tones változó addig növelje értékét eggyel
{
tone(speakerPin, tones[i]); //i-s rezgésszámú hang kiadása
delay(500);
}
noTone(speakerPin); //hang kikapcsolása
}

void loop()
{
}

Egy skálát játszik végig a sketch, tones[1]=261 Hz , tones[2]=277 Hz és így tovább...
A tone parancs első paramétere a kimeneti láb, a második a kiadott hang frekvenciája.
A noTone paranccsal kapcsoljuk ki a hangot. A ciklus csak egyszer fut le, mert a setup ciklusba
raktuk. A következő lejátszáshoz reset gombot kell nyomnunk.

Nézzük a másik projektünket: itt egy LDR ellenállás fényérzékelésének megfelelően változik
a kiadott hang frekvenciája.
A kapcsolás:

A kód:

/*
Adafruit Arduino - Lesson 10. Pseudo Thermin
*/
int speakerPin = 12;
int photocellPin = 0;

void setup()
{
}

void loop()
{
int reading = analogRead(photocellPin);
int pitch = 200 + reading / 4;
tone(speakerPin, pitch);
}


Az LDR digitális értéke 0-700 között lesz, ezt osztjuk le 4-el és hozzáadjuk a 200 Hz-es alapfrekvenciához. A kezünket elhúzogatva az LDR előtt különös hangokat kelthetünk.