Tartalomjegyzék:

Billentyűzet modul zongora RGB LED -del: 5 lépés (képekkel)
Billentyűzet modul zongora RGB LED -del: 5 lépés (képekkel)

Videó: Billentyűzet modul zongora RGB LED -del: 5 lépés (képekkel)

Videó: Billentyűzet modul zongora RGB LED -del: 5 lépés (képekkel)
Videó: Drawing a Synthesizer in MIDI - Live! 2024, November
Anonim
Image
Image
Szükséges anyagok
Szükséges anyagok

Intro

Sziasztok hölgyeim és uraim, üdvözöllek legelső oktatható művemben! Ma azt fogom megtanítani, hogyan kell zongorát készíteni, amelynek fő elemei egy billentyűzet modul és egy piezo zümmögő, és hogy képes legyen DO-RE-MI-t játszani.

A billentyűzet modul leggyakrabban rendeltetése az, hogy egy billentyűzet legyen egy arduino RFID -vel kombinálva, hogy biztonságos tárolót hozzon létre az értékes tárgyak számára. Ebben az esetben kicseréltem a billentyűzetet, ahelyett, hogy valamit megvédnék, úgy döntök, hogy az egyszerű öröm és a zene megszólaltatására használom.

Ötlet Koncepció

Ennek az alkotásnak az ötlete egy egyszerű boldog emlékből fejlődik ki, amikor xilofont játszottam, amikor fiatalabb voltam a zeneórán. A testemben futó öröm és izgalom a tetőfokára hágott, vagyis minden gyerek könnyen elégedett volt, és elégedettségem a xilofon.

Kutatás

Miután felgyullad a fenti ötlet izzó, egy kis kutatást kell végezni. A weben való böngészés után rábukkanok az első ötletemre! A billentyűzet modulból zongora lett, valaki itt létrehozta ugyanazt a projektvideót. Előre gondolva hozzá kellett adnom egy külön összetevőt, amely tovább fokozza a projektet, de vonzóbbá teszi, és a magaménak nevezhetem.

Lépés: Szükséges anyagok

Szükséges anyagok
Szükséges anyagok
Szükséges anyagok
Szükséges anyagok
Szükséges anyagok
Szükséges anyagok

Anyagok listája

  • Piezo Buzzer 1x ▶
  • 4x4-es billentyűzet modul 1x ▶
  • Arduino Uno 1x ▶
  • A/B típusú USB 2.0 kábel 1x ▶
  • Hangérzékelő modul 1x ▶
  • RGB LED 1x ▶
  • 330 ohmos ellenállás 3x ▶
  • Férfi-női áthidaló vezeték 8x ▶
  • Férfi -férfi áthidaló vezeték 4x ▶
  • 3 tűs hüvely-hüvely áthidaló vezeték 1x ▶

Az anyaglista rendben van a fenti képekkel.

2. lépés: Az idő építése

Építési idő!
Építési idő!
Építési idő!
Építési idő!
Építési idő!
Építési idő!
Építési idő!
Építési idő!

4x4 -es billentyűzet -modul és Piezo -csengő

Elmélet

Mivel a 4x4 -es billentyűzet modul és a piezo -zümmögő annyi egyedi tűbemenetet tartalmaz, és úgy döntök, hogy a felhasznált összetevőket két párra osztom. A billentyűzetre fókuszálva, általában bemenetként használják. A SunFounder 4*4 mátrix billentyűzet modul egy mátrix kódolatlan billentyűzet, amely 16 párhuzamos billentyűből áll. Az egyes sorok és oszlopok gombjai a külső csapokon keresztül vannak összekötve- Y1-Y4 érintkezők a sorok vezérlése mellett, amikor X1- X4, az oszlopok.

Célja

Ezeknek az összetevőknek a célja az egész projektben az, hogy lehetővé tegye a felhasználó számára, hogy megnyomjon egy gombot, amely a piezo zümmögő által létrehozott meghatározott hangra van beállítva hertzben.

Mátrix modul csap - Arduino Pin

  • 4 - 2
  • 3 - 3
  • 2 - 4
  • 1 - 5
  • 5 - 6
  • 6 - 7
  • 7 - 8
  • 8 - 13

Piezo Buzzer - Arduino Pin

Fekete - GND

Piros - Erő

