Turinys:
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-13 06:57
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
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ę.