Tartalomjegyzék:
- 1. lépés: Alkatrészek és eszközök
- 2. lépés: A tok 3D nyomtatása
- 3. lépés: Összerakás + vázlat
- 4. lépés: A dugók
- 5. lépés: A kód
- 6. lépés: Megjegyzések
- 7. lépés: Változásnapló
Videó: Arduino gitár Jack kulcstartó Jack felismeréssel és OLED: 7 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:41
Bevezető:
Ez az utasítás részletesen leírja az Arduino alapú Guitar Jack plugin kulcstartóm felépítését
Ez az első tanulságos, ezért kérem, tartson velem, mert változtatásokat / frissítéseket tehetek az út során
1. lépés: Alkatrészek és eszközök
A legtöbb alkatrészt az Amazon.co.uk -ról vagy az eBay -ről vásároltam, néhányat már rúgtam is - Itt van egy lista arról, hogy mire lesz szüksége.
Az Amazon linkek mind affiliate linkek, máshol olcsóbbakat is találhat - én sokat használom az Amazon Prime -ot, így az Amazon véletlenül a kedvencem.
Azt akartam, hogy ez a konstrukció meglehetősen alacsony költségű és költségkímélő legyen. Használhat nagyobb TFT -képernyőt, ahogy szeretné, valamint egy másik Arduino -t. Ne használjon NANO -t, mert a nagy memóriahasználat miatt összeomlik. A kód a Pro Micro RAM -jának körülbelül 72% -át használja, és stabil, de a tesztelés során a NANO összeomlik és lefagy.
(További részletek a Kód lépésben.)
ALKATRÉSZEK
1x Arduino Pro Micro -
1x 0,96 OLED sárga és kék kijelzővel -
4x WS2812 "Pixelek" -
1x DS3231 RTC -
4x 1/4 Mono Jack (vagy annyit, amennyit csak akar) - Amazon (arany) vagy Amazon (ezüst) vagy eBay.co.uk
1x vegyes ellenállás csomag -
4x 1/4 gitárcsatlakozók -
1x Micro USB kábel hosszabbító kábel -
4x M3 csavar
SZERSZÁMOK ÉS ANYAGOK
- Forrasztópáka (ezt vettem - egy TS100 -at -, mivel további tippeket kapott
- Forrasztás
- Forró ragasztópisztoly (https://amzn.to/2UTd9PN)
- Vezeték (https://amzn.to/2VK2ILU)
- Drótvágók/levágók (https://amzn.to/2KzqUzp)
- 3D nyomtató vagy 3D nyomtatási szolgáltatás
OPCIONÁLIS - Ezek az elemek nem kötelezőek, attól függően, hogy hogyan kapcsol össze mindent
- Veroboard/Stripboard (https://amzn.to/2KzMFPE)
- Csavaros csatlakozók (2 pólusú | 3 pólusú | 4 pólusú)
- NYÁK -fejlécek (https://amzn.to/2X7RjWf)
2. lépés: A tok 3D nyomtatása
Az enyémet a Creality CR-10S-re nyomtatottam, Black PLA+ használatával (https://amzn.to/2X2SDtE)
0,2 réteg magasságban nyomtam, 25% kitöltéssel.
3. lépés: Összerakás + vázlat
Az, hogy az Arduino -t hogyan csatlakoztatod, teljesen rajtad múlik - én személy szerint úgy döntöttem, hogy úgymond "pajzsot" csinálok magamnak. A pajzs elkészítéséhez női fejléceket forrasztottam a veroboardra, hogy illeszkedjenek a Pro Micro -hoz, majd hozzáadtam egy +5v és GND sínt a szemközti végén. Ugróvezetékkel csatlakoztattam a +5V -ot a mostani 5 V -os sínemhez, és ugyanezt tettem a GND esetében is. Ezután hozzáadtam a 4x 100 ezer ellenállásomat, egyik végüket +5V -ra kötöttem mindegyikre, majd a másik oldal csatlakozik az A0, A1, A2 és A3 -hoz. Ezután csavaros csatlakozókat adtam hozzá az A0, A1, A2 és A3 analóg csapokhoz, valamint a 2 -es (SDA), 3 -as (SCL) és 4 -es csapokhoz
Mérje meg a vezetékeket és vágja megfelelő hosszúságúra. Először a WS2812 Pixel LED -ekkel kezdtem - az ELSŐ WS2812 LED +5V -ra csatlakozik az Arduino -ról, a GND az Arduino -ról, és a DIN csatlakozik a 4 -es tűhöz. GND> GND csapok és DOUT az egyik Pixelből, a következő DIN -hez csatlakozik. Forrasztás után óvatosan nyomja be a tetején lévő négyzet alakú lyukakba, és helyezzen fel forró ragasztót, és védje a hátlapot a véletlen csatlakozásoktól vagy rövidzárlatoktól.
A LED -ek után csavartam be a Guitar Jack foglalatokat. Mindegyikből egy tüske csatlakozik a GND -hez, majd mindegyik 2. csapja az A0, A1, A2 és A3 -hoz. Tehát ez az 1 -es foglalat, az A0, a 2 -es foglalat az A1 -hez, a 3 -as foglalat az A2 -hez és a 4 -es aljzat az A3 -hoz.
Ezután 4 vezetéket forrasztottam az OLED csatlakozásokhoz, és amennyire csak lehetséges, levágtam a felesleges forrasztást. A vezetékeket a képernyő hátuljáról szeretné csatlakoztatni, így a képernyő elejére forraszt.
Ügyeljen a csapokra! Egyes OLED -eken kívül GND, majd VCC, néhányon kívül VCC, majd GND van
Ha forrasztott, és amennyire csak lehetséges, vágja le vagy lapítsa le a forrasztócsatlakozót, óvatosan nyomja be a képernyőt a helyére. A tervezés szerint kissé szoros illeszkedés, de ne feledje, hogy a különböző nyomtatási tűrések befolyásolhatják ezt, ezért előfordulhat, hogy néhány kisebb utófeldolgozást kell végrehajtania, hogy illeszkedjen. Miután a helyén van, tegyen forró ragasztót a 4 sarok mindegyikére, hogy a helyén maradjon.
Csatlakoztasson mindent a vázlatos rajzhoz és a képekhez, és ha elégedett, ragaszthatja a helyére a Pro Micro és az RTC órát is, majd csatlakoztassa az USB -hosszabbítót a Pro Micro -hoz.
Mikro -USB -hosszabbítót használtam, hogy a) az USB -t tápellátásra lehessen használni, de még inkább, b) úgy, hogy szükség esetén át lehetett programozni a Pro Micro -t anélkül, hogy mindent szét kellett volna szedni.
Ha boldog, csavarja össze a házat a 4 csavar segítségével
4. lépés: A dugók
Ez úgy működik, hogy a tervezés egy része mindenképpen "ohmmérő". Az ohmmérő az elektromos ellenállás mérésére szolgáló eszköz. A legtöbb multiméter rendelkezik ezzel a funkcióval, amikor kiválasztja a skálát, majd megmér egy ellenállást, hogy megtalálja annak értékét. A működési elv az, hogy egy ISMERETT ellenállást csatlakoztat a +ve -hez, amelyet ezután egy ISMERETLEN ellenálláshoz csatlakoztat, amely a -ve -hez csatlakozik. A 2 ellenállás közötti kötés az Arduino analóg csaphoz csatlakozik, így le tudja olvasni a feszültséget és kiszámítja az ellenállást.
Úgy működik, mint egy feszültségosztó, és kiszámítja az ismeretlen ellenállás ellenállását.
Az R1 és R2 ellenállások feszültségosztó hálózataként
Vout = Vin * R2 / (R1 + R2) - 100 k -t használunk az ismert (R1) ellenállásunkhoz. Ez adja a "feszültségcsökkenést"
Ebből most ki tudjuk dolgozni az ismeretlen (R2) ellenállás ellenállását, R2 = Vout * R1 / (Vin - Vout) - ahol R1 a 100k (100 000 ohm) ellenállásunk
Ha minden egyes használni kívánt csatlakozóaljzatban más ellenállást használ, akkor a kódot ennek megfelelően módosíthatja a használt jacktől függően.
4 jack dugót használok. A használat mellett döntöttem:
Ismert ellenállás (x4) - 100k
Jack dugó 1 - 5,6 k
Jack dugó 2-10k
Jack dugó 3 - 22k
Jack dugó 4 - 39k
Természetesen bővítheti ezt, és kódolhat, amennyit csak akar.
5. lépés: A kód
Először is szüksége lesz az Arduino IDE -re, amely innen érhető el:
Azt is meg kell győződnie arról, hogy van néhány Arduino könyvtára is:
Adafruit NeoPixel:
u8g2:
Adafruit RTCLib:
Adafruit SleepyDog (opcionális):
Megjegyzés a megfelelő "Arduino" tábla kiválasztásáról. Eredetileg egy Arduino Nano-val indítottam el ezt a projektet, mert szuper olcsók, kb.). A probléma a Nano -val az, hogy az SRAM mérete 2 KB (2048 bájt). Ez a vázlat 1728 bájt dinamikus memóriát használ globális változókkal. Ez az SRAM 84% -a, így csak 320 bájt marad szabad a helyi változók számára. Ez nem volt elegendő, és a Nano záródását és lefagyását okozta volna.
A Pro Micro (Leonardo) 2.5K SRAM -tal (2560 bájt) rendelkezik, ami azt jelenti, hogy 694 bájt szabad a helyi változók számára (a vázlat a Pro Micro SRAM -jának 72% -át használja). Ez eddig tökéletesen megfelelőnek és stabilnak bizonyult a használatomhoz. Ha sok jack dugót szeretne használni, akkor érdemes több SRAM -ot használni.
Ami a Flash -tárolót illeti, ez a vázlat a 30k 88% -át (25252 bájt) használja (az ATMega328p [Nano] és az ATMega32u4 [Pro Micro] 32 k -t tartalmaz, de 2 k -t a rendszerbetöltő tartogat)
Több száz Arduino -vázlatot írtam az évek során, de hobbi vagyok - szóval ne feledje, hogy a kód egyes részei nem hatékonyak, vagy léteznek "jobb módszerek erre". Ezzel együtt tökéletesen működik nálam, és elégedett vagyok vele. Olyan könyvtárakat használtam, amelyeknek a legtöbb táblán működniük kellene, legyen az AVR (a legalapvetőbb Arduino) vagy SAMD21 (van egy maroknyi Cortex M0 eszközöm)
Más grafikát akartam megjeleníteni a használt jack alapján is. Ha sajátot szeretne készíteni, ez egy ragyogó, egyszerű útmutató a C -tömb létrehozásához a kijelzővel használható képekhez:
sandhansblog.wordpress.com/2017/04/16/interfacing-displaying-a-custom-graphic-on-an-0-96-i2c-oled/
Győződjön meg róla, hogy a PROGMEM programot használja a grafikához. Például:
static const unsigned char YOUR_IMAGE_NAME PROGMEM = {}
A tervezés szerint a képernyő 5 másodperc múlva "időtúllép", és visszatér az idő megjelenítéséhez.
A legtöbb beállítás megtalálható a Settings.h -ban, különösen a kapcsolódó jack dugók neve itt van kódolva:
#define PLUG1 "KULCSOK"
#define PLUG2 "P2" #define PLUG3 "P3" #define PLUG4 "P4" #define GENERIC "NA"
A kód néhány fontos része is található a Változókon belül.h
úszó R1 = 96700,0;
úszó R2 = 96300,0; úszó R3 = 96500,0; úszó R4 = 96300,0;
Ezek a 4 ellenállás mindegyikének ismert ellenállási értékei, ohmban.
R1 csatlakozik az A0 -hoz, R2 - A1, R3 - A2 és R4 - A3.
Célszerű multiméterrel megmérni 100k ellenállását, és az ellenállás pontos értékét használni. Mérje meg az ellenállást, miután minden csatlakoztatva van. (De nincs bekapcsolva).
Amikor ellenállásokat választ a jackdugókhoz, győződjön meg róla, hogy jó ohmos rés van közöttük, és kódolásuk során adjon meg magának egy jó és alacsonyabb tartományt, mint a választott ellenállás. Ezt használtam a kódomban:
úszó P1_MIN = 4000,0, P1_MAX = 7000,0; 5,6K
úszó P2_MIN = 8000,0, P2_MAX = 12000,0; // 10K úszó P3_MIN = 20000,0, P3_MAX = 24000,0; // 22K úszó P4_MIN = 36000,0, P4_MAX = 42000,0; 39K
Ennek oka az analóg leolvasás és a kisebb feszültségingadozások stb
Tehát mi történik, ha az észlelt ellenállás 4000 ohm és 7000 ohm között van, feltételezzük, hogy 5,6 k ellenállást használt, és így a kód ezt Jack Plug 1 -nek fogja látni. Ha a mért ellenállás 8000 ohm és 12000 ohm, a feltételezés az, hogy ez egy 10k ellenállás, és Jack Plug 2, és így tovább.
Ha valamilyen hibakeresést kell végrehajtania (Ne hagyja megjegyzés nélkül a „gyártásban”, mivel a soros hibakeresés értékes ramot használ fel), egyszerűen vegye ki a megjegyzéseket a Beállítások tetején található h sorokból.
//#define SERIAL_DEBUG
//#define WAIT_FOR_SERIAL
A megjegyzés visszavonásához egyszerűen távolítsa el a //…. a sor visszacsatolásához adja hozzá újra a // karaktert a sor elejéhez.
A SERIAL_DEBUG lehetővé teszi a soros hibakeresést és olyan dolgok használatát, mint pl.
Serial.println (F ("hello world"));
A WAIT_FOR_SERIAL egy további lépés, ami azt jelenti, hogy a Serial Monitor megnyitásáig a kód nem folytatódik. Ez biztosítja, hogy ne hagyjon ki egyetlen fontos soros üzenetet sem. - SOHA NE HAGYJA EL EZT
Ha engedélyezi a WAIT_FOR_SERIAL programot, akkor nem tudja használni a kulcstartóját semmilyen "valós világ" környezetben, mivel elakad az Arduino IDE soros monitorra várva, mielőtt folytatódhat a vázlat fő hurkában. Miután befejezte a hibakeresést, győződjön meg arról, hogy ismét visszavonta ezt a sort, és töltse fel újra a vázlatot a gyártáshoz/befejezéshez.
A SERIAL_DEBUG opció használatakor a kódom a következőket tartalmazza:
#ifdef SERIAL_DEBUG
Serial.print (F ("ACTIVE JACK =")); Serial.println (ACTIVE_JACK); int len = sizeof (SOCKET_1234_HAS_PLUGTYPE_X)/sizeof (SOCKET_1234_HAS_PLUGTYPE_X [0]); for (int i = 0; i <len; i ++) {Serial.print (F ("SOCKET_1234_HAS_PLUGTYPE_X [")); Sorozatnyomat (i); Sorozatnyomat (F ("] =")); Serial.println (SOCKET_1234_HAS_PLUGTYPE_X ); } Sorozat.println (); if (INSERTED [socket]) {Serial.print (F ("Plug in socket")); Soros.nyomtatás (foglalat+1); Serial.print (F ("resitanciája:")); Soros.println (ellenállás); } #endif
Az utolsó Serial.print sor megmondja, hogy mekkora az ellenállás ohmban az utoljára behelyezett csatlakozónál. Tehát ezt a vázlatot ohmmérőként is használhatja a jack dugó ellenállásának ellenőrzésére.
6. lépés: Megjegyzések
Azt hiszem, mindent leírtam, de kérjük, írjon megjegyzést, és mindent megteszek, hogy elolvassam és válaszoljak, amikor tudok:)
Elnézést a kissé gyenge videóért - nincs állványom, átkódolási beállításom, vagy úgymond megfelelő munkaterületem, így ezt (rosszul) rögzítették, amikor egyik kezében tartotta a telefont, a másikkal pedig demózni próbált.
Köszönöm, hogy elolvasta.
Ajánlott:
IoT kulcstartó-kereső az ESP8266-01 használatával: 11 lépés (képekkel)
IoT kulcstartó-kereső az ESP8266-01 használatával: Olyan vagy, mint én, és mindig elfelejted, hol tartod a kulcsaidat? Soha nem találom meg időben a kulcsaimat! És ez a szokásom miatt elkéstem az egyetemről, a limitált szériás Star wars finomságok eladásából (még mindig izgulok!), Egy randevúból (soha nem választott
Sürgősségi jármű menekülési kulcstartó: 11 lépés (képekkel)
Sürgősségi jármű menekülési kulcstartó: Autóbalesetek. Jajj! A legjobb módja annak, hogy elkerülje a balesetet, ha biztonságos vezetési technikákat alkalmaz, és mindig figyeljen arra, hová megy, és a többi autóra. Azonban minden erőfeszítése ellenére nem tudja irányítani a többi hajtást
Gitár Gitár-erősítő: 6 lépés
Gitár Gitárerősítő: Miközben néztem, ahogy a bátyám el akarja dobni egy régi, felvert gitárját, amit hónapok óta használ, nem tudtam nem hagyni. Mindannyian hallottuk már azt a mondást, hogy "az egyik szemetes a másik kincse." Szóval megragadtam, mielőtt a telepre került. Ez
Hangvezérelt intelligens kulcstartó: 3 lépés (képekkel)
Hangvezérelt intelligens kulcstartó: Ön az a fajta ember, aki nem ért a kulcsok kezeléséhez, és mindig ki kell próbálnia minden kulcsot minden más zárhoz? Nos, ne aggódjon, csak ragadjon meg egy kis motivációt és készítőeszközeit az innováció érdekében saját hangvezérelt intelligens kulcstartó
Kulcstartó digitális fényképezőgép feltörése az Arduino vezérléshez: 6 lépés
Kulcstartó digitális fényképezőgép feltörése az Arduino Control számára: Az Arduino fényképezési lehetőségei kevések. A webkamerák nem praktikusak olyan alkalmazásokhoz, mint a sárkányfényképezés vagy a nyilvános fényképezés, hacsak nincs kedve egy 200 lábas USB -kábelt vásárolni. És a jelenlegi technikák az önálló Arduino fotózáshoz