A legnehezebb feladatom ebben az összeállításban az, hogy rájöjjek, hová van csatlakoztatva minden vezeték. A fentiekben bemutatom Önnek a gyors és egyszerű módot a vezetékek elhelyezésére, mindaddig, amíg fentről lefelé követi, a tipp az, hogy időt szakít rá, és győződjön meg arról, hogy minden csap megfelelően be van helyezve a megfelelő nyílásba.

*A tipp az, hogy kövesse az egyes vezetékek helyét egyik végétől a másikig.

Az egyes komponensvezetékek Tinkercad vázlata színkóddal van ellátva, ezért gondosan kövesse

3. lépés: Hangérzékelő modul és RGB LED

Hangérzékelő modul és RGB LED
Hangérzékelő modul és RGB LED
Hangérzékelő modul és RGB LED
Hangérzékelő modul és RGB LED
Hangérzékelő modul és RGB LED
Hangérzékelő modul és RGB LED

Hangérzékelő modul és RGB LED

Elmélet

A hangérzékelő modul lehetővé teszi, hogy érzékelje, ha a hang meghaladta a kiválasztott alapértéket. A hangot egy mikrofon érzékeli, és egy LM393 op erősítőbe táplálja. Ha a hangerő meghaladja a beállított értéket, a modul LED -je kigyullad és a kimenet.

Célja

Ezeknek az összetevőknek az egész projektben az a célja, hogy hang-/hangerő -leolvasást kapjon a hangérzékelő modulból, és ezen keresztül az RGB LED olvasása aktiválja a hang megfelelő színét.

Hangérzékelő modul - Arduino pin (3 tűs jumper vezeték használata)

  • Kimenet - A0 analóg érintkező
  • GND - Bármilyen nyitott GND tűhely
  • VCC - 3V

RGB közös anód (+) LED - Arduino Pin

  • Piros - 9
  • Teljesítmény - 5V
  • Zöld - 10
  • Kék - 11

Vegye figyelembe, hogy minden egyes vezetéket 330 ohmos ellenálláson keresztül kell vezetni. Használja a fenti képet referenciaként.

A legnehezebb feladatom ebben az összeállításban az, hogy rájöjjek, hová van csatlakoztatva minden vezeték. A fentiekben bemutatom Önnek a gyors és egyszerű módot a vezetékek elhelyezésére, mindaddig, amíg fentről lefelé követi, a tipp az, hogy időt szakít, és győződjön meg arról, hogy minden csap helyesen van behelyezve a megfelelő nyílásba, hogy megakadályozza a későbbi hibakeresést.

*A tipp az, hogy kövesse az egyes vezetékek behelyezésének módját

Az egyes komponensvezetékek Tinkercad vázlata színkóddal van ellátva, ezért kövesse

4. lépés: Kód

Kód

Ez a kód lehetővé teszi, hogy az összes komponens együtt dolgozzon, az újonnan definiált függvény használatával egyetlen vezérlőelemet tartalmazhat, amely sok változtatható változót tartalmaz, ezek az összetevők az RGB ledjei voltak, és az rgb szín használatával változtatták meg a színt, és a piezo zümmere és a hangot ad, a gombnyomástól függően.

A kódon belül kötelező volt a billentyűzet -könyvtár

Link itt:

A letöltés után adja hozzá az új könyvtárat az arduino -hoz, majd illessze be az aktiváláshoz szükséges egyetlen sor kódot.

A kód során felmerült nehézségeim az újonnan definiált függvények elhelyezése voltak, mivel próba és hiba útján rájöttem, hogy ennek a beállításban kell lennie, és nem a ciklusban.

Kód

#include // Kezelőkönyvtár

int greenPin = 11; // RGB zöld tű a digitális tűhöz csatlakoztatva 9

int redPin = 10; // RGB Piros Tű a digitális tűhöz csatlakoztatva 9

int bluePin = 9; // RGB kék tű 9 -es digitális tűhöz csatlakoztatva int hangszóróPin = 12; // hangszóró csatlakoztatva a digitális tűhöz 12 const byte ROWS = 4; // négy sor const byte COLS = 4; // négy coloums const int soundPin = A0; // hangérzékelő csatlakoztatása az A0 -hoz

char billentyűk [ROWS] [COLS] = {

{'a', 'b', 'c', 'd'}, {'e', 'f', 'g', 'h'}, {'i', 'j', 'k', ' l '}, {' m ',' n ',' o ',' p '}}; // A billentyűzet modul megjelenítése

byte rowPins [SOROK] = {2, 3, 4, 5}; // csatlakozzon a billentyűzet sorkapcsaihoz

bájt colPins [COLS] = {6, 7, 8, 13}; // csatlakozzon a billentyűzet colum pinoutjaihoz

Billentyűzet billentyűzet = Billentyűzet (makeKeymap (billentyűk), rowPins, colPins, ROWS, COLS); // Kulcsokat hoz létre

void setup () {

pinMode (speakerPin, OUTPUT); // a speakerPin kimenetet állítja be

pinMode (redPin, OUTPUT); // beállítja a piros tűt kimeneti pinMode (greenPin, OUTPUT); // beállítja a zöld tűt kimeneti pinMode (bluePin, OUTPUT); // a kék tűt kimenetnek állítja be

Sorozat.kezdet (9600);

} void setColor (int piros, int zöld, int kék) // Új definiált funkció, amely lehetővé teszi az RGB számára, hogy színt jelenítsen meg az RGB kódon keresztül {#ifdef COMMON_ANODE red = 255 - red; zöld = 255 - zöld; kék = 255 - kék; #endif analogWrite (redPin, piros); analogWrite (zöldPin, zöld); analogWrite (bluePin, kék); }

void beep (előjel nélküli char hangszóróPin, int frekvencia InHertz, long timeInMilliseconds) {// a hangképző funkciók

int x; long delayAmount = (hosszú) (1000000/frequencyInHertz); long loopTime = (hosszú) ((timeInMilliseconds*1000)/(delayAmount*2)); mert (x = 0; x

void loop () {

char gomb = keypad.getKey (); int value = analogRead (soundPin); // olvassa el az A0 Serial értékét. println (érték); // az érték kinyomtatása

if (kulcs! = NO_KEY) {

Serial.println (kulcs); } if (kulcs == 'a') {sípolás (speakerPin, 2093, 100); setColor (218, 112, 214); } if (kulcs == 'b') {sípolás (speakerPin, 2349, 100); setColor (218, 112, 214); } if (billentyű == 'c') {sípolás (speakerPin, 2637, 100); setColor (218, 112, 214); } if (kulcs == 'd') {csipogás (speakerPin, 2793, 100); setColor (218, 112, 214); } if (kulcs == 'e') {sípolás (speakerPin, 3136, 100); setColor (218, 112, 214); } if (kulcs == 'f') {sípolás (speakerPin, 3520, 100); setColor (218, 112, 214); } if (kulcs == 'g') {sípolás (speakerPin, 3951, 100); setColor (218, 112, 214); } if (kulcs == 'h') {sípolás (speakerPin, 4186, 100); setColor (218, 112, 214); } if (kulcs == 'i') {sípolás (speakerPin, 2093, 100); setColor (230, 230, 0); } if (billentyű == 'j') {sípolás (speakerPin, 2349, 100); setColor (180, 255, 130); } if (kulcs == 'k') {sípolás (speakerPin, 2637, 100); setColor (130, 255, 130); } if (kulcs == 'l') {sípolás (speakerPin, 2739, 100); setColor (130, 220, 130); } if (kulcs == 'm') {sípolás (speakerPin, 3136, 100); setColor (0, 255, 255); } if (kulcs == 'n') {sípolás (speakerPin, 3520, 100); setColor (0, 220, 255); } if (kulcs == 'o') {sípolás (speakerPin, 3951, 100); setColor (0, 69, 255); } if (kulcs == 'p') {sípolás (speakerPin, 4186, 100); setColor (255, 0, 255); }}

5. lépés: Utolsó gondolatok

Image
Image

Végső gondolatok

Ennek a projektnek az utolsó gondolatai az a célja, hogy játék legyen, szórakoztató és egyszerű örömet szerezzen. Mivel ez a projekt egy komplett és dolgozik, úgy gondolom, hogy ez a konstrukció több további komponenssel is kiegészíthető, mint például egy felvételi elem, vagy a copy/simon mondja elem, vagy akár az LCD, ahol a hangok egy adott dalt játszanak.

Kíváncsi lennék a véleményére a billentyűzet modulról, hogy Ön szerint milyen összetevőket lehetett hozzáadni. Fogja használni valamelyik projektjében? Kérjük, tegye meg ötleteit az alábbi megjegyzések részben.

Kérjük, mindenképpen ossza meg, ha tetszett ez az arduino projekt.

Ajánlott: