
Cuprins:
2025 Autor: John Day | [email protected]. Modificat ultima dată: 2025-01-23 15:04


Creat de: Haotian Ye
Prezentare generală
Aceasta este o placă de pian cu opt butoane care vă permite să jucați o octavă (Do Re Mi Fa So La Si Do) și cu această octavă puteți încerca să redați câteva melodii care vă plac. Pentru acest proiect există câteva cunoștințe importante pe care trebuie să le cunoașteți înainte de a începe.
În primul rând, trebuie să cunoaștem frecvențele notelor de bază ale unui pian.
Frecvențele sunt enumerate mai jos:
Do - 261Hz
Re - 294Hz
Mi - 329Hz
Fa - 349Hz
Deci - 392Hz
La - 440Hz
Si - 493Hz
Do - 523Hz
În al doilea rând, vă voi arăta cum să construiți circuitul folosind piesele care pot fi cumpărate de la magazinul electronic Lee. În cele din urmă , Voi prezenta și explica codul care trebuie încărcat pe placa Arduino.
Piese de care veți avea nevoie:
Arduino Uno R3 (ID produs: 10997)
Cablu USB A la B M / M (ID produs: 29861)
Rezistor 10K * 8 (ID produs: 91516)
Diferite culori ale comutatorului Tack * 8 (ID produs: 3124, 31242, 31243, 31245, 31246)
Mini difuzor (ID produs: 41680)
Breadboard (ID produs: 106861)
Sârme jumper (ID produs: 21801)
Pasul 1: Pasul 1: Construirea circuitului




Mai întâi, introduceți unul câte unul toate butoanele și mini difuzorul pe panoul de măsurare și potriviți-le pe un rând. Apoi conectați pinii fiecărui buton de comutare la sol. În al doilea rând, conectați rezistențe de 10k între puterea pozitivă și celelalte pini ale fiecărui buton. Și conectați această coloană la pinii 2-9 de pe placa Arduino. De asemenea, conectați pământul la pinul de masă și puterea pozitivă la pinul de 3.3v pe Arduino. În cele din urmă, conectați mini-difuzorul la pinul 10 de pe Arduino.
Pasul 2: Pasul 2: Cod și explicație
Codul de mai jos este ceea ce am scris
const int negru = 2;
const int alb = 3;
const int red = 4;
const int verde = 5;
const int albastru = 6;
const int negru2 = 7;
const int verde2 = 8;
const int red2 = 9;
difuzor const int = 10; // Legați toate butoanele și difuzorul cu butoanele de semnal ale arduino
frecvența int = {262, 294, 330, 349, 392, 440, 493, 523}; // matricea conține toate frecvențele unei octave
configurare nulă () {
// puneți codul de configurare aici, pentru a rula o dată:
pinMode (negru, INPUT);
pinMode (alb, INPUT);
pinMode (roșu, INPUT);
pinMode (verde, INPUT);
pinMode (albastru, INPUT);
pinMode (negru2, INPUT);
pinMode (verde2, INPUT);
pinMode (red2, INPUT);
pinMode (difuzor, OUTPUT);
ton (difuzor, 2000);
Serial.begin (9600);
}
bucla nulă () {
// puneți codul principal aici, pentru a rula în mod repetat:
if (digitalRead (black) == LOW) // când apăsați butonul „DO”
{ton (difuzor, frecvență [0], 50);
întârziere (50);
noTone (difuzor);}
else if (digitalRead (white) == LOW) // când apăsați butonul "RE"
{ton (difuzor, frecvență [1], 50);
întârziere (50);
noTone (difuzor);}
altfel if (digitalRead (roșu) == LOW) // când apăsați comutatorul butonului „MI”
{ton (difuzor, frecvență [2], 50);
întârziere (50);
noTone (difuzor);}
altfel dacă (citire digitală (verde) == LOW) // când apăsați butonul "FA"
{ton (difuzor, frecvență [3], 50);
întârziere (50);
noTone (difuzor);}
else if (digitalRead (blue) == LOW) // când apăsați butonul „SO”
{ton (difuzor, frecvență [4], 50);
întârziere (50);
noTone (difuzor);}
altfel if (digitalRead (black2) == LOW) // când apăsați butonul "LA"
{ton (difuzor, frecvență [5], 50);
întârziere (50);
noTone (difuzor);}
altfel if (digitalRead (green2) == LOW) // când apăsați butonul "SI"
{ton (difuzor, frecvență [6], 50);
întârziere (50);
noTone (difuzor);}
altfel if (digitalRead (red2) == LOW) // când apăsați butonul „DO”
{ton (difuzor, frecvență [7], 50);
întârziere (50);
noTone (difuzor);}
else // cand nu apesi nimic
noTone (difuzor);
}
În primul rând, trebuie să declarăm toate butoanele și butoanele cu buton, ca pinul de la 2 la 10 pe Arduino. Fiecare comutator reprezintă pentru o notă. Apoi, utilizați o matrice pentru a pune toate frecvențele în interior. Apoi, declarația If and else este ceea ce folosesc pentru a anunța Arduino ce buton de apăsare apăs.
În cele din urmă, conectați placa Arduino la computer sau laptop cu cablu USB A la B. Înainte de a încărca codul, trebuie totuși să descărcați software-ul Arduino și să efectuați anumite setări implicite. Selectați Instrumente -> Placă -> Arduino / Genuino Uno; Apoi, trebuie să selectăm portul de comunicație conectat la placa Arduino. Selectați Instrumente -> Port, apoi oricare nume de port este etichetat „(Arduino / Genuino Uno)”. Apoi, puteți încărca codul pe placa Arduino.
Recomandat:
Arduino Control Viteza și direcția motorului DC folosind un potențiometru, afișaj OLED și butoane: 6 pași

