Sisukord:

Arduino kitarri pistikupesa võtmehoidja Jack -äratundmise ja OLED -iga: 7 sammu
Arduino kitarri pistikupesa võtmehoidja Jack -äratundmise ja OLED -iga: 7 sammu

Video: Arduino kitarri pistikupesa võtmehoidja Jack -äratundmise ja OLED -iga: 7 sammu

Video: Arduino kitarri pistikupesa võtmehoidja Jack -äratundmise ja OLED -iga: 7 sammu
Video: Как сделать сенсорный выключатель из обычного, используя простой контроллер TTP223 2024, Juuli
Anonim
Image
Image
Arduino kitarri pistikupesa võtmehoidja Jack -äratundmise ja OLED -iga
Arduino kitarri pistikupesa võtmehoidja Jack -äratundmise ja OLED -iga

Sissejuhatus:

See juhend annab üksikasjaliku ülevaate minu Arduino põhise Guitar Jack pistikprogrammi võtmehoidja ehitamisest

See on minu esimene õpetatav, nii et palun olge minuga, sest võin sellel teel muudatusi / värskendusi teha

Samm: osad ja tööriistad

Osad ja tööriistad
Osad ja tööriistad
Osad ja tööriistad
Osad ja tööriistad
Osad ja tööriistad
Osad ja tööriistad

Enamik osi, mille ostsin saidilt Amazon.co.uk või eBay, mõned olid mul juba käimas - siin on nimekiri sellest, mida vajate.

Amazoni lingid on kõik sidusettevõtte lingid, võib -olla leiate mujalt odavamaid - ma kasutan palju Amazon Prime'i, nii et Amazon lihtsalt juhtus olema minu valik.

Tahtsin hoida selle ehitise üsna odavate ja eelarvesõbralikena. Soovi korral võite kasutada suuremat TFT -ekraani, aga ka teist Arduino. Ärge kasutage NANO -d, kuna see võib suure mälu kasutamise tõttu kokku kukkuda. Kood kasutab umbes 72% Pro Micro RAM -ist ja on stabiilne, kuid testimisel kukub NANO kokku ja külmub.

(Lisateavet leiate koodietapist.)

OSAD

1x Arduino Pro Micro -

1x 0,96 OLED kollase ja sinise ekraaniga -

4x WS2812 'Pikslid' -

1x DS3231 RTC -

4x 1/4 Mono Jack (või nii palju kui soovite) - Amazon (kuld) või Amazon (hõbe) või eBay.co.uk

1x segatakistuse pakett -

4x 1/4 kitarripesad -

1x mikro -USB -kaabli pikenduskaabel -

4x M3 kruvi

TÖÖRIISTAD JA MATERJALID

