INHOUDSOPGAWE:
- Stap 1: Onderdele en gereedskap
- Stap 2: 3D -afdruk van die saak
- Stap 3: Alles saam + skematies
- Stap 4: Die proppe
- Stap 5: Die kode
- Stap 6: Notas
- Stap 7: Wysigingslys
Video: Arduino kitaarhouer vir sleutelhouers met jackherkenning en OLED: 7 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:26
Inleiding:
Hierdie instruksies bevat 'n uiteensetting van die bou van my sleutelbordhouer vir die inprop van die Guitar Jack in Arduino
Dit is die eerste keer dat ek dit kan leer, so hou my in gedagte, want ek kan veranderings / opdaterings maak
Stap 1: Onderdele en gereedskap
Die meeste van die onderdele wat ek by Amazon.co.uk of eBay gekoop het, het ek alreeds rondgeskop - Hier is 'n lys van wat u benodig.
Amazon -skakels is almal aangeslote skakels; u kan elders goedkoper vind - ek gebruik Amazon Prime baie, so Amazon was my toevlugsoord.
Ek wou hierdie gebou redelik goedkoop en begrotingsvriendelik hou. U kan ook 'n groter TFT -skerm gebruik, sowel as 'n ander Arduino. Moenie 'n NANO gebruik nie, want dit sal vasval as gevolg van hoë geheueverbruik. Die kode gebruik ongeveer 72% van die geheue van die Pro Micro en is stabiel, maar na toetsing val 'n NANO neer en vries.
(Meer besonderhede in die Kode -stap.)
DELE
1x Arduino Pro Micro -
1x 0,96 OLED met geel en blou skerm -
4x WS2812 'Pixels' -
1x DS3231 RTC -
4x 1/4 Mono Jack (of soveel as wat u wil) - Amazon (goud) of Amazon (silwer) of eBay.co.uk
1x gemengde weerstandspak -
4x 1/4 kitaaraansluitings -
1x Verlengkabel vir mikro -USB -kabel -
4x M3 skroewe
GEREEDSKAP & MATERIAAL
- Soldeerbout (dit is die een wat ek gekoop het - 'n TS100 - aangesien dit kom met ekstra wenke
- Soldeer
- Warmlijmpistool (https://amzn.to/2UTd9PN)
- Draad (https://amzn.to/2VK2ILU)
- Draadknipers/-stroppers (https://amzn.to/2KzqUzp)
- 3D -drukker of 3D -drukdiens
OPSIONEEL - Hierdie items is opsioneel, afhangende van hoe u besluit om alles aan te sluit
- Veroboard/Stripboard (https://amzn.to/2KzMFPE)
- Skroefklemverbindings (2 -polig | 3 -polig | 4 -polig)
- PCB -kopstukke (https://amzn.to/2X7RjWf)
Stap 2: 3D -afdruk van die saak
Ek het myne op my Creality CR-10S gedruk met Black PLA+ (https://amzn.to/2X2SDtE)
Ek het op 0,2 laaghoogte gedruk, met 25% vulsel.
Stap 3: Alles saam + skematies
Hoe u kies om u Arduino aan te sluit, is heeltemal aan u - ek het persoonlik gekies om myself so te sê 'n 'skild' te maak. Om die skild te maak, het ek vroulike kopstukke aan die boord gesoldeer om by die Pro Micro te pas, en ek het 'n reling van +5v en GND aan die teenoorgestelde kante bygevoeg. Ek het jumperdraad gebruik om die +5v aan my nou 5v 'rail' te koppel, en het dieselfde gedoen vir die GND. Ek het toe my 4x 100k -weerstande bygevoeg, die een kant gekoppel aan +5v vir almal, en dan verbind die ander kant met onderskeidelik A0, A1, A2 en A3. Ek het toe skroefaansluitings by analoog penne A0, A1, A2 en A3 en ook penne 2 (SDA), 3 (SCL) & 4
Meet u bedrading en sny dit op die regte lengtes. Ek het eers met die WS2812 Pixel LED's begin - die EERSTE WS2812 LED skakel met +5v van die Arduino, GND van die Arduino en DIN word verbind met Pin 4. Hierna word die oorblywende 3 aan mekaar vasgeketting, wat al die 5v> 5v verbind, GND> GND -penne en DOUT van die een Pixel, maak verbinding met die DIN van die volgende. Sodra dit gesoldeer is, druk dit saggies in die vierkantige gate aan die bokant, en warm gom op hul plek en ook om die agterkant te beskerm teen toevallige verbindings of kortbroek.
Na die LED's het ek die Guitar Jack Sockets ingeskroef. Een pen van elkeen sluit aan by GND, en dan verbind die tweede pen van elkeen A0, A1, A2 en A3 dienooreenkomstig. Dit is Socket 1, na A0, Socket 2 na A1, Socket 3 tot A2 en Socket 4 tot A3.
Daarna het ek 4 drade aan die OLED -verbindings gesoldeer en die oortollige soldeer soveel as moontlik afgesny. U wil u drade aan die agterkant van die skerm heg, sodat u aan die voorkant van die skerm soldeer.
Gee aandag aan die penne! Sommige OLED's het GND aan die buitekant, dan VCC, sommige met VCC aan die buitekant, en dan GND
Sodra dit gesoldeer is en u die soldeeraansluiting soveel as moontlik afgesny of platgedruk het, druk die skerm liggies op die plek. Dit pas effens by die ontwerp, maar wees bewus daarvan dat verskillende afdruktoleransies dit kan beïnvloed, en daarom moet u miskien 'n bietjie na-verwerking doen om dit te pas. Plaas 'n bietjie warm gom oor elke vier hoeke om dit vas te hou.
Koppel alles aan by die skema en foto's, en sodra u gelukkig is, kan u die Pro Micro en RTC -klok ook warm plak, en dan die USB -uitbreiding aan die Pro Micro koppel.
Ek het 'n mikro -USB -uitbreiding gebruik sodat a) die USB gebruik kan word om krag te verskaf, maar meer nog, b) sodat dit moontlik was om die Pro Micro te herprogrammeer sonder om alles uitmekaar te trek
As jy gelukkig is, skroef jy die kas saam met die 4 skroewe
Stap 4: Die proppe
Die manier waarop dit werk, is dat 'n deel van die ontwerp vir alle doeleindes 'n 'ohmmeter' is. 'N Ohmmeter is 'n instrument om elektriese weerstand te meet. Die meeste multimeters het hierdie funksie waardeur u die skaal kies en dan 'n weerstand meet om die waarde daarvan te vind. Die werkende beginsel is dat u 'n KENNE weerstand verbind met die +ve, wat dan gekoppel word aan 'n ONBEKENDE weerstand, wat aansluit by -ve. Die verbinding tussen die 2 weerstande sluit aan op die Arduino analoogpen sodat dit die spanning kan lees en die weerstand kan bereken.
Dit werk soos 'n spanningsverdeler en bereken die weerstand van die onbekende weerstand.
As 'n spanningsverdelersnetwerk van weerstande R1 en R2, Vout = Vin * R2 / (R1 + R2) - Ons gebruik 100k vir ons bekende (R1) weerstand. Dit gee ons die "spanningsval"
Hieruit kan ons nou die weerstand van die onbekende (R2) weerstand uitwerk, R2 = Vout * R1 / (Vin - Vout) - waar R1 ons 100k (100, 000 ohm) weerstand is
Deur 'n ander weerstand te gebruik in elke aansluiting wat u wil gebruik, kan u die kode dienooreenkomstig aanpas, afhangende van die aansluiting wat gebruik word.
Ek gebruik 4 aansluitproppe. Ek het gekies om te gebruik:
Bekende weerstand (x4) - 100k
Jack Plug 1 - 5.6k
Jack Plug 2 - 10k
Jack Plug 3 - 22k
Jack Plug 4 - 39k
U kan dit natuurlik uitbrei en soveel inskryf as wat u wil.
Stap 5: Die kode
Eerstens benodig u die Arduino IDE, hier beskikbaar:
U moet ook seker maak dat u ook 'n paar Arduino -biblioteke het:
Adafruit NeoPixel:
u8g2:
Adafruit RTCLib:
Adafruit SleepyDog (opsioneel):
'N Opmerking oor die keuse van die regte "Arduino" -bord. Oorspronklik het ek hierdie projek begin met 'n Arduino Nano, want dit is baie goedkoop teen ongeveer £ 3-£ 4 in die Verenigde Koninkryk, of so laag as £ 1,50 as u by AliExpress koop (maar let op die 30-50 dae wag)). Die probleem met die Nano is dat die SRAM 2 KB (2048 grepe) is. Hierdie skets gebruik 1728 grepe dinamiese geheue met globale veranderlikes. Dit is 84% van die SRAM, wat slegs 320 grepe gratis oorlaat vir plaaslike veranderlikes. Dit was onvoldoende en sou veroorsaak dat die Nano toesluit en vries.
Die Pro Micro (Leonardo) het 2.5K SRAM (2560 grepe), wat beteken dat daar 694 grepe gratis is vir plaaslike veranderlikes (die skets gebruik 72% van die Pro Micro se SRAM). Tot dusver was dit heeltemal voldoende en stabiel vir my gebruik. As u van plan is om baie aansluitproppe te gebruik, kan u dit oorweeg om iets met meer SRAM te gebruik.
Wat Flash -berging betref, gebruik hierdie skets 88% (25252 grepe) van 30k (die ATMega328p [Nano] en ATMega32u4 [Pro Micro] het albei 32k, maar 2k is gereserveer vir die selflaaiprogram)
Ek het oor die jare al honderde Arduino -sketse geskryf, maar ek is 'n stokperdjie. Hou dus in gedagte dat sommige dele van die kode ondoeltreffend is, of dat daar 'beter' maniere is om dit te doen '. Dit gesê, dit werk perfek vir my en ek is tevrede daarmee. Ek het biblioteke gebruik wat op die meeste borde MOET werk, of dit nou AVR (mees basiese Arduino's) of SAMD21 is (ek het 'n handjievol Cortex M0 -toestelle)
Ek wou 'n ander grafika vertoon, gebaseer op die domkrag wat ook gebruik is. As u u eie wil maak, is dit 'n briljante eenvoudige gids oor hoe u die C -skikking kan skep vir beelde wat met hierdie skerm gebruik kan word:
sandhansblog.wordpress.com/2017/04/16/interfacing-displaying-a-custom-graphic-on-an-0-96-i2c-oled/
Maak seker dat u PROGMEM vir u grafika gebruik. Bv:
statiese konst ongetekende teken YOUR_IMAGE_NAME PROGMEM = {}
Deur ontwerp, sal die skerm na 5 sekondes "time -out" word en sal die tyd weer verskyn.
Die meeste instellings kan gevind word in Settings.h, spesifiek, die naam van die gepaardgaande aansluitproppe word hier gekodeer:
#definieer PLUG1 "SLEUTELS"
#define PLUG2 "P2" #define PLUG3 "P3" #define PLUG4 "P4" #define GENERIC "NA"
Daar is ook 'n paar belangrike dele van die kode in Variables.h
dryf R1 = 96700.0;
dryf R2 = 96300.0; dryf R3 = 96500.0; vlot R4 = 96300,0;
Dit is die BEKENDE weerstandswaardes, in ohm, van elk van die 4 weerstande.
R1 gekoppel aan A0, R2 na A1, R3 na A2 en R4 na A3.
Dit is raadsaam om u 100k -weerstande met 'n multimeter te meet en die presiese waarde van die weerstand te gebruik. Meet die weerstand sodra alles verbind is. (Maar nie aangeskakel nie).
As u weerstande vir u aansluitproppe kies, moet u seker maak dat daar 'n goeie ohm -gaping tussen hulle is, en as u dit kodeer, gee u 'n goeie reeks laer en hoër as die gekose weerstand. Hier is wat ek in my kode gebruik het:
vlot P1_MIN = 4000.0, P1_MAX = 7000.0; // 5.6K
float 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
Die rede hiervoor is om rekening te hou met die analooglesing en die geringe spanningsfluktuasies, ens
Wat gebeur, is dat as die weerstand wat opgespoor word tussen 4000 ohm en 7000 ohm is, ons veronderstel het dat u 'n 5.6k -weerstand gebruik het, en die kode sal dit dus as aansluitprop sien 1. As die gemete weerstand tussen 8000 ohm en 12000 ohm, die aanname is dat dit 'n 10k -weerstand is en Jack Plug 2 is, ensovoorts.
As u 'n bietjie ontfouting moet doen (moenie in die produksie 'n kommentaar lewer nie, aangesien die seriële ontfouting die kosbare ram opneem), moet u die lyne wat u benodig bo -aan Instellings los.
//#definieer SERIAL_DEBUG
//#definieer WAIT_FOR_SERIAL
Om die kommentaar te verwyder, verwyder eenvoudig die // …. Voeg die // weer aan die voorkant van die reël by om die reël terug te gee.
SERIAL_DEBUG maak die seriële ontfouting moontlik en die gebruik van dinge soos (byvoorbeeld)
Serial.println (F ("hallo wêreld"));
WAIT_FOR_SERIAL is 'n ekstra stap, dit beteken dat die kode nie sal voortgaan totdat u die Serial Monitor oopmaak nie. Dit verseker dat u geen belangrike reeksboodskappe misloop nie. - MOET DIT NOOIT NOOIT VERLAAT NIE
As u WAIT_FOR_SERIAL geaktiveer laat, kan u die sleutelhouer nie in 'n 'werklike' omgewing gebruik nie, aangesien dit vasgehou word en wag vir die Arduino IDE Serial monitor voordat dit in die hooflus van die skets kan voortgaan. As u u ontfouting voltooi het, moet u hierdie reël weer uitkom en u skets weer oplaai vir produksie/voltooiing.
As ek die SERIAL_DEBUG -opsie gebruik, bevat my kode die volgende:
#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 [")); Serial.print (i); Serial.print (F ("] =")); Serial.println (SOCKET_1234_HAS_PLUGTYPE_X ); } Serial.println (); as (INGesit [socket]) {Serial.print (F ("Plug in socket")); Serial.print (sok+1); Serial.print (F ("het 'n resitans van:")); Serial.println (weerstand); } #endif
Die laaste Serial.print -lyn sal u vertel wat die weerstand is, in ohm, van die laaste ingevoegde aansluiting. U kan hierdie skets dus ook as 'n ohmmeter gebruik om die weerstand van 'n aansluiting te kontroleer.
Stap 6: Notas
Ek dink ek het alles behandel, maar lewer asseblief kommentaar en ek sal my bes doen om te lees en te antwoord as ek kan:)
Ekskuus vir die ietwat swak video - ek het nie 'n driepoot, 'n herkodering of 'n behoorlike werkruimte nie, so dit is gefilm (sleg) met die telefoon in die een hand en probeer om dit met die ander te demonstreer.
Dankie vir die lees.
Aanbeveel:
Handleiding vir PCB vir lugversorger met sy werk en herstel: 6 stappe
Handleiding vir PCB vir lugversorger met sy werk en herstel: Hey, wat gaan aan, ouens! Akarsh hier van CETech. Het u al ooit gewonder wat aan die binnekant van u lugversorgers aangaan? As Ja, dan moet u hierdie artikel deurgaan, aangesien ek vandag 'n insig sal gee in die verband en die samestelling
Muurhouer vir iPad as bedieningspaneel vir tuisautomatisering, met behulp van servo -beheerde magneet om die skerm te aktiveer: 4 stappe (met foto's)
Muurhouer vir iPad as 'n bedieningspaneel vir tuisautomatisering, met behulp van 'n servo -beheerde magneet om die skerm te aktiveer: Ek het die afgelope tyd baie tyd spandeer om dinge in en om my huis te outomatiseer. Ek gebruik Domoticz as my Home Automation -toepassing, sien www.domoticz.com vir meer inligting. In my soeke na 'n dashboard -toepassing wat alle Domoticz -inligting saam wys
Laserwyser vir brille gemonteer vir mense met bewegingsgestremdhede: 9 stappe (met foto's)
Laserwyser vir brille vir mense met bewegingsgestremdhede: Mense met ernstige bewegingsgestremdhede soos serebrale gestremdheid het dikwels ingewikkelde kommunikasiebehoeftes. Dit kan van hulle verwag word om borde met die alfabet te gebruik of woorde wat gereeld daarop gedruk word om kommunikasie te vergemaklik. Baie
Tutoriaal vir koppelvlak OLED 0,91 inch 128x32 met Arduino UNO: 7 stappe (met foto's)
Tutoriaal vir koppelvlak OLED 0.91inch 128x32 Met Arduino UNO: Hierdie handleiding gaan u 'n paar basiese beginsels leer oor die gebruik van OLED 0.91inch LCD128x32 met Arduino UNO
OLED -kersligkring met fotoresistensie vir intensiteitsbeheer (TfCD): 4 stappe (met foto's)
OLED -kersligkring met fotoresistensie vir intensiteitsbeheer (TfCD): In hierdie instruksies wys ons hoe u 'n stroombaan kan maak wat (O) LED's soos 'n kers laat flikker en reageer op die intensiteit van die omgewing. Met 'n laer ligintensiteit is 'n laer uitset van die ligbronne nodig. Met hierdie toepassing