Arduino Control Viteza și direcția motorului DC utilizând un potențiometru, afișaj OLED și butoane: În acest tutorial vom învăța cum să folosiți un driver L298N DC MOTOR CONTROL și un potențiometru pentru a controla viteza și direcția unui motor DC cu două butoane și afișarea valorii potențiometrului pe ecranul OLED. Urmăriți un videoclip demonstrativ
Controlul vitezei și direcției motorului Arduino DC folosind un potențiometru și butoane: 6 pași

Arduino Control Viteza și direcția motorului DC folosind un potențiometru și butoane: În acest tutorial vom învăța cum să folosiți un driver L298N DC MOTOR CONTROL și un potențiometru pentru a controla viteza și direcția unui motor DC cu ajutorul a două butoane
Arduino - Piezo Pian cu trei butoane: 4 pași

Arduino - Piezo Pian cu trei butoane: Pianul cu trei butoane este un proiect pentru începători cu o anumită experiență în utilizarea Arduino. Am fost involuntar măturat în încercarea de a crea acest lucru în timp ce mă jucam cu buzzer-ul piezo pentru prima dată. A fost atât de tare! În încercarea de a-mi da seama de diverse
Panoul de butoane USB Arduino: 5 pași (cu imagini)

Panoul de butoane USB Arduino: Arduino Leonardo este o placă foarte puternică, cu unele ușoare diferențe față de foarte popularul Arduino UNO. ATMega 32U4 este principalul procesor de pe Leonardo. Puteți utiliza acest microcontroler pentru comunicații seriale prin USB. Arduino Leo
Conectarea mai multor butoane la un singur pin pe Arduino: 4 pași

Conectarea mai multor butoane la un singur pin pe Arduino: Bună tuturor, când proiectele dvs. Arduino au depășit LED-urile intermitente, este posibil să aveți nevoie de niște pini suplimentari. Vă voi arăta un truc pe care îl puteți folosi acolo unde puteți avea mai multe butoane, toate conectate la același pin analogic