„Arduino“fortepijonas su mygtuko jungikliais: 3 žingsniai
„Arduino“fortepijonas su mygtuko jungikliais: 3 žingsniai
Anonim
„Arduino“fortepijonas su mygtukais
„Arduino“fortepijonas su mygtukais
„Arduino“fortepijonas su mygtukais
„Arduino“fortepijonas su mygtukais

Sukūrė: Haotian Ye

Apžvalga

Tai fortepijono lenta su aštuoniais mygtukų jungikliais, leidžianti groti vieną oktavą („Do Re Mi Fa So La Si Do“), o su šia viena oktava galite pabandyti groti jums patinkančias dainas. Prieš pradėdami šį projektą, turite žinoti keletą svarbių žinių.

Pirma, turime žinoti pagrindinių fortepijono natų dažnius.

Dažniai išvardyti žemiau:

Daryti - 261 Hz

Re - 294 Hz

Mi - 329 Hz

Fa - 349 Hz

Taigi - 392 Hz

La - 440 Hz

Si - 493 Hz

Daryti - 523 Hz

Antra, aš jums parodysiu, kaip sukurti grandinę naudojant dalis, kurias galima nusipirkti iš Lee elektroninės parduotuvės. Galiausiai will Pateiksiu ir paaiškinsiu kodą, kurį reikia įkelti į „Arduino“lentą.

Jums reikalingos dalys:

„Arduino Uno R3“(produkto ID: 10997)

USB kabelis nuo A iki B (produkto ID: 29861)

10K rezistorius * 8 (produkto ID: 91516)

Skirtingos tvirtinimo jungiklio spalvos * 8 (produkto ID: 3124, 31242, 31243, 31245, 31246)

Mini garsiakalbis (produkto ID: 41680)

Duonos lenta (produkto ID: 106861)

Trumpieji laidai (produkto ID: 21801)

1 žingsnis: 1 žingsnis: grandinės kūrimas

1 žingsnis: sukurkite grandinę
1 žingsnis: sukurkite grandinę
1 žingsnis: sukurkite grandinę
1 žingsnis: sukurkite grandinę
1 žingsnis: sukurkite grandinę
1 žingsnis: sukurkite grandinę
1 žingsnis: sukurkite grandinę
1 žingsnis: sukurkite grandinę

Pirmiausia po vieną įdėkite visus mygtukinius jungiklius ir mini garsiakalbį į duonos lentą ir suderinkite juos vienoje eilutėje. Tada prijunkite kiekvieno mygtuko jungiklio kaiščius prie žemės. Antra, prijunkite 10 k rezistorius tarp teigiamos galios ir kitų kiekvieno mygtuko jungiklio kaiščių. Ir prijunkite šį stulpelį prie 2–9 kaiščių „Arduino“lentoje. Taip pat prijunkite žemę prie įžeminimo kaiščio ir teigiamą galią prie 3,3 V kaiščio „Arduino“. Galiausiai prijunkite mini garsiakalbį prie „Arduino“kaiščio 10.

2 veiksmas: 2 žingsnis: kodas ir paaiškinimas

Žemiau esantis kodas yra tai, ką aš parašiau

const int juoda = 2;

const int balta = 3;

const int raudona = 4;

const int žalia = 5;

const int mėlyna = 6;

const int juoda2 = 7;

const int žalia2 = 8;

const int raudona2 = 9;

const int garsiakalbis = 10; // Susiekite visus mygtukinius jungiklius ir garsiakalbį su arduino signalo kaiščiais

int dažnis = {262, 294, 330, 349, 392, 440, 493, 523}; // masyve yra visi vienos oktavos dažniai

void setup () {

// įdėkite čia savo sąrankos kodą, kad paleistumėte vieną kartą:

pinMode (juodas, INPUT);

pinMode (balta, INPUT);

pinMode (raudona, INPUT);

pinMode (žalia, INPUT);

pinMode (mėlyna, INPUT);

pinMode (juodas2, Įvestis);

pinMode (žalia2, Įvestis);

pinMode (raudona2, Įvestis);

pinMode (garsiakalbis, OUTPUT);

tonas (garsiakalbis, 2000);

Serial.begin (9600);

}

void loop () {

// Įdėkite savo pagrindinį kodą čia, kad paleistumėte pakartotinai:

if (digitalRead (juoda) == LOW) // kai paspausite mygtuko „DO“mygtuką

{tonas (garsiakalbis, dažnis [0], 50);

vėlavimas (50);

noTone (garsiakalbis);}

kitaip if (digitalRead (balta) == LOW) // kai paspausite mygtuko „RE“mygtuką

{tonas (garsiakalbis, dažnis [1], 50);

vėlavimas (50);

noTone (garsiakalbis);}

kitaip if (digitalRead (raudona) == LOW) // kai paspausite mygtuko „MI“jungiklį

{tonas (garsiakalbis, dažnis [2], 50);

vėlavimas (50);

noTone (garsiakalbis);}

kitaip if (digitalRead (žalia) == LOW) // kai paspausite „FA“mygtuko jungiklį

{tonas (garsiakalbis, dažnis [3], 50);

vėlavimas (50);

noTone (garsiakalbis);}

kitaip if (digitalRead (mėlyna) == LOW) // kai paspausite „SO“mygtuko jungiklį

{tonas (garsiakalbis, dažnis [4], 50);

vėlavimas (50);

noTone (garsiakalbis);}

kitaip if (digitalRead (black2) == LOW) // kai paspausite „LA“mygtuko jungiklį

{tonas (garsiakalbis, dažnis [5], 50);

vėlavimas (50);

noTone (garsiakalbis);}

kitaip if (digitalRead (green2) == LOW) // kai paspausite „SI“mygtukinį jungiklį

{tonas (garsiakalbis, dažnis [6], 50);

vėlavimas (50);

noTone (garsiakalbis);}

kitaip jei (digitalRead (red2) == LOW) // kai paspausite mygtuko „DO“jungiklį

{tonas (garsiakalbis, dažnis [7], 50);

vėlavimas (50);

noTone (garsiakalbis);}

else // kai nieko nespaudi

noTone (garsiakalbis);

}

Pirma, mes turime paskelbti visus mygtuko jungiklius ir garsiakalbį kaip kaištį nuo 2 iki 10 „Arduino“. Kiekvienas jungiklis reiškia vieną užrašą. Tada naudokite vieną masyvą, kad įvestumėte visus dažnius. Toliau sakinys „If and else“yra tai, ką aš naudoju, kad „Arduino“žinotų, kurį mygtuko jungiklį paspaudžiu.

Galiausiai prijunkite „Arduino“plokštę prie kompiuterio ar nešiojamojo kompiuterio naudodami USB A – B kabelį. Prieš įkeldami kodą, vis tiek turite atsisiųsti „Arduino“programinę įrangą ir atlikti numatytuosius nustatymus. Pasirinkite Įrankiai -> Lenta -> Arduino/Genuino Uno; Tada turime pasirinkti ryšio prievadą, prijungtą prie „Arduino“plokštės. Pasirinkite Įrankiai -> Prievadas, tada kuris prievado pavadinimas pažymėtas „(Arduino/Genuino Uno)“. Tada galite įkelti kodą į „Arduino“plokštę.