Përmbajtje:

Mbajtës i çelësit të Arduino për kitarë me Jack dhe njohje OLED: 7 hapa
Mbajtës i çelësit të Arduino për kitarë me Jack dhe njohje OLED: 7 hapa

Video: Mbajtës i çelësit të Arduino për kitarë me Jack dhe njohje OLED: 7 hapa

Video: Mbajtës i çelësit të Arduino për kitarë me Jack dhe njohje OLED: 7 hapa
Video: #21 Ведущий регистр временного хранения Modbus Чтение/Запись | Внешний ПЛК Arduino 2024, Korrik
Anonim
Image
Image
Arduino Mbajtës i Çelësit të Kitarës me Jack Me Njohje Jack & OLED
Arduino Mbajtës i Çelësit të Kitarës me Jack Me Njohje Jack & OLED

Hyrje:

Ky udhëzues do të detajojë ndërtimin e mbajtësit të çelësit të shtojcës sime të bazuar në Arduino

Ky është udhëzimi im i parë ndonjëherë, kështu që ju lutemi duroni me mua pasi mund të bëj ndryshime / azhurnime gjatë rrugës

Hapi 1: Pjesët dhe mjetet

Pjesë & Mjete
Pjesë & Mjete
Pjesë & Mjete
Pjesë & Mjete
Pjesë & Mjete
Pjesë & Mjete

Shumica e pjesëve që bleva nga Amazon.co.uk ose eBay, disa i kisha nisur tashmë - Këtu është një listë e asaj që ju nevojitet.

Lidhjet e Amazon janë të gjitha lidhje Affiliate, ju mund të jeni në gjendje të gjeni më lirë në vende të tjera - unë e përdor Amazon Prime shumë, kështu që Amazon thjesht u bë hapi im.

Doja ta mbaja këtë ndërtesë mjaft kosto të ulët dhe miqësore me buxhetin. Ju mund të përdorni një ekran më të madh TFT sipas dëshirës tuaj, si dhe një Arduino tjetër. Mos përdorni një NANO, pasi do të rrëzohet për shkak të përdorimit të lartë të kujtesës. Kodi përdor rreth 72% të RAM -it të Pro Micro dhe është i qëndrueshëm, por nga testimi, një NANO do të rrëzohet dhe ngrijë.

(Më shumë detaje në hapin e Kodit.)

PJES

1x Arduino Pro Micro -

1x 0.96 OLED me ekran të verdhë dhe blu -

4x WS2812 'Pixels' -

1x DS3231 RTC -

4x 1/4 Mono Jack (Ose sa të doni) - Amazon (Gold) ose Amazon (Silver) ose eBay.co.uk

Paketa e Rezistencës së Përzier -

4x 1/4 Priza kitare -

1x Kabllo shtesë për kabllon Micro USB -

4x vida M3

MJETET & MATERIALET

- Hekur për saldim (Ky është ai që kam blerë - një TS100 - siç erdhi me këshilla shtesë

- Saldator

- Armë me ngjitës të nxehtë (https://amzn.to/2UTd9PN)

- Tela (https://amzn.to/2VK2ILU)

- Prerës/zhveshës telash (https://amzn.to/2KzqUzp)

- Shërbimi i Printerit 3D ose Printimit 3D

OPSIONALE - Këta artikuj janë opsionalë, në varësi të mënyrës se si zgjidhni të lidhni gjithçka

- Veroboard/Stripboard (https://amzn.to/2KzMFPE)

- Lidhëset e Terminalit të Vidhave (2 Pol | 3 Pol | 4 Pol)

- Kokat e PCB (https://amzn.to/2X7RjWf)

Hapi 2: Shtypja 3D e Rastit

Shtypja 3D e Rastit
Shtypja 3D e Rastit
Shtypja 3D e Rastit
Shtypja 3D e Rastit
Shtypja 3D e Rastit
Shtypja 3D e Rastit
Shtypja 3D e Rastit
Shtypja 3D e Rastit

Unë e printova timen në Creality CR-10S, duke përdorur Black PLA+ (https://amzn.to/2X2SDtE)

Shtypja në lartësinë 0.2 shtresë, me mbushje 25%.

Hapi 3: Vendosja e të gjitha së bashku + Skematike

Vendosja e të gjitha së bashku + Skematike
Vendosja e të gjitha së bashku + Skematike
Vendosja e të gjitha së bashku + Skematike
Vendosja e të gjitha së bashku + Skematike
Vendosja e të gjitha së bashku + Skematike
Vendosja e të gjitha së bashku + Skematike
Vendosja e të gjitha së bashku + Skematike
Vendosja e të gjitha së bashku + Skematike

Si të zgjidhni të lidhni Arduino -n tuaj varet plotësisht nga ju - unë personalisht zgjodha ta bëja veten një "mburojë" të them kështu. Për të bërë mburojën, kam bashkuar titujt femra në veroboard për t'u përputhur me Pro Micro, pastaj shtova një shirit prej +5v dhe GND, në skajet e kundërta. Unë kam përdorur tela bluzë për të lidhur +5v me hekurudhën time tani 5v, dhe bëra të njëjtën gjë për GND. Pastaj shtova rezistencat e mia 4x 100k, një skaj i lidhur me +5v për të gjithë, dhe pastaj ana tjetër lidhet përkatësisht me A0, A1, A2 & A3. Unë pastaj kam shtuar terminalet e vidave në kunjat analoge A0, A1, A2 & A3 dhe gjithashtu kunjat 2 (SDA), 3 (SCL) & 4

Matni instalimet elektrike dhe prerë në gjatësinë e duhur. Fillova me LED -et e Pixel WS2812 së pari - LED i PARST WS2812 lidhet me +5v nga Arduino, GND nga Arduino dhe DIN lidhet me Pin 4. Pas kësaj, 3 të tjerat lidhen me zinxhirë së bashku, duke lidhur të gjitha 5v> 5v, GND> GND kunjat dhe DOUT nga një Pixel, lidhet me DIN të tjetrit. Pasi të jenë ngjitur, Shtypini këto butësisht në vrimat katrore në pjesën e sipërme, dhe ngjitini nxehtë në vend dhe gjithashtu për të mbrojtur pjesën e pasme nga çdo lidhje aksidentale ose pantallona të shkurtra.

Pas LEDs, unë pastaj vidhos në prizat e Guitar Jack. Një kunj i secilës lidhet me GND, dhe pastaj kunja e dytë e secilës lidhet me A0, A1, A2 & A3 në përputhje me rrethanat. Pra, kjo është Foleja 1, në A0, Foleja 2 në A1, Foleja 3 në A2 dhe Foleja 4 në A3.

Tjetra bashkova 4 tela në lidhjet OLED dhe shkurtova çdo saldim të tepërt sa më shumë që të ishte e mundur. Ju dëshironi të lidhni telat nga pjesa e pasme e ekranit, kështu që jeni duke u ngjitur në pjesën e përparme të ekranit.

Kushtojini vëmendje kunjave! Disa OLED kanë GND nga jashtë, pastaj VCC, disa kanë VCC nga jashtë, dhe pastaj GND

Pasi të jeni ngjitur dhe të keni shkurtuar ose rrafshuar lidhjen e saldimit sa më shumë që të jetë e mundur, shtypni butësisht ekranin në vendndodhjen e tij. Designshtë disi një përshtatje e ngushtë sipas modelit, por ki parasysh se tolerancat e ndryshme të printimit mund të ndikojnë në këtë dhe kështu mund të të duhet të bësh disa post-përpunime të vogla për ta përshtatur atë. Pasi të jetë vendosur, vendosni pak zam të nxehtë në secilën prej 4 qosheve për ta mbajtur atë në vend.

Lidhni gjithçka që të përputhet me Skemën dhe fotografitë, dhe pasi të jeni të lumtur, atëherë mund të ngjitni nxehtë edhe Pro Micro dhe RTC Clock në vend, dhe pastaj lidhni shtesën USB me Pro Micro.

Kam përdorur një shtesë mikro USB në mënyrë që a) USB të mund të përdoret për të siguruar energji, por më shumë, b) në mënyrë që të ishte e mundur të riprogramoni Pro Micro nëse është e nevojshme pa i tërhequr të gjitha

Pasi të jeni të lumtur, vidhoseni kasën së bashku duke përdorur 4 vida

Hapi 4: Prizat

Prizat!
Prizat!
Prizat!
Prizat!
Prizat!
Prizat!

Mënyra se si funksionon kjo është se, për të gjitha qëllimet dhe qëllimet, një pjesë e dizajnit funksionon si një "ohmmetër". Ohmmetri është një instrument për matjen e rezistencës elektrike. Shumica e Multimetrave kanë këtë funksion ku ju zgjidhni shkallën dhe pastaj matni një rezistencë për të gjetur vlerën e saj. Parimi i punës është që ju të lidhni një rezistencë të NJOHUR me +ve, e cila më pas lidhet me një rezistencë të panjohur, e cila lidhet me -ve. Lidhja midis 2 rezistencave lidhet me kunjin analog Arduino në mënyrë që të mund të lexojë tensionin dhe të llogarisë rezistencën.

Punon si një ndarës i tensionit dhe llogarit rezistencën e rezistencës së panjohur.

Si një rrjet ndarës i tensionit të rezistorëve R1 dhe R2, Vout = Vin * R2 / (R1 + R2) - Ne po përdorim 100k për rezistencën tonë të njohur (R1). Kjo na jep "rënien e tensionit"

Nga kjo, ne tani mund të përpunojmë rezistencën e rezistencës së panjohur (R2), R2 = Vout * R1 / (Vin - Vout) - ku R1 është rezistenca jonë 100k (100, 000 ohm)

Duke përdorur një rezistencë të ndryshme në secilën prizë që dëshironi të përdorni, atëherë mund të rregulloni kodin në përputhje me rrethanat në varësi të prizës në përdorim.

Unë jam duke përdorur 4 priza prizë. Zgjodha të përdor:

Rezistencë e njohur (x4) - 100k

Priza Jack 1 - 5.6k

Jack Plug 2 - 10k

Jack Plug 3 - 22k

Jack Plug 4 - 39k

Sigurisht që mund ta zgjeroni këtë dhe të kodoni sa më shumë që dëshironi.

Hapi 5: Kodi

Kodi
Kodi

Së pari, do t'ju duhet Arduino IDE, e disponueshme nga këtu:

Ju gjithashtu do të duhet të siguroheni që keni edhe disa Biblioteka Arduino:

Adafruit NeoPixel:

u8g2:

Adafruit RTCLib:

Adafruit SleepyDog (Opsionale):

Një shënim për zgjedhjen e tabelës së duhur "Arduino". Fillimisht e fillova këtë projekt me një Arduino Nano, sepse ato janë super të lira me rreth £ 3 £ 4 në Mbretërinë e Bashkuar, ose aq pak sa 1.50 £ nëse blini nga AliExpress (por mos e shqetësoni pritjen 30-50 ditë) Problemi me Nano është se SRAM -i i tij është 2 KB (2048 bajt). Kjo skicë përdor 1728 bajt të kujtesës dinamike me Ndryshore Globale. Kjo është 84% e SRAM, duke lënë vetëm 320 bajt të lirë për ndryshoret lokale. Kjo ishte e pamjaftueshme dhe do të bënte që Nano të mbyllej dhe ngrijë.

Pro Micro (Leonardo) ka 2.5K SRAM (2560 bajt), që do të thotë se ka 694 bajt falas për ndryshoret lokale (Skica përdor 72% të SRAM -it të Pro Micro). Deri më tani kjo është provuar krejtësisht e përshtatshme dhe e qëndrueshme për përdorimin tim. Nëse keni ndërmend të përdorni shumë priza fole, atëherë mund të dëshironi të merrni parasysh përdorimin e diçkaje me më shumë SRAM.

Sa i përket ruajtjes Flash, kjo skicë përdor 88% (25252 bytes) prej 30k (ATMega328p [Nano] dhe ATMega32u4 [Pro Micro] të dyja kanë 32k, por 2k janë të rezervuara për ngarkuesin e nisjes)

Kam shkruar qindra skica Arduino gjatë viteve, por unë jam një hobiist - kështu që mbani në mend se disa pjesë të kodit mund të jenë joefikase ose mund të ketë skenarë "mënyra më të mira për ta bërë këtë". Duke u thënë kështu, po funksionon në mënyrë perfekte për mua dhe jam i kënaqur me të. Kam përdorur biblioteka që DUHET të punojnë në shumicën e tabelave, pavarësisht nëse është AVR (Arduino më themelore) ose SAMD21 (kam një grusht pajisje Cortex M0)

Doja të shfaqja një grafik të ndryshëm bazuar në folenë e përdorur gjithashtu. Nëse dëshironi të bëni tuajin, ky është një udhëzues i thjeshtë brilant se si të krijoni C Array për imazhet që do të përdoren me këtë ekran:

sandhansblog.wordpress.com/2017/04/16/interfacing-displaying-a-custom-graphic-on-an-0-96-i2c-oled/

Sigurohuni që të përdorni PROGMEM për grafikat tuaja. P.sh.:

konstant statik nënshkrues char YOUR_IMAGE_NAME PROGMEM = {}

Sipas modelit, ekrani do të "përfundojë" pas 5 sekondash dhe do të kthehet në shfaqjen e kohës.

Shumica e Cilësimeve mund të gjenden në Cilësimet. H, konkretisht, emri i prizave të lidhura të krikave kodohet këtu:

#define PLUG1 "ÇELEYSIT"

#define PLUG2 "P2" #define PLUG3 "P3" #define PLUG4 "P4" #define GENERIC "NA"

Ekzistojnë gjithashtu disa pjesë të rëndësishme të kodit brenda Variablave.h

noton R1 = 96700.0;

noton R2 = 96300.0; noton R3 = 96500.0; noton R4 = 96300.0;

Këto janë vlerat e njohura të rezistencës, në ohms, të secilit prej 4 rezistorëve.

R1 i lidhur me A0, R2 me A1, R3 me A2 dhe R4 me A3.

Këshillohet që të matni rezistencën tuaj 100k duke përdorur një multimetër dhe të përdorni vlerën e saktë të rezistencës. Merrni matjen e rezistencës pasi të jetë lidhur gjithçka. (Por jo i ndezur).

Kur zgjidhni rezistorë për prizat tuaja, sigurohuni që ka një hendek të mirë ohm midis tyre, dhe kur i kodoni ato, jepini vetes një gamë të bukur më të ulët dhe më të lartë se rezistenca juaj e zgjedhur. Këtu është ajo që kam përdorur në kodin tim:

noton P1_MIN = 4000.0, P1_MAX = 7000.0; // 5.6K

noton P2_MIN = 8000.0, P2_MAX = 12000.0; // 10K noton P3_MIN = 20000.0, P3_MAX = 24000.0; // 22K noton P4_MIN = 36000.0, P4_MAX = 42000.0; // 39K

Arsyeja për këtë është të merret parasysh leximi analog dhe luhatjet e vogla të tensionit, etj

Pra, ajo që ndodh është, nëse rezistenca e zbuluar është midis 4000 Ohm dhe 7000 Ohm, ne supozojmë se keni përdorur një rezistencë 5.6k dhe kështu kodi do ta shohë këtë si Jack Plug 1. Nëse rezistenca e matur është midis 8000 Ohm dhe 12000 ohms, supozimi është se është një rezistencë 10k dhe është Jack Plug 2 e kështu me radhë.

Nëse keni nevojë të bëni disa korrigjime (Mos lini të komentuar në 'prodhim' pasi korrigjimi serik përdor dash të çmuar) thjesht mos komentoni linjat që ju nevojiten në krye të Cilësimeve. H

//#përcakto SERIAL_DEBUG

//#përcakto Pritjen_FOR_SERIAL

Për të mos komentuar, hiqni thjeshtë //…. për të komentuar rreshtin përsëri, shtoni përsëri // në pjesën e përparme të rreshtit.

SERIAL_DEBUG mundëson korrigjimin serik dhe përdorimin e gjërave të tilla si (për shembull)

Serial.println (F ("përshëndetje botë"));

WAIT_FOR_SERIAL është një hap shtesë, që do të thotë, derisa të hapni Monitorin Serial, kodi nuk do të vazhdojë. Kjo ju ndihmon të siguroheni që të mos humbisni asnjë mesazh serial të rëndësishëm. - KURR mos e lini këtë të mundësuar

Nëse e lini WAIT_FOR_SERIAL të aktivizuar, nuk do të jeni në gjendje të përdorni mbajtësen tuaj të çelësit në çdo mjedis të "botës reale", pasi do të ngecë duke pritur për monitorin Serial Arduino IDE para se të mund të vazhdojë në lakin kryesor të skicës. Pasi të keni përfunduar korrigjimin tuaj, sigurohuni që të mos e komentoni përsëri këtë linjë dhe të ngarkoni përsëri skicën tuaj për prodhim/përfundim.

Kur përdorni opsionin SERIAL_DEBUG, kodi im përmban sa vijon:

#ifdef SERIAL_DEBUG

Serial.print (F ("JACK AKTIV =")); Serial.println (ACTIVE_JACK); int len = madhësia (SOCKET_1234_HAS_PLUGTYPE_X)/madhësia (SOCKET_1234_HAS_PLUGTYPE_X [0]); për (int i = 0; i <len; i ++) {Serial.print (F ("SOCKET_1234_HAS_PLUGTYPE_X [")); Serial.print (i); Serial.print (F ("] =")); Serial.println (SOCKET_1234_HAS_PLUGTYPE_X ); } Serial.println (); nëse (INSERTED [fole]) {Serial.print (F ("Plug in socket")); Serial.print (fole+1); Serial.print (F ("ka një rezistencë prej:")); Serial.println (rezistenca); } #endif

Linja e fundit Serial.print do t'ju tregojë se cila është rezistenca, në ohms, e prizës së fundit të futur. Kështu që ju gjithashtu mund ta përdorni këtë skicë si një ohmmetër të llojit për të kontrolluar rezistencën e një prize foleje.

Hapi 6: Shënime

Unë mendoj se kam mbuluar gjithçka, por ju lutem komentoni dhe unë do të bëj çmos për të lexuar dhe përgjigjur kur të mundem:)

Kërkoj falje për videon disi të dobët - nuk kam një trekëmbësh, rregullim të koduar ose një hapësirë të përshtatshme pune, për të thënë kështu, kjo u filmua (keq) duke mbajtur telefonin në njërën dorë dhe duke u përpjekur ta demonstrojë atë me dorën tjetër.

Faleminderit per leximin.

Recommended: