INHOUDSOPGAWE:

Arduino draagbare werkbank deel 3: 11 stappe
Arduino draagbare werkbank deel 3: 11 stappe

Video: Arduino draagbare werkbank deel 3: 11 stappe

Video: Arduino draagbare werkbank deel 3: 11 stappe
Video: How to repair a lathe machine cack gear #shorts 2024, November
Anonim
Arduino draagbare werkbank deel 3
Arduino draagbare werkbank deel 3
Arduino draagbare werkbank deel 3
Arduino draagbare werkbank deel 3

As u dele 1, 2 en 2B bekyk het, was daar tot dusver nog nie veel Arduino in hierdie projek nie, maar dit is nie net 'n paar borddrade nie, en die infrastruktuurgedeelte moet gebou word voordat die rus werk.

Dit is die elektronika en Arduino -kode. Die vorige 2B -instruksies bevat 'n lys van die kragtoevoerbesonderhede.

Hierdie afdeling pas die draagbare werkbank met die volgende funksies

'N TFT -aanraakskerm wat 'n skerm bied, aangedryf deur 'n Arduino Mega om die volgende te verskaf

  1. 8 digitale skerms, af/aan/ossillerend
  2. 4 spanningskerms
  3. 3 stroom-/spanningsweergawes
  4. E24 weerstandsmeter (omdat ek nie meer die kleurbande kan lees nie)

Daar is ander dinge wat ek sal byvoeg, maar dit was my aanvanklike doelwit. Die Arduino -kode bevat ook 'n seriële skerm, I2C -skerm, kapasitansiemeter, digitale skakelaars en ossilloskoop wat ek mettertyd sal byvoeg. Ek het ook nie heeltemal besluit of dit die moeite werd is om 'n 3V3 -kragtoevoer, 'n veranderlike kragbron of spanning/stroommonitering by te voeg nie. Tot dusver is dit gebou met behulp van die Mega, maar ek kyk ook na die verskuiwing van sommige funksies na afgesonderde I2C -kringe, toegewyde skyfies of geprogrammeerde Atmel 328's, wat makliker 'n ander beheerder kan akkommodeer.

Voorrade

5 x 16 -kant kopstukke

5 x 8 -weg dupont -voetstukke, eintlik gemaak van lang 40 -rigting enkel -in -lyn -voetstukke wat tot die vereiste lengte gesny is

1 x 3,5 ILI9486 TFT -raakskerm

1 x Arduino Mega 2650

Individuele komponente

Volgens die teks is die waarde van sommige hiervan nie absoluut vas nie, en as u dit misloop, is dit glad nie nodig nie:)

Digitale invoer

16 x 10K weerstande

Analoog insette

1 x TL074 'n quad jfet opamp, dit is wat ek as 'n ekstra gehad het; enigiets soortgelyks sal doen:)

4 x 68K en 4 x 430k weerstande wat as spanningsverdelers gebruik word.

4 x 1N4001 of soortgelyk

Weerstandsmeter

1 x TL072 'n dubbele jfet opamp, dit is wat ek as 'n ekstra gehad het; enigiets soortgelyks sal doen:)

1M0, 300k, 100k, 30k, 10k, 3k, 1k, 300R (as hierdie waardes verander word, moet die Arduino -kode opgedateer word)

Stap 1: Oorsig van die elektronika

Oorsig van die elektronika
Oorsig van die elektronika
Oorsig van die elektronika
Oorsig van die elektronika
Oorsig van die elektronika
Oorsig van die elektronika
Oorsig van die elektronika
Oorsig van die elektronika

Die grys konsole is 30 jaar gelede deur my gemaak en word steeds gereeld gebruik, maar die tye het aangegaan. Dit bied dubbele kragtoevoer aan die linkerkant, 'n sentrale klankversterker in die middel, met 'n interne luidspreker en 'n ossillator aan die linkerkant. Deesdae benodig die meeste van my stroombane net die kragtoevoer, en slegs die positiewe spoor. Iets anders was nodig, sowel as die etiket waarsonder ek geleef het, ek het dit reggekry.

Die belangrikste vereistes vir die elektronika van die projekboks was om nuwe stroombane met Arduino- of Framboos -PI's aan te dryf, dus was 5V noodsaaklik, net soos USB -aansluitings. Verligte skakelaars vertel my of die krag aan is of nie, en as ek toets, moet ek gereeld klein hulpkringe bou om tydelike statusweergawes te gee. Ek het 'n boks groot meters wat baie bankruimte opneem, en bowenal het ek 'n vertoning nodig wat ek maklik kan lees namate my sig versleg, iets met groot helder karakters. Ek benodig dus digitale uitstallings, spanningsmeters, stroommeters, en in hierdie geval 'n bietjie luukse in die vorm van 'n weerstandsmeter om vinnig weerstande uit die E24 -reeks te identifiseer, alles binne 15 cm van die projekbord en in 'n kompakte, draagbare omhulsel.

Die hoof PSU, wat in 'n vorige artikel beskryf is, verskaf krag aan die deksel met 'n lintkabel van 40 rigtings sodat die twee verbind kan word terwyl die deksel gesluit is. Dit bied geskakelde 5V- en 12V -toevoer vir die paneelelektronika en die broodbord.

Alle krag- en sein-insette word verskaf deur 2x8way PCB-kopstukke parallel met 'n 8-rigting dupont-aansluiting. Dit is waarskynlik te veel, die meeste broodborde het kragrails, maar dit was maklik om te doen.

Op die netaansluitings is die hoof 0V -spoor van die kragtoevoer algemeen vir alle toevoer en word dit beskikbaar gestel. Hierbo is 'n 5V -kragtoevoer, aangeskakel op die basiseenheid, en hierbo is twee +12V- en -12V -voorraadbronne, wat tans vasgestel is, alhoewel ek 'n idee het om die toevoer te hack om dit veranderlik te maak en 'n 3.3-20V te verskaf veranderlike aanbod.

Stap 2: Die elektronika

Die elektronika
Die elektronika
Die elektronika
Die elektronika
Die elektronika
Die elektronika

Ek het skermafdrukke van die broodborduitleg geplaas, hoe die kring lyk as dit op 'n matriksbord gebou is, 'n skematiese as 'n PDF en die oorspronklike Fritzing -lêers. Dit is nie besonder ingewikkelde elektronika nie en is daar om beperkende weerstande, bufferversterkers en aansluitings vir die Arduino -bord te monteer. Maar daar is verskillende beelde om die vele verbindings 'n bietjie duideliker te wys. Die meeste bedrading bestaan uit standaard lengtes van vooraf gekrimpte dupont-lintkabels wat weer in meervoudige huise aangebring is om dit makliker te maak om weer aan te sluit en meer betroubaar te wees.

Die Arduino Mega 2650 is in die deksel gemonteer met die USB -aansluiting wat beskikbaar is vir programmering. Dit dryf die TFT -raakskerm wat gebruik word om alle uitsette en insette te vertoon.

8 digitale insette word beskikbaar gestel via 'n 2 x 8-rigting PCB-kop en hul status word op die skerm vertoon as die funksie gekies word. Dit is 'n eenvoudige aan/uit -skerm, rooi af, groen aan. Ek kan oscillasie byvoeg as 'n toekomstige verandering.

4 spanningsingange word ook beskikbaar gestel via die PCB -kop en 'n spanningsverdeler, die spanning wat op die skerm verskyn. Elke ingangsspanning op die voorpaneel, met verwysing na die gemeenskaplike grond, word oorgedra na 'n deel deur 7 spanningsverdeler en dan gebuffer deur een van die vier op-ampère in 'n TL074 wat as 'n regstellende versterker gekonfigureer is, net om ongelukke met negatiewe spannings te voorkom. Dit sal goed wees om op 'n stadium 'n polariteitsaanduiding by te voeg, maar nie hierdie keer nie. Die uitset van elke op-amp is na een van die ADC-insette van die Arduino.

'N Verdere PCB -koptekst stel beide seriële en I2C -verbindings bloot. Dit is gedoen om die implementering van 'n seriële vertoningskonsole en 'n basiese I2C -identifikasiefunksie moontlik te maak.

Die spanning/digitale insette is moontlik nie alles nodig nie, sodat hulle herkonfigureer kan word om digitale skakeluitsette te verskaf.

Die Arduino dryf 'n weerstandskikking op 'n spanningsverdeler om 'n weerstandsmeterfunksie te bied. Die uitset hiervan word gebuffer deur 'n op-amp ('n halwe TL072) voordat dit deur die Arduino gelees word en die weerstand bereken word. Die doel hiervan is nie akkurate weerstandsmeting nie, maar om die E24 -reekswaardes vinnig te identifiseer, maar met 'n mate van kalibrasie kan dit as 'n basiese meter gebruik word. Die werking daarvan is om op te spoor wanneer 'n weerstand van minder as 9M9 teenwoordig is op die twee vere op die voorpaneel en dan selektief 5V oorskakel na elke weerstand in die verdelerreeks totdat die waarde naaste aan 2.5V gemeet word of die laaste weerstand gekies word, a berekening en vergelyking word dan gemaak om die E24 -waarde naaste te bepaal. Die 5V is afkomstig van digitale uitsette 3-10 op die Arduino, wat herkonfigureer word as insette met 'n hoë impedansie tussen elke meting om foute te verminder. Arduino-penne D3-10 is doelbewus gebruik, aangesien 'n toekomstige toevoeging 'n kapasitansiemeter kan wees met behulp van die PWM-vermoë van hierdie uitsette, wat moontlik slegs 'n sagteware-verandering kan wees.

'N Gewysigde INA3221 -bord bied bykomende spanning- en stroommetings via die I2C -koppelvlak met insette vanaf die voorpaneel. Alles word bedraad met springkabels, sodat die toewysing van funksies in die toekoms maklik sal wees.

Stap 3: INA3221 Spanning/stroominvoer

INA3221 Spanning/stroom Invoer
INA3221 Spanning/stroom Invoer

Dit was bedoel as 'n vinnige oplossing vir die meting van spanning/stroom in die boks, maar dit het geblyk dat dit, soos geïmplementeer op die bord wat ek gekoop het, bedoel was om die laai van die batterye te monitor, sodat dit aangepas moes word om drie onafhanklike metings te lewer. As u tydens die bou van hierdie projek 'n INA3221 -bord kan kry wat hierdie chip volgens die datablad implementeer, is dit nie nodig nie.

As ons na die prentjie kyk, moet daar drie snitte in die PCB -spore gemaak word om die meetweerstande te skei. Die pads vir hierdie drie weerstande moet ook gesny word om dit van die res van die PCB te skei. Die weerstande word dan aan die pads verbind deur ekstra drade as brûe te soldeer. Ek dokumenteer dit omdat dit 'n algemene bord is en moontlik die enigste een is wat beskikbaar is.

Die verbindings met die bord vanaf die voorpaneel word dan gemaak deur middel van jumperleidings oor die meetweerstande.

Die krag vir die bord word net soos die grond van die Arduino 5V -penne geneem, terwyl die I2C -verbindings na die elektroniese printplaat gaan.

Stap 4: Die skerm

Die vertoonskerm
Die vertoonskerm

Dit was 'n eBay -aankoop en beskikbaar by baie bronne en is 'n skerm wat deur ILI9486 aangedryf word. Ek het gevind dat dit die beste werk met die MCUFRIEND -biblioteke van David Prentice, maar dit moet voor gebruik gekalibreer word, wat net vereis dat een van die biblioteekvoorbeelde wat deur David verskaf word, aangeskakel word, volg die instruksies op die skerm en skryf dit neer die parameters wat vertoon word, indien dit anders in die Arduino_Workstation_v01 -kode lêer geplaas word.

Vir hierdie projek is 'n aanraakskerm noodsaaklik; dit draai om die feit dat daar geen spesiale skakelaars is nie en die moontlikheid om net in die toekoms spyskaarte en funksies by te voeg sonder om te herbedra.

Stap 5: Verbind dit saam

Verbind dit saam
Verbind dit saam
Verbind dit saam
Verbind dit saam
Verbind dit saam
Verbind dit saam

Die Arduino Mega is op die LHS van die deksel geleë, met sy USB- en kragpoort wat van buite die omhulsel toeganklik is. Op die RHS langs die Arduino is die elektronika gemonteer op 'n matriksbord en hierbo is die INA3221 -bord aan die agterkant van die deksel gemonteer.

Aan die agterkant van die deksel by die LHS bokant die Arduino is 'n algemene aansluitbord waarop alle gronde verbind is.

Soveel as moontlik leidrade is saamgebind tot meerwegverbindings. Dit maak die aansluiting van die kringe baie makliker en betroubaarder, en die wedersydse ondersteuning van verbindings in 'n meervoudige behuising bied 'n beter weerstand om los te kom. 'N Lys van hierdie konsolidasies volg.

Al die verbindings is op 'n logiese manier bygevoeg, wat die beste toegang tot die verbinding met my lomp vingers gegee het, en die aansluitings op die voorpaneel tot die einde gelaat, terwyl die laaste skermverbindings deur die monteergat gelei word om die laaste te voltooi. Die skerm is vasgemaak met 'n 3D -gedrukte raam.

Stap 6: Gekonsolideerde leidrade

Gekonsolideerde leidrade
Gekonsolideerde leidrade
  1. Spannings- en weerstandsinvoer na die Arduino ADC -poorte, vyf leidings van 20 cm met individuele manlike aansluitings aan die een kant, gekonsolideer in 'n sesrigtingbehuizing met 'n gaping om die gaping in die Arduino -koppe te akkommodeer.
  2. 4 -rigting 10cm -kabel van 'n vierrigtingbehuizing na twee 2 -rigting behuisings om die spanningspenne op die voorpaneel aan die printplaat te koppel.
  3. 8-rigting 10 cm-kabel van 'n 2x4-manier manlike kop na 'n 8-rigting vroulike kop
  4. 4 -rigting 10 cm kabel van 4 -rigting vroulike behuising na 4 -rigting vroulike behuising om Serial en I2C aan die voorpaneel te koppel
  5. 4 -rigting 10cm -kabel van 4 -rigtingbehuizing na vier enkelverbindings om INA3221 aan die voorpaneel te koppel
  6. 4-rigting 20cm-kabel om 'n vierrigting-vroulike behuising aan te sluit op 'n vier-rigting manlike behuising om Serial en I2C van Arduino na die ventilator uit te skakel.
  7. 8 -rigting 10cm -kabel van 8 -rigting vroulike behuising na 8 -rigting vroulike behuising om digitale insette van die voorpaneel na die bord te neem.
  8. 8 -rigting 10 cm kabel om 8 -rigting vroulike behuising na een 3 -rigting manlike behuising te neem en een 5 -rigting manlike behuising om die weerstandsverdeler aan die printplaat te koppel. Die twee behuise word gebruik om die nie-standaard gaping in die kopstukke op die Arduino-bord te akkommodeer.
  9. 2 -rigting 20cm -kabel om 'n tweerigting -vroulike behuising na twee enkelmansverbindings vir die INA3221 -kragtoevoer te neem.
  10. 2-rigting 10 cm-kabel om 2-rigting vroulike behuizing na twee enkelwyfie-behuise te neem om die derde INA3221-monitoraansluiting aan die voorpaneel te koppel.
  11. 2-rigting 10cm-kabel om 2-rigting vroulike behuising na 2-rigting vroulike behuising te neem om die INA3221 aan die I2C fanout-aansluitings te koppel.

Stap 7: Arduino -kode

Arduino -kode
Arduino -kode
Arduino -kode
Arduino -kode

Hierdie projek is gebaseer op die Arduino Mega 2650 om die eenvoudige rede dat ek baie I/O -poorte wou hê wat toegewy was aan take in 'n eenvoudige formaat. Die biblioteke vir die TFT -raakskerm ondersteun standaard die Arduino Uno en moet geredigeer word om die Mega te ondersteun. Die redigering van die biblioteke word ondersteun deur die oorspronklike outeur van die TFT -kode, is eenvoudig en word in die volgende stap beskryf.

Die gebruik van 'n raakskerm is die basis van hierdie deel van die projek, maar aangesien die skerm wat iemand uiteindelik gebruik, anders kan wees as die wat ek gebruik het, plaas die kode slegs hardeware -spesifieke funksies in afsonderlike roetines, sodat alle nodige wysigings geïdentifiseer kan word.

'N Werkende weergawe van die kode is hier ingesluit en sal opgedateer word, maar die mees onlangse opdaterings sal op github verskyn.

Die hooffunksie van die kode draai om die skerm, elke element op die skerm het 'n invoer in 'n enkele skikking wat die elementtipe bevat, waar dit op die skerm vertoon word, kleur en bykomende parameters, soos die invoerbron. 'N Kiekie van hierdie skikking met opmerkings word hierbo getoon. Dit bevat ook 'n veld om te bepaal of dit op die skerm vertoon moet word of nie. Deur hierdie skikking te redigeer, kan nuwe funksies bygevoeg word of funksies verwyder word. Die 'lus' -roetine van die kode loop deurlopend deur hierdie skikking, en verwerk elke in aanmerking komende element opeenvolgend en herhaal dit dan. Daar is tans 6 verskillende elemente.

Spyskaartelemente - dit bevat geen inligting nie, maar voer 'n gepaardgaande subroutine uit wat geïdentifiseer word in die elementparameters as dit aangeraak word

Digitale elemente - word as 'n boks op die skerm as rooi of groen vertoon, afhangende van die status van die gepaardgaande digitale invoerpen. Die voorbeeldkonsole is bedraad vir 8 digitale penne, maar dit kan na wens verhoog of verminder word.

Analoog elemente - toon 'n benaderde spanning soos gemeet op die gepaardgaande analoog pen. Vier is oorspronklik gespesifiseer.

Presisie -elemente - vertooninvoer van 'n eksterne presisie volt/stroommetermodule. Daar is slegs drie hiervan, maar 'n tweede of derde module kan bygevoeg word.

Weerstandselement - dit is 'n enkele element wat die insette van die weerstandsmeter toon.

Raak - dit is die enigste roetine wat altyd uitgevoer word om vas te stel of die skerm aangeraak is en dan 'n besluit te neem op grond van wat aangeraak is. dws as 'n spyskaartitem, wat beteken dit dan om vertoon te word?

Die skerm het drie statusmodusse, normaal, groot en volskerm, en alle elemente verander die werking, afhangende van die status. Die drie modusse kan uit die spyskaart gekies word deur 'n element aan te raak en die gepaardgaande kieslysopsie.

Normale modus - vertoon 8 digitale insette, vier analoge spanningsingange, drie presisie -elemente, die weerstandselement en vier spyskaartelemente. As u Normaal in die spyskaart kies, word die skerm in hierdie modus geplaas.

Groot modus - word gekies deur enige van die elemente op die skerm aan te raak, gevolg deur Groot. Die elementtipe is die enigste tipe wat gekies is, en die elemente van die tipe word herrangskik om die hele skerm te vul.

Volskermmodus - word gekies deur enige van die elemente op die skerm aan te raak, gevolg deur Volskerm. As dit gekies is, is die element die enigste element wat vertoon word en word dit herrangskik om die hele skerm te vul, wat die maksimum sigbaarheid van die een item bied.

Om ekstra funksies by te voeg, moet die volgende roetines bygevoeg word

'teken' roetine wat geroep word om die inligting vir die element te kry, skakel die toepaslike roetine -opdateringsroetine en registreer die teruggekeerde aanraakinligting

'logika' -roetine wat die inligting uit die trekkingroetine aanvaar en die toepaslike skermbestuurderroetines gebruik om die inligting op die skerm te plaas en die korrekte aanraakinligting vir die gebied van die getekende skerm terug te gee

'opstel' -roetine wat genoem word as deel van die Arduino -opstelling

Ander roetines kan ingesluit word, maar daar mag geen interafhanklikheid tussen elementkode bestaan nie; as 'n element nie geaktiveer is nie, moet die kode nie uitgevoer word nie en die eenvoudige multifunksionele struktuur behou sy integriteit.

Stap 8: Bewerking van die Arduino -biblioteke

Redigering van die Arduino Libraries
Redigering van die Arduino Libraries
Redigering van die Arduino Libraries
Redigering van die Arduino Libraries

Die skerm wat ek gebruik het, werk baie goed met die Arduino Uno en die basisbiblioteke daarvoor, maar presteer stadig as dit direk na die Arduino Mega oorgedra word. Om die skerm korrek te bestuur, moet 'n ander stel datapennetjies gebruik word en hierdie verandering moet in die biblioteke opgestel word. Dit is 'n eenvoudige verandering en is bedoel deur die skrywer. Die foto's beklemtoon die veranderinge wat aangebring is.

Die twee lêers word in die MCUFRIEND_kbv / nut -lêergids gestoor as mcufriend_shield.h en mcufriend_special.h. Die vereiste veranderinge is eerstens in die 'skild' -koplêer om te verseker dat die eerste reël lees

#definieer GEBRUIK_SPESIALE

om te verseker dat die 'spesiale' koplêer gelaai word.

Die 'spesiale' koplêer moet ook bygewerk word om te verseker dat die reël

#definieer USE_MEGA_8BIT_PROTOSHIELD

is onkommenteer.

Hierdie twee veranderinge beteken dat die skermkode vir hierdie skerm met penne 20-29 op die Arduino Mega werk in plaas van die standaard 3-10 op die Uno.

Stap 9: Skermskote

Skermskote
Skermskote
Skermskote
Skermskote
Skermskote
Skermskote

Ek het skermkiekies hier geplaas, sodat dit maklik is om te sien wat die konsole moet doen. Die volgende afdeling verwys na die laai van die kode in die Arduino.

Die eerste skerm toon die 'normale' skerm met spyskaarte bo -aan, spanningsmetings op die LHS, spanning- en stroommetings op die RHS en digitale penstatus onderaan, rooi vir 'vals/laag', groen vir 'waar/hoog' '. Uiteindelik in die middel is die weerstandsmeting.

Die tweede skerm toon die digitale insette wat in die groot modus aangeskakel is, elke invoer word duidelik vertoon.

Die derde skerm toon die spanningsinsette in die groot modus.

Stap 10: Laai die Arduino -kode

Die kode is aangeheg, maar soos vroeër genoem, sal dit op 'n sekere tyd op github geplaas word en die plek hier bygevoeg word. Die belangrikste bronkode lêer is Arduino_Workbench_v01.ino en die ander roetines is om die verskillende funksies te verskaf.

As die biblioteke goed gewysig is en die Arduino Mega2650 as die doelplatform in die Arduino IDE gestel is, moet die kode die eerste keer saamgestel word.

Die biblioteke wat gelaai moet word, is Adafruit GFX- en Touchscreen -biblioteke wat beskikbaar moet wees by die Arduino -biblioteekbestuurder, 'n afskrif van MCUFRIEND_kbv wat van github afgelaai kan word en vir die INA3221 kan die SwitchDocLabs -biblioteek SDL_Arduino_INA3221 ook van github afgelaai word. 'n Google -soektog.

Stap 11: Finale aanraking

Finale aanraking
Finale aanraking
Finale aanraking
Finale aanraking
Finale aanraking
Finale aanraking
Finale aanraking
Finale aanraking

Die idee is om dit vir projekwerk te gebruik, sodat 'n verwyderbare paneel gemaak is met monteerboute vir Arduino -borde en 'n broodbord, die geheel met klittenband aan die deksel geheg om dit verwyderbaar te maak en sodat verskillende borde gemaak kan word om projekte en dat die boks hergebruik kan word vir verskillende projekte wat gelyktydig loop.

Ek verwag dat dit 'n bron sal wees vir 'n paar idees om iets anders, beter of albei te maak. Ek sal die bykomende funksies wat ek genoem het, byvoeg en dit byvoeg, maar as dit u kan help, neem dan wat u wil en geniet dit. Laat weet my as daar opvallende probleme is.

Op die oomblik gaan ek aan die gang en dit gebruik, ek het 'n paar projekte om aan te werk!

Aanbeveel: