Kazalo:
2025 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2025-01-13 06:58
Uvod
Pozdravljene dame in gospodje, dobrodošli na mojem prvem pouku! Danes vas bom naučil, kako ustvariti klavir z glavnimi sestavnimi deli, ki so modul tipkovnice in piezo zvočnikom, in imeti možnost predvajanja DO-RE-MI itd.
Najpogosteje namenjen modul tipkovnice je tipkovnica v kombinaciji z arduino RFID za ustvarjanje varne škatle za dragocene predmete. V tem primeru sem zamenjal tipkovnico, namesto da bi zaščitil nekaj, za kar se odločim, da bom govoril preprosto veselje in glasbo.
Idejni koncept
Idejni koncept za to stvaritev se je razvil iz preprostega veselega spomina med igranjem na ksilofon, ko sem bil mlajši v razredu glasbe. Količina veselja in navdušenja, ki je tekla po mojem telesu, je bila na vrhuncu, vsak otrok je bil zlahka zadovoljen in moje zadovoljstvo je bilo igrati na ksilofon.
Raziskave
Ko zasveti žarnica vaše ideje zgoraj, je treba opraviti malo raziskave. Ko sem nekaj časa brskala po spletu, sem lahko naletela na svojo idejo, na katero sem najprej pomislila! Modul tipkovnice je postal klavir, nekdo je tukaj ustvaril isti projektni video. Če razmišljam vnaprej, sem moral dodati ločeno komponento, ki bi projekt še izboljšala, vendar naredila bolj privlačen in ga lahko imenujem svoj.
Korak: Potrebni materiali
Seznam materialov
- Piezo Buzzer 1x ▶
- Modul tipkovnice 4x4 1x ▶
- Arduino Uno 1x ▶
- Kabel USB 2.0 A/B 1x ▶
- Modul senzorja zvoka 1x ▶
- RGB LED 1x ▶
- 330 ohmski upor 3x ▶
- Moški in ženski mostiček 8x ▶
- Moški moški mostiček 4x ▶
- 3-polni moški ženski mostični kabel 1x ▶
Seznam materialov je v redu s slikami zgoraj.
2. korak: Gradite čas
Modul tipkovnice 4x4 in zvočni signal Piezo
Teorija
Ker modul tipkovnice 4x4 in piezo brenčalo vsebujeta toliko posameznih vhodov za pin, se bom odločil, da uporabljene komponente razdelim na dva para. Osredotočanje na tipkovnico, ki se običajno uporablja kot vnos. Modul matrične tipkovnice SunFounder 4*4 je matrična nekodirana tipkovnica, sestavljena iz 16 paralelnih tipk. X4, stolpci.
Namen
Namen teh komponent za celoten projekt je omogočiti uporabniku, da pritisne gumb, ki je nastavljen na poseben zvok, ki ga ustvari piezo brenčalec skozi frekvenco v hercih.
Pin matričnega modula - Arduino Pin
- 4 - 2
- 3 - 3
- 2 - 4
- 1 - 5
- 5 - 6
- 6 - 7
- 7 - 8
- 8 - 13
Piezo Buzzer - Arduino Pin
Črna - GND
Rdeča - moč
Moja najtežja naloga pri tej gradnji je ugotoviti, kje je vsaka žica priključena. Zgoraj vam nudim hiter in enostaven način prehajanja do lokacij žic, če sledite od zgoraj navzdol, nasvet vzame vaš čas in se prepričajte, da je vsak zatič pravilno vstavljen v pravo režo.
*Nasvet je, da sledite, kje se vsaka žica nahaja od enega konca do drugega.
Vse skice Tinkercada za posamezne komponente žic so barvno kodirane, zato jih pozorno spremljajte
3. korak: Modul senzorja zvoka in LED RGB
Modul senzorja zvoka in LED RGB
Teorija
Modul senzorja zvoka omogoča zaznavanje, ko je zvok presegel nastavljeno vrednost, ki jo izberete. Zvok se zazna prek mikrofona in se napaja v op -amp LM393. Ko raven zvoka preseže nastavljeno vrednost, zasveti LED na modulu in izhod.
Namen
Namen teh komponent celotnega projekta je pridobiti odčitek zvoka/glasnosti modula senzorja zvoka in s tem branjem LED RGB aktivira pravilno barvo, ki se nanaša na zvok.
Modul senzorja zvoka - Arduino pin (uporabite 3 -polno žico)
- Izhod - A0 analogni pin
- GND - katera koli odprta reža za pin GND
- VCC - 3V
RGB skupna anodna (+) LED - Arduino Pin
- Rdeča - 9
- Napajanje - 5V
- Zelena - 10
- Modra - 11
Upoštevajte, da vsako žico povežete skozi upor 330 ohmov. Za referenco uporabite zgornjo sliko.
Moja najtežja naloga pri tej gradnji je ugotoviti, kje je vsaka žica priključena. Zgoraj vam nudim hiter in enostaven način do poti do lokacij žic, če sledite od zgoraj navzdol, namig je, da si vzamete čas in se prepričate, da je vsak zatič pravilno vstavljen v pravo režo, da preprečite prihodnje odpravljanje napak.
*Nasvet je, da sledite, kje je vsaka žica tako ali drugače vstavljena
Vse skice Tinkercada za posamezne komponente žic so barvno kodirane, zato sledite
4. korak: Koda
Koda
Ta koda omogoča, da vse komponente delujejo skupaj z uporabo na novo definirane funkcije, ki vsebuje vse številne kontrolnike, eno samo komponento, ki ima veliko spremenljivih spremenljivk. Te komponente so bile pod vodstvom RGB in z uporabo barve rgb za spreminjanje barve, medtem ko je vklopljena, ter piezo brenčalec in zvok, ki bi ga oddajal glede na pritisk gumba.
V tej kodi mora biti knjižnica tipkovnice
Povezava tukaj:
Ko naložite, dodajte novo knjižnico v arduino, nato vstavite eno vrstico kode, ki je potrebna za njeno aktiviranje.
Težave, ki sem jih imel med kodo, so bile, kje umestiti na novo definirane funkcije, saj sem s poskusi in napakami ugotovil, da mora biti v nastavitvi in ne v zanki.
Koda
#include // Knjižnica tipkovnice
int greenPin = 11; // RGB Green Pin, priključen na digitalni pin 9
int redPin = 10; // RGB rdeči pin priključen na digitalni pin 9
int bluePin = 9; // RGB modri pin priključen na digitalni pin 9 int speakerPin = 12; // zvočnik priključen na digitalni pin 12 const bajt ROWS = 4; // štiri vrstice const byte COLS = 4; // štiri kolonije const int soundPin = A0; // zvočni senzor pritrdite na A0
ključi char [ROWS] [COLS] = {
{'a', 'b', 'c', 'd'}, {'e', 'f', 'g', 'h'}, {'i', 'j', 'k', ' l '}, {' m ',' n ',' o ',' p '}}; // Vizualizacija modula tipkovnice
byte rowPins [ROWS] = {2, 3, 4, 5}; // povežemo se z odmiki vrstice na tipkovnici
bajt colPins [COLS] = {6, 7, 8, 13}; // se povežemo s stolpci pinout tipkovnice
Tipkovnica tipkovnice = Tipkovnica (makeKeymap (tipke), rowPins, colPins, ROWS, COLS); // Ustvari ključe
void setup () {
pinMode (speakerPin, OUTPUT); // nastavi zvočnik za izhod
pinMode (redPin, OUTPUT); // nastavi rdeči pin kot izhodni pinMode (greenPin, OUTPUT); // nastavi zeleni pin kot izhodni pinMode (bluePin, OUTPUT); // nastavi modri pin kot izhod
Serial.begin (9600);
} void setColor (int rdeča, int zelena, int modra) // Nova definirana funkcija, ki RGB -ju omogoča prikaz barve prek kode RGB {#ifdef COMMON_ANODE rdeča = 255 - rdeča; zelena = 255 - zelena; modra = 255 - modra; #endif analogWrite (redPin, rdeče); analogWrite (greenPin, zelen); analogWrite (bluePin, modro); }
void beep (nepodpisan char zvočnikPin, int frekvencaInHertz, long timeInMilliseconds) {// funkcije za ustvarjanje zvoka
int x; dolga delayAmount = (dolga) (1000000/frekvenca v hercih); long loopTime = (long) ((timeInMilliseconds*1000)/(delayAmount*2)); za (x = 0; x
void loop () {
tipka char = keypad.getKey (); int value = analogRead (soundPin); // preberite vrednost A0 Serial.println (vrednost); // natisnite vrednost
if (ključ! = NO_KEY) {
Serial.println (ključ); } if (key == 'a') {pisk (speakerPin, 2093, 100); setColor (218, 112, 214); } if (key == 'b') {pisk (speakerPin, 2349, 100); setColor (218, 112, 214); } if (key == 'c') {pisk (speakerPin, 2637, 100); setColor (218, 112, 214); } if (key == 'd') {pisk (speakerPin, 2793, 100); setColor (218, 112, 214); } if (key == 'e') {pisk (speakerPin, 3136, 100); setColor (218, 112, 214); } if (key == 'f') {pisk (speakerPin, 3520, 100); setColor (218, 112, 214); } if (key == 'g') {pisk (speakerPin, 3951, 100); setColor (218, 112, 214); } if (key == 'h') {pisk (speakerPin, 4186, 100); setColor (218, 112, 214); } if (key == 'i') {pisk (speakerPin, 2093, 100); setColor (230, 230, 0); } if (key == 'j') {pisk (speakerPin, 2349, 100); setColor (180, 255, 130); } if (key == 'k') {pisk (speakerPin, 2637, 100); setColor (130, 255, 130); } if (key == 'l') {pisk (speakerPin, 2739, 100); setColor (130, 220, 130); } if (key == 'm') {pisk (speakerPin, 3136, 100); setColor (0, 255, 255); } if (key == 'n') {pisk (speakerPin, 3520, 100); setColor (0, 220, 255); } if (key == 'o') {pisk (speakerPin, 3951, 100); setColor (0, 69, 255); } if (key == 'p') {pisk (speakerPin, 4186, 100); setColor (255, 0, 255); }}
5. korak: Zadnje misli
Zaključne misli
Zadnja misel tega projekta je, da je njegov namen biti igrača, prinašati zabavo in poenostavljeno veselje. Ker je ta projekt dokončan in se na njem dela, verjamem, da lahko to zgradbo dopolni z morda več komponentami, kot je snemalni element ali element copy/simon pravi, ali celo LCD z notami, ki naj bi predvajale določeno pesem.
Zanima me vaše mnenje o modulu tipkovnice, katere komponente bi po vašem mnenju lahko dodali. Ali ga boste uporabili v katerem od svojih projektov? Prosimo, da svoje ideje objavite v spodnjem razdelku za komentarje.
Prosimo, delite, če ste uživali v tem projektu arduino.