- jootekolb (selle ostsin - TS100 - kuna sellega kaasnesid täiendavad näpunäited

- jootet

- Kuumliimipüstol (https://amzn.to/2UTd9PN)

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

- Traadi lõikurid/eemaldajad (https://amzn.to/2KzqUzp)

- 3D -printer või 3D -printimisteenus

VALIKULINE - need üksused on valikulised, sõltuvalt sellest, kuidas soovite kõik ühendada

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

- kruviklemmliidesed (2 -pooluseline | 3 -pooluseline | 4 -pooluseline)

- PCB päised (https://amzn.to/2X7RjWf)

Samm: korpuse 3D -printimine

Korpuse 3D printimine
Korpuse 3D printimine
Korpuse 3D printimine
Korpuse 3D printimine
Korpuse 3D printimine
Korpuse 3D printimine
Korpuse 3D printimine
Korpuse 3D printimine

Trükkisin oma oma Creality CR-10S-ile, kasutades musta PLA+ (https://amzn.to/2X2SDtE)

Trükkisin 0,2 kihi kõrgusel, 25% täidisega.

Samm: kõik kokku panemine + skeem

Kõik kokku pannes + skeem
Kõik kokku pannes + skeem
Kõik kokku pannes + skeem
Kõik kokku pannes + skeem
Kõik kokku pannes + skeem
Kõik kokku pannes + skeem
Kõik kokku pannes + skeem
Kõik kokku pannes + skeem

See, kuidas te oma Arduino ühendate, on täielikult teie otsustada - ma isiklikult otsustasin end nii -öelda kilbiks teha. Kilbi valmistamiseks olen joondanud naissoost päised veroboardile, et need sobiksid Pro Microga, seejärel lisasin vastassuunas +5v ja GND rööpa. Olen kasutanud hüppajatraati, et ühendada +5v oma praeguse 5v rööpaga, ja tegin sama ka GND puhul. Seejärel lisasin oma 4x 100k takistid, mille üks ots oli kõigi jaoks ühendatud +5v -ga ja teine pool ühendas vastavalt A0, A1, A2 ja A3. Seejärel olen lisanud kruviklemmid analoogpistikutele A0, A1, A2 ja A3 ning ka tihvtidele 2 (SDA), 3 (SCL) ja 4

Mõõtke oma juhtmestik ja lõigake sobiva pikkusega. Alustasin esmalt WS2812 pikslite LED -idega - ESIMENE WS2812 LED ühendub +5v -ga Arduino'st, GND -ga Arduino -st ja DIN ühendatakse tihvtiga 4. Pärast seda on ülejäänud 3 aheldatud, aheldades kõik 5v> 5v, GND> GND tihvtid ja DOUT ühest pikslist, ühendub järgmise DIN -iga. Kui need on joodetud, suruge need õrnalt ülaosas asuvatesse ruudukujulistesse aukudesse ja asetage kuum liim kohale ning kaitske tagaosa ka juhuslike ühenduste või lühikeste punktide eest.

Pärast valgusdioode keerasin Guitar Jacki pistikupesad sisse. Üks tihvt ühendatakse GND -ga ja seejärel ühendatakse iga teine tihvt vastavalt A0, A1, A2 ja A3 -ga. See on pistikupesa 1, kuni A0, pesa 2 kuni A1, pesa 3 kuni A2 ja pistikupesa 4 kuni A3.

Järgmisena jootsin OLED -ühenduste juurde 4 juhtmest ja kärpisin üleliigse joodise nii palju kui võimalik. Soovite juhtmed ekraani tagant kinnitada, nii et joote ekraani esiosa külge.

Pöörake tähelepanu tihvtidele! Mõnel OLED -il on GND väljastpoolt, seejärel VCC, mõnel väljast VCC ja seejärel GND

Kui olete jootnud ja jooteühenduse nii palju kui võimalik kärpinud või lamestanud, vajutage ekraan õrnalt selle asukohta. See on disainilt pisut kitsas, kuid pidage meeles, et erinevad printimistolerantsid võivad seda mõjutada ja seetõttu peate selle sobitamiseks tegema mõningaid väiksemaid järeltöötlusi. Kui see on paigas, asetage kuum liim igale 4 nurgale, et see paigal püsiks.

Ühendage kõik, et see vastaks skeemile ja piltidele, ja kui olete õnnelik, saate seejärel ka Pro Micro ja RTC kella kuumliimiga oma kohale liimida ja seejärel ühendada USB -laiendus Pro Microga.

Kasutasin mikro -USB -pikendust, et a) USB -d saaks kasutada toiteallikaks, kuid veelgi enam, b) nii, et oleks võimalik vajadusel Pro Micro ümber programmeerida, ilma et peaksite kõike lahti võtma

Kui olete õnnelik, keerake korpus 4 kruvi abil kokku

Samm: pistikud

Pistikud!
Pistikud!
Pistikud!
Pistikud!
Pistikud!
Pistikud!

See toimib nii, et osa kavandist töötab kõikidel eesmärkidel "oommeetrina". Oommeeter on seade elektrilise takistuse mõõtmiseks. Enamikul multimeetritel on see funktsioon, mille abil saate valida skaala ja seejärel mõõta takisti selle väärtuse leidmiseks. Tööpõhimõte seisneb selles, et ühendate TUNNETUD takisti +ve -ga, mis seejärel ühendatakse TUNDMATA takistiga, mis ühendab -ve. Kahe takisti vaheline ühendus ühendatakse Arduino analoogpistikuga, et see saaks lugeda pinget ja arvutada takistuse.

See töötab nagu pingejagur ja arvutab tundmatu takisti takistuse.

Takistite R1 ja R2 pingejaotusvõrgustikuna

Vout = Vin * R2 / (R1 + R2) - me kasutame oma tuntud (R1) takisti jaoks 100k. See annab meile "pingelanguse"

Sellest saame nüüd välja töötada tundmatu (R2) takisti takistuse, R2 = Vout * R1 / (Vin - Vout) - kus R1 on meie 100k (100 000 oomi) takisti

Kasutades erinevat takisti igas soovitud pistikupesas, saate koodi vastavalt kasutatavast pistikust vastavalt reguleerida.

Ma kasutan 4 pistikut. Ma otsustasin kasutada:

Tuntud takisti (x4) - 100k

Pistikupesa 1 - 5,6 tuhat

Pistikupesa 2-10k

Pistikupesa 3 - 22k

Pistikupesa 4 - 39k

Loomulikult saate seda laiendada ja kodeerida nii palju kui soovite.

Samm: kood

Kood
Kood

Esiteks vajate Arduino IDE -d, mis on saadaval siit:

Samuti peate veenduma, et teil on ka paar Arduino raamatukogu:

Adafruit NeoPixel:

u8g2:

Adafruit RTCLib:

Adafruit SleepyDog (valikuline):

Märkus õige "Arduino" tahvli valimise kohta. Algselt alustasin seda projekti Arduino Nanoga, sest need on Ühendkuningriigis väga odavad, umbes 3–4 naela või AliExpressist ostes juba 1,50 naela (kuid ärge unustage 30–50 päeva oodata)). Nano probleem on see, et selle SRAM on 2 KB (2048 baiti). See visand kasutab 1728 baiti dünaamilist mälu koos globaalsete muutujatega. See on 84% SRAM -ist, jättes kohalikele muutujatele vaba ainult 320 baiti. See oli ebapiisav ja pani Nano kinni ja külmuma.

Pro Mikrol (Leonardo) on 2,5K SRAM (2560 baiti), mis tähendab, et kohalike muutujate jaoks on vaba 694 baiti (visand kasutab 72% Pro Micro SRAM -ist). Siiani on see osutunud minu jaoks täiesti piisavaks ja stabiilseks. Kui kavatsete kasutada palju pistikupesasid, võiksite kaaluda midagi, milles on rohkem SRAM -i.

Mis puutub välkmälusse, siis see visand kasutab 88% (25252 baiti) 30k (ATMega328p [Nano] ja ATMega32u4 [Pro Micro] on mõlemad 32k, kuid 2k on reserveeritud alglaadurile)

Olen aastate jooksul kirjutanud sadu Arduino visandeid, kuid olen harrastaja - seega pidage meeles, et mõned koodi osad võivad olla ebaefektiivsed või on olemas „paremaid viise selle tegemiseks”. Nagu öeldud, töötab see minu jaoks ideaalselt ja olen sellega rahul. Kasutasin raamatukogusid, mis PEAKSID töötama enamikul tahvlitel, olgu see siis AVR (kõige põhilisem Arduino) või SAMD21 (mul on käputäis Cortex M0 seadmeid)

Tahtsin ka kasutatava pistiku põhjal kuvada teistsuguse graafika. Kui soovite ise teha, on see suurepärane lihtne juhend selle kohta, kuidas luua C -massiivi selle kuvariga kasutatavate piltide jaoks.

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

Kasutage oma graafika jaoks kindlasti programmi PROGMEM. Nt:

staatiline const märkimata märk YOUR_IMAGE_NAME PROGMEM = {}

Disaini järgi "ekraanil" aegub "5 sekundi pärast ja naaseb aja kuvamisele.

Enamiku sätetest leiate menüüst Seaded.h, täpsemalt on siin ühendatud pistikupesade nimi kodeeritud:

#define PLUG1 "KEYS"

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

Muutujate sees on ka mõned olulised koodi osad. H

ujuk R1 = 96700,0;

ujuk R2 = 96300,0; ujuk R3 = 96500,0; ujuk R4 = 96300,0;

Need on kõigi 4 takisti teadaolevad takistuste väärtused oomides.

R1 on ühendatud A0, R2 kuni A1, R3 kuni A2 ja R4 kuni A3.

Soovitatav on mõõta oma 100 000 takisti multimeetri abil ja kasutada takisti täpset väärtust. Mõõtke takisti, kui kõik on ühendatud. (Kuid pole sisse lülitatud).

Pistikupesade takistite valimisel veenduge, et nende vahel oleks hea oomi vahe, ja kodeerides andke endale kena vahemik, mis on madalam ja kõrgem kui teie valitud takisti. Siin on see, mida ma oma koodis kasutasin:

ujuk P1_MIN = 4000,0, P1_MAX = 7000,0; // 5,6K

ujuk P2_MIN = 8000,0, P2_MAX = 12000,0; // 10K ujuk P3_MIN = 20000,0, P3_MAX = 24000,0; // 22K ujuk P4_MIN = 36000,0, P4_MAX = 42000,0; // 39K

Selle põhjuseks on analoognäidu ja väikeste pinge kõikumiste jms arvestamine

Mis juhtub, on see, et kui tuvastatud takistus on vahemikus 4000 oomi kuni 7000 oomi, eeldame, et olete kasutanud 5,6 k takistit ja seega näeb kood seda pistikupesana 1. Kui mõõdetud takistus on vahemikus 8000 oomi ja 12000 oomi, eeldatakse, et see on 10k takisti ja on Jack Plug 2 jne.

Kui teil on vaja silumist teha (ärge jätke tootmises kommenteerimata, kuna seeria silumine kulutab väärtuslikku rammi), tühistage lihtsalt seadete ülaosas vajalikud read. H

//#define SERIAL_DEBUG

//#define WAIT_FOR_SERIAL

Eemaldamiseks eemaldage lihtsalt //…. rea tagasikommenteerimiseks lisage uuesti // rea rea ette.

SERIAL_DEBUG võimaldab seeria silumist ja selliste asjade kasutamist nagu (näiteks)

Serial.println (F ("tere maailm"));

WAIT_FOR_SERIAL on täiendav samm, mis tähendab, et kuni seeriamonitori avamiseni kood ei jätku. See aitab tagada, et te ei jäta ühtegi olulist jadasõnumit vahele. - ÄRGE KUNAGI JÄTKE SEDA LUBATUD

Kui jätate WAIT_FOR_SERIAL lubatuks, ei saa te oma võtmehoidjat üheski reaalse maailma keskkonnas kasutada, kuna see jääb Arduino IDE seeriamonitori ootama, enne kui see saab visandi põhiahelasse jätkuda. Kui olete silumise lõpetanud, tühistage see rida uuesti ja laadige eskiis uuesti tootmiseks/lõpetamiseks üles.

Kui kasutate suvandit SERIAL_DEBUG, sisaldab minu kood järgmist:

#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]); jaoks (int i = 0; i <len; i ++) {Serial.print (F ("SOCKET_1234_HAS_PLUGTYPE_X [")); Seeriatrükk (i); Seeria.print (F ("] =")); Serial.println (SOCKET_1234_HAS_PLUGTYPE_X ); } Serial.println (); if (INSERTED [socket]) {Serial.print (F ("Plug in socket")); Serial.print (pesa+1); Serial.print (F ("resitants on:")); Serial.println (vastupanu); } #endif

Viimane rida Serial.print näitab teile, milline on viimati sisestatud pistiku takistus oomides. Nii et saate seda visandit kasutada ka omamoodi oommeetrina, et kontrollida pistikupesa takistust.

6. samm: märkmed

Ma arvan, et olen kõike kajastanud, aga palun kommenteerige ja annan endast parima, et lugeda ja vastata, kui saan:)

Vabandan mõnevõrra kehva video pärast - mul pole statiivi, ümberkodeerimise seadistust ega nii -öelda korralikku tööruumi, nii et see filmiti (halvasti), hoides telefoni ühes käes ja proovides seda teisega demo teha.

Täname lugemise eest.

Soovitan: