Sisällysluettelo:
- Vaihe 1: Osat ja työkalut
- Vaihe 2: Kotelon 3D -tulostus
- Vaihe 3: Laita kaikki yhteen + kaavio
- Vaihe 4: Pistokkeet
- Vaihe 5: Koodi
- Vaihe 6: Huomautuksia
- Vaihe 7: Muutospäiväkirja
Video: Arduino Guitar Jack -avaimenpidike, jossa Jack -tunnistus ja OLED: 7 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:02
Esittely:
Tässä ohjeessa kerrotaan yksityiskohtaisesti Arduino -pohjaisen Guitar Jack -liitännäisen avaimenpidikkeen rakentamisesta
Tämä on ensimmäinen ohjeeni, joten ole kärsivällinen, sillä voin tehdä muutoksia / päivityksiä matkan varrella
Vaihe 1: Osat ja työkalut
Suurin osa osista, jotka ostin Amazon.co.ukista tai eBaysta, jotkut minulla oli jo käynnissä - Tässä on luettelo tarvitsemistasi osista.
Amazon -linkit ovat kaikki Affiliate -linkkejä, saatat löytää halvempia muualta - käytän Amazon Primea paljon, joten Amazon sattui olemaan minun go -to.
Halusin pitää tämän rakenteen melko edullisena ja budjettiystävällisenä. Voit halutessasi käyttää isompaa TFT -näyttöä ja erilaista Arduinoa. Älä käytä NANO -laitetta, koska se kaatuu suuren muistin käytön vuoksi. Koodi käyttää noin 72% Pro Micro: n RAM -muistista ja on vakaa, mutta testauksen perusteella NANO kaatuu ja jäätyy.
(Lisätietoja Koodivaiheessa.)
OSAT
1x Arduino Pro Micro -
1x 0,96 OLED, keltainen ja sininen näyttö -
4x WS2812 'Pixels' -
1x DS3231 RTC -
4x 1/4 Mono Jack (Tai niin monta kuin haluat) - Amazon (Gold) tai Amazon (Silver) tai eBay.co.uk
1x sekoitettu vastuspaketti -
4x 1/4 kitaratulpat -
1x Micro USB -kaapelin jatkojohto -
4x M3 -ruuvia
TYÖKALUT JA MATERIAALIT
- Juotin (Tämän ostin - TS100 - koska siinä oli lisävinkkejä
- Juotos
- Hot Glue Gun (https://amzn.to/2UTd9PN)
- Johto (https://amzn.to/2VK2ILU)
- Langanleikkurit/irrotusaineet (https://amzn.to/2KzqUzp)
- 3D -tulostin tai 3D -tulostuspalvelu
VALINNAINEN - Nämä kohteet ovat valinnaisia riippuen siitä, miten haluat yhdistää kaiken
- Veroboard/Stripboard (https://amzn.to/2KzMFPE)
- Ruuviliittimet (2 -napainen | 3 -napainen | 4 -napainen)
- PCB -otsikot (https://amzn.to/2X7RjWf)
Vaihe 2: Kotelon 3D -tulostus
Tulostin omani Creality CR-10S -laitteelleni Black PLA+: lla (https://amzn.to/2X2SDtE)
Tulostin 0,2 kerroksen korkeudella 25% täyteaineella.
Vaihe 3: Laita kaikki yhteen + kaavio
Kuinka päätät yhdistää Arduinoosi, on täysin sinun tehtäväsi - henkilökohtaisesti päätin tehdä itsestäni niin sanotun "kilven". Kilven valmistamiseksi olen juottanut naaraspuoliset otsikot veroboardiin Pro Micro -mallin mukaan, lisäsin sitten +5v ja GND -kiskon vastakkaisiin päihin. Olen käyttänyt hyppyjohtoa +5v: n liittämiseen nykyiseen 5v "kiskoon", ja tein saman GND: lle. Lisäsin sitten 4x 100k vastukseni, joiden toinen pää oli kytketty +5V: iin kaikille, ja sitten toinen puoli muodostaa liitännät A0, A1, A2 ja A3. Olen sitten lisännyt ruuviliittimet analogisiin nastoihin A0, A1, A2 & A3 ja myös nastat 2 (SDA), 3 (SCL) & 4
Mittaa johdot ja katkaise sopivan pituisiksi. Aloitin ensin WS2812 Pixel LED -valoilla - ENSIMMÄINEN WS2812 LED yhdistää +5v Arduinosta, GND Arduinosta ja DIN yhdistää nastaan 4. Tämän jälkeen loput 3 on ketjutettu yhteen, ketjuttaen kaikki 5v> 5v, GND> GND -nastat ja DOUT yhdestä pikselistä, muodostaa yhteyden seuraavan DINiin. Kun ne on juotettu, paina ne varovasti yläreunassa oleviin neliönreikiin ja kuumaa liimaa paikoilleen sekä suojaa takaosaa mahdollisilta liitoksilta tai oikosululta.
LEDien jälkeen ruuvasin Guitar Jack -liitännät sisään. Yksi nasta kustakin liitetään GND: hen ja sitten kunkin toinen nasta A0, A1, A2 ja A3 vastaavasti. Joten se on pistorasia 1, A0, kanta 2 - A1, kanta 3 - A2 ja liitin 4 - A3.
Seuraavaksi juotin 4 johtoa OLED -liitäntöihin ja leikkasin ylimääräisen juotteen mahdollisimman alas. Haluat kiinnittää johdot näytön takaa, joten juotat näytön etuosaan.
Kiinnitä huomiota nastoihin! Joillakin OLED -laitteilla on GND ulkopuolella, sitten VCC, joillakin on VCC ulkopuolella ja sitten GND
Kun juotettu ja juottoliitäntä on viimeistelty tai litistetty niin paljon kuin mahdollista, paina näyttö varovasti paikkaansa. Se on rakenteeltaan hieman tiukka, mutta huomaa, että erilaiset tulostustoleranssit voivat vaikuttaa tähän, joten sinun on ehkä tehtävä joitakin pieniä jälkikäsittelyjä, jotta se sopisi. Kun se on paikallaan, aseta kuumaa liimaa jokaisen 4 kulman yli pitämään se paikallaan.
Yhdistä kaikki kaavion ja kuvien mukaisiksi, ja kun olet tyytyväinen, voit liimata myös Pro Micro- ja RTC -kellon paikalleen ja liittää sitten USB -laajennuksen Pro Micro -laitteeseen.
Käytin mikro -USB -laajennusta, jotta a) USB: tä voidaan käyttää virran tuottamiseen, mutta enemmän, b) jotta Pro Micro voitaisiin tarvittaessa ohjelmoida uudelleen irrottamatta kaikkea
Kun olet tyytyväinen, ruuvaa kotelo yhteen neljällä ruuvilla
Vaihe 4: Pistokkeet
Tämä toimii siten, että osa suunnittelua toimii kaikilta osin "ohmimittarina". Ohmimittari on laite sähkövastuksen mittaamiseen. Useimmilla yleismittarilla on tämä toiminto, jossa valitset asteikon ja mittaat sitten vastuksen löytääksesi sen arvon. Toimiva periaate on, että liität TIETETTYN vastuksen +ve: hen, joka sitten yhdistetään Tuntemattomaan vastukseen, joka yhdistää -ve. Kahden vastuksen välinen liitos yhdistetään Arduinon analogiseen nastaan, jotta se voi lukea jännitteen ja laskea vastuksen.
Se toimii kuin jännitteenjakaja ja laskee tuntemattoman vastuksen vastuksen.
Vastusten R1 ja R2 jännitteenjakajaverkkona, Vout = Vin * R2 / (R1 + R2) - Käytämme 100k tunnetulle (R1) vastuksellemme. Tämä antaa meille "jännitehäviön"
Tästä voimme nyt selvittää tuntemattoman (R2) vastuksen vastuksen, R2 = Vout * R1 / (Vin - Vout) - missä R1 on 100 000 (100 000 ohmin) vastuksemme
Käyttämällä eri vastusta kussakin pistokeliittimessä, jota haluat käyttää, voit sitten säätää koodia sen mukaan, mikä liitin on käytössä.
Käytän 4 pistoketta. Päätin käyttää:
Tunnettu vastus (x4) - 100k
Liitin 1-5,6 kt
Liitin 2-10k
Liitin 3-22k
Liitin 4-39k
Voit tietysti laajentaa tätä ja koodata niin monta kuin haluat.
Vaihe 5: Koodi
Ensinnäkin tarvitset Arduino IDE: n, joka on saatavana täältä:
Sinun on myös varmistettava, että sinulla on myös muutama Arduino -kirjasto:
Adafruit NeoPixel:
u8g2:
Adafruit RTCLib:
Adafruit SleepyDog (valinnainen):
Huomautus oikean "Arduino" -levyn valitsemisesta. Alun perin aloitin tämän projektin Arduino Nanolla, koska ne ovat erittäin halpoja noin 3–4 puntaa Isossa-Britanniassa tai jopa 1,50 puntaa, jos ostat AliExpressistä (mutta älä välitä 30–50 päivän odottamisesta)). Nanon ongelma on, että sen SRAM on 2 kt (2048 tavua). Tämä luonnos käyttää 1728 tavua dynaamista muistia globaaleilla muuttujilla. Se on 84% SRAM: sta, jolloin vain 320 tavua on vapaata paikallisille muuttujille. Tämä ei riittänyt ja saisi nanon lukkiutumaan ja jäätymään.
Pro Micro (Leonardo) -laitteessa on 2,5 kt SRAM (2560 tavua), mikä tarkoittaa, että paikallisille muuttujille on vapaa 694 tavua (luonnos käyttää 72% Pro Micron SRAM -muistista). Toistaiseksi tämä on osoittautunut täysin riittäväksi ja vakaaksi käyttööni. Jos aiot käyttää monia jakkipistokkeita, sinun kannattaa harkita jotain, jossa on enemmän SRAM: ää.
Mitä tulee Flash -tallennustilaan, tämä luonnos käyttää 88% (25252 tavua) 30k: sta (ATMega328p [Nano] ja ATMega32u4 [Pro Micro] ovat molemmat 32k, mutta 2k on varattu käynnistyslataimelle)
Olen kirjoittanut satoja Arduinon luonnoksia vuosien varrella, mutta olen harrastaja - joten muista, että jotkin koodin osat voivat olla tehottomia tai "parempia tapoja tehdä tämä" skenaarioita. Näin ollen se toimii täydellisesti minulle ja olen tyytyväinen siihen. Käytin kirjastoja, joiden PITÄISI toimia useimmilla levyillä, olivatpa ne sitten AVR (Arduinon perus) tai SAMD21 (minulla on kourallinen Cortex M0 -laitteita)
Halusin näyttää erilaisen grafiikan myös käytetyn liittimen perusteella. Jos haluat tehdä oman, tämä on loistava yksinkertainen opas C -taulukon luomiseen tämän näytön kanssa käytettäville kuville:
sandhansblog.wordpress.com/2017/04/16/interfacing-displaying-a-custom-graphic-on-an-0-96-i2c-oled/
Muista käyttää grafiikassa PROGMEM -ohjelmaa. Esim:
staattinen const unsigned char YOUR_IMAGE_NAME PROGMEM = {}
Suunnittelun mukaan näyttö "aikakatkaisee" 5 sekunnin kuluttua ja palaa ajan näyttöön.
Suurin osa asetuksista löytyy Asetuksista. H, erityisesti niihin liittyvien pistokkeiden nimet on koodattu tähän:
#define PLUG1 "AVAIMET"
#define PLUG2 "P2" #define PLUG3 "P3" #define PLUG4 "P4" #define GENERIC "NA"
Muuttujien sisällä on myös joitakin tärkeitä koodin osia. H
kelluva R1 = 96700,0;
kelluva R2 = 96300,0; kelluva R3 = 96500,0; kelluva R4 = 96300,0;
Nämä ovat kunkin 4 vastuksen TUNNETUT vastusarvot ohmeina.
R1 kytketty A0: een, R2 - A1, R3 - A2 ja R4 - A3.
On suositeltavaa mitata 100k vastukset yleismittarilla ja käyttää vastuksen tarkkaa arvoa. Mittaa vastus, kun kaikki on kytketty. (Mutta ei päällä).
Kun valitset liittimiisi vastuksia, varmista, että niiden välillä on hyvä ohmiväli, ja kun koodaat niitä, anna itsellesi mukava alue pienempi ja korkeampi kuin valitsemasi vastus. Tässä on mitä käytin koodissani:
kelluva P1_MIN = 4000,0, P1_MAX = 7000,0; // 5,6 kt
kelluva P2_MIN = 8000,0, P2_MAX = 12000,0; // 10K float P3_MIN = 20000,0, P3_MAX = 24000,0; // 22K float P4_MIN = 36000,0, P4_MAX = 42000,0; // 39K
Syynä tähän on ottaa huomioon analoginen lukema ja pienet jännitteen vaihtelut jne
Joten mitä tapahtuu, jos havaittu vastus on välillä 4000 ohmia ja 7000 ohmia, oletamme, että olet käyttänyt 5,6 k: n vastusta, joten koodi näkee tämän pistokkeen pistokkeena 1. Jos mitattu vastus on välillä 8000 ohmia ja 12000 ohmia, oletetaan, että se on 10k vastus ja Jack Plug 2 ja niin edelleen.
Jos sinun on tehtävä virheenkorjausta (älä jätä kommentoimatonta 'tuotantoon', koska sarjamuotoinen virheenkorjaus kuluttaa arvokasta ram -muistia), yksinkertaisesti poista tarvitsemasi rivit Asetusten yläosasta. H
//#define SERIAL_DEBUG
//#define WAIT_FOR_SERIAL
Voit poistaa kommentin poistamalla //…. kommentoidaksesi linjaa takaisin, lisää // uudelleen rivin eteen.
SERIAL_DEBUG mahdollistaa sarjamuotoisen virheenkorjauksen ja esimerkiksi (esim.)
Serial.println (F ("hello world"));
WAIT_FOR_SERIAL on lisävaihe, eli koodi ei jatku, ennen kuin avaat sarjamonitorin. Tämä auttaa varmistamaan, että et menetä tärkeitä sarjasanomia. - ÄLÄ KOSKAAN jätä tätä käyttöön
Jos jätät WAIT_FOR_SERIAL -toiminnon käyttöön, et voi käyttää avaimenpidintäsi missään "reaalimaailman" ympäristössä, koska se jää jumiin odottamaan Arduino IDE Serial -monitoria ennen kuin se voi jatkaa luonnoksen pääsilmukkaan. Kun olet suorittanut virheenkorjauksen, varmista, että poistat tämän rivin kommentin uudelleen ja lähetä luonnos uudelleen tuotantoon/valmistumiseen.
Kun käytän SERIAL_DEBUG -vaihtoehtoa, koodini sisältää seuraavat:
#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 [")); Sarjanjälki (i); Sarjanjälki (F ("] =")); Sarja.println (SOCKET_1234_HAS_PLUGTYPE_X ); } Sarja.println (); if (INSERTED [pistorasia]) {Serial.print (F ("Plug in socket")); Sarjanjälki (pistorasia+1); Serial.print (F ("resitanssi on:")); Serial.println (vastus); } #loppu Jos
Viimeinen Serial.print -rivi kertoo, mikä vastus on ohmeina viimeksi asetetulle liittimelle. Voit siis käyttää tätä luonnosta myös eräänlaisena ohmimittarina pistokkeen pistokkeen resistanssin tarkistamiseen.
Vaihe 6: Huomautuksia
Luulen, että olen kattanut kaiken, mutta kommentoikaa, ja yritän parhaani mukaan lukea ja vastata, kun voin:)
Pahoittelut hieman huonosta videosta - minulla ei ole jalustaa, uudelleenkoodausasetuksia tai niin sanottua kunnollista työskentelytilaa, joten tämä kuvattiin (huonosti) pitäen puhelinta toisessa kädessä ja yrittäessään demoida sitä toisella.
Kiitos lukemisesta.
Suositeltava:
Arduino OLED -näyttövalikko, jossa on valittavissa: 8 vaihetta
Arduino OLED -näyttövalikko, jossa on mahdollisuus valita: Tässä opetusohjelmassa opimme tekemään valikon, jossa on valintavaihtoehto OLED -näytön ja Visuinon avulla
Esp8266 -pohjainen tehostusmuunnin, jossa on hämmästyttävä Blynk -käyttöliittymä, jossa on palautesäädin: 6 vaihetta
Esp8266 -pohjainen tehostusmuunnin hämmästyttävällä Blynk -käyttöliittymällä, jossa on palautesäädin: Tässä projektissa näytän sinulle tehokkaan ja yleisen tavan DC -jännitteiden lisäämiseen. Näytän sinulle, kuinka helppoa voi olla tehostusmuuntimen rakentaminen Nodemcun avulla. Rakennetaan se. Se sisältää myös näytön volttimittarin ja palautteen
ESP32 -liitäntä, jossa on SSD1306, jossa on MicroPython: 5 vaihetta
ESP32 -liitäntä SSD1306: lla, jossa on MicroPython: Mikropython on pythonin optimoima ja pieni jalanjälki. Mikropython on saatavana monille ohjainperheille, mukaan lukien ESP8266, ESP32, Ardui
Arduboy -klooni, jossa Arduino Nano ja I2C Oled -näyttö: 3 vaihetta
Arduboy -klooni Arduino Nano- ja I2C Oled -näytöllä: Halpa versio Arduboy -kloonista, jolla voit pelata useita alkuperäisiä Arduboy -pelejä
128x64 keltainen/sininen OLED Arduino Nano -laitteelle, jossa TSL2591: 3 vaihetta
128x64 keltainen/sininen OLED Arduino Nano -laitteelle, TSL2591: Voit rakentaa OLED -näytön Arduino Nano -laitteeseen TSL2591 -spektroskooppisella anturilla (no, kaksi kanavaa - visuaalinen ja NIR …) yhdistämällä luonnosesimerkkejä verkossa. Saat 4-rivisen näytön kokonaisvirrasta, visuaalisesta virrasta, NIR: stä ja indeksilaskurista