Sadržaj:

Arduino prijenosni radni stol, dio 3: 11 koraka
Arduino prijenosni radni stol, dio 3: 11 koraka

Video: Arduino prijenosni radni stol, dio 3: 11 koraka

Video: Arduino prijenosni radni stol, dio 3: 11 koraka
Video: Lesson 98: Arduino 10 LED Push button Projects, Potentiometer LED Voltmeter and Traffic Light 2024, Juli
Anonim
Arduino prijenosni radni stol, dio 3
Arduino prijenosni radni stol, dio 3
Arduino prijenosni radni stol, dio 3
Arduino prijenosni radni stol, dio 3

Ako ste gledali dijelove 1, 2 i 2B, do sada u ovom projektu nije bilo mnogo Arduina, ali samo nekoliko žica ploča itd. Nije o čemu se radi, a dio infrastrukture mora biti izgrađen prije radovi na odmoru.

Ovo je elektronika i Arduino kod. Prethodni 2B instruktori navode detalje o napajanju.

Ovaj odjeljak predstavlja prijenosni radni stol sa sljedećim značajkama

TFT ekran osetljiv na dodir koji pruža ekran, pogonjen Arduino Mega -om kako bi obezbedio sledeće

  1. 8 digitalnih ekrana, isključeno/uključeno/oscilira
  2. 4 displeja napona
  3. 3 prikaza struje/napona
  4. E24 mjerač otpora (jer više ne mogu čitati trake u boji)

Bit će još stvari koje ću dodati, ali ovo mi je bila početna meta. Arduino kôd takođe navodi serijski ekran, I2C ekran, merač kapacitivnosti, digitalne prekidače i osciloskop koje ću dodavati kako vreme prolazi. Također nisam sasvim odlučio je li vrijedno dodati napajanje 3V3, promjenjivo napajanje ili nadzor napona/struje napajanja. Do sada je ovo bilo izgrađeno korištenjem Mega -e, ali također razmatram premještanje nekih funkcija u odvojena kola s I2C pristupom, bilo namjenskim čipovima ili programiranim Atmelom 328 koji će lakše prilagoditi drugi kontroler.

Supplies

5 x 16 smjera utičnica zaglavlja

Dupont utičnice 5 x 8 smjerova, zapravo izrađene od dugih 40 -strukih jednorednih utičnica izrezanih do potrebne dužine

1 x 3,5 ILI9486 TFT ekran osetljiv na dodir

1 x Arduino Mega 2650

Pojedinačne komponente

Prema tekstu, vrijednost nekih od njih nije apsolutno fiksna, a ako propustite funkciju, uopće neće biti potrebna:)

Digitalni ulaz

16 x 10K otpornici

Analogni ulaz

1 x TL074 quad jfet opamp, ovo sam imao kao rezervu, sve slično će poslužiti:)

4 x 68K i 4 x 430k otpornici koji se koriste kao razdjelnici napona.

4 x 1N4001 ili slično

Mjerač otpora

1 x TL072 dvostruki jfet opamp, ovo sam imao kao rezervni, sve slično će poslužiti:)

1M0, 300k, 100k, 30k, 10k, 3k, 1k, 300R (Ako se ove vrijednosti promijene, Arduino kôd se mora ažurirati)

Korak 1: Pregled elektronike

Pregled elektronike
Pregled elektronike
Pregled elektronike
Pregled elektronike
Pregled elektronike
Pregled elektronike
Pregled elektronike
Pregled elektronike

Sivu konzolu sam napravio prije 30 godina i još uvijek se redovno koristi, ali vremena su otišla dalje. Omogućuje dvostruko napajanje s lijeve strane, centralno audio pojačalo u sredini, s unutarnjim zvučnikom i oscilator s lijeve strane. Ovih dana većini mojih kola treba samo napajanje, a od toga samo pozitivna šina. Bilo je potrebno nešto drugačije, kao i etiketiranje bez kojeg sam živio, pa uspio sam.

Glavni zahtjevi za elektroniku projektne kutije bili su napajanje novijih kola pomoću Arduina ili Raspberry PI -ja tako da je 5 V bilo neophodno kao i USB utičnice. Osvijetljeni prekidači govore mi je li napajanje uključeno ili ne, a prilikom testiranja moram redovito graditi mala pomoćna kola kako bih privremeno prikazao status. Imam kutiju glomaznih brojila koja zauzimaju puno prostora na klupi, a prije svega potreban mi je ekran koji mogu lako čitati kako mi se vid pogoršava, nešto s velikim, svijetlim likovima. Zato su mi potrebni digitalni ekrani, mjerači napona, mjerači struje, a u ovom slučaju mali luksuz u obliku mjerača otpora za brzu identifikaciju otpornika serije E24, sve unutar 15 cm od projektne ploče i u kompaktnom, prijenosnom kućištu.

Glavni izvor napajanja, opisan u prethodnom članku, napaja poklopac pomoću 40 -putnog vrpčnog kabela koji omogućava njihovo spajanje dok je poklopac zatvoren. Ovo osigurava izmjenjivo napajanje 5v i 12V za elektroniku panela i za napajanje matične ploče.

Svi ulazi za napajanje i signal osigurani su 2x8-putnim utičnicama za PCB-u paralelno sa 8-smjernom dupont utičnicom. Ovo je vjerojatno pretjerano, većina matičnih ploča ima vodilice, ali to je bilo lako učiniti.

Na utičnicama za napajanje, glavna 0V šina napajanja zajednička je za sve vrste napajanja i dostupna je. Iznad ovoga je napajanje od 5 V, uključeno na osnovnoj jedinici, a iznad toga su dva napajanja +12V i -12V, koja su trenutno fiksna, iako imam ideju hakirati napajanje kako bi bilo promjenjivo i osiguralo 3,3-20 V promenljiva ponuda.

Korak 2: Elektronika

The Electronics
The Electronics
The Electronics
The Electronics
The Electronics
The Electronics

Objavio sam otiske ekrana izgleda matične ploče, kako krug izgleda kada je izgrađen na matričnoj ploči, shemu kao PDF i originalne datoteke Fritzing. Ovo nije posebno složena elektronika i služi za ugradnju ograničavajućih otpornika, međuspremnika i pojačivača ventilatorskih priključaka za Arduino ploču. No, postoji nekoliko slika koje jasnije prikazuju mnoge veze. Većina ožičenja sastavljena je od standardnih duljina unaprijed presavijenog dupont trakastog kabela koji je ponovno sastavljen u višesmjerna kućišta kako bi ih bilo lakše ponovno spojiti i bili pouzdaniji.

Arduino Mega 2650 montiran je u poklopac s USB utičnicom dostupnom za programiranje. Pokreće TFT ekran osjetljiv na dodir koji se koristi za prikaz svih izlaza i ulaza.

8 digitalnih ulaza dostupno je putem 2 x 8-smjernog PCB zaglavlja, a njihov status se prikazuje na ekranu ako je odabrana ta funkcija. Ovo je jednostavan ekran za uključivanje/isključivanje, crveno isključeno, zeleno uključeno. Mogu dodati oscilirajuće kao buduću promjenu.

4 naponska ulaza također su dostupna putem zaglavlja PCB -a, a razdjelnik napona prikazuje napon prikazan na ekranu. Svaki ulazni napon na prednjoj ploči, u odnosu na zajedničko uzemljenje, prenosi se na podjelu napona sa 7 razdjelnika, a zatim se memorira jednim od četiri op-pojačala u TL074 konfiguriranom kao ispravljačko pojačalo, samo kako bi se izbjegle nesreće s negativnim naponima. Bilo bi lijepo dodati indikaciju polariteta u nekoj fazi, ali ne ovaj put. Izlaz iz svakog op-pojačala ide na jedan od ADC ulaza Arduina.

Daljnje zaglavlje PCB -a otkriva i serijske i I2C veze. To je učinjeno kako bi se omogućila implementacija serijske konzole za prikaz i osnovne funkcije identifikacije I2C.

Napon/digitalni ulazi mogu se pokazati kao da nisu svi potrebni pa se mogu ponovno konfigurirati za osiguravanje digitalnih sklopnih izlaza.

Arduino napaja niz otpora na razdjelniku napona kako bi osigurao funkcionalnost mjerača otpora. Izlaz ovoga je međuspremnik op-pojačala (pola TL072) prije nego ga Arduino pročita i izračuna otpor. Svrha ovoga nije precizno mjerenje otpora, već brzo identificiranje vrijednosti serije E24, iako bi se uz određenu kalibraciju moglo koristiti kao osnovni mjerač. Njegova je operacija otkriti kada je otpor manji od 9M9 prisutan na dvije opruge postavljene na prednjoj ploči, a zatim selektivno prebaciti 5V na svaki otpornik u nizu razdjelnika dok se ne izmjeri vrijednost najbliža 2,5 V ili odabere zadnji otpornik, a tada se vrši proračun i usporedba kako bi se odredila najbliža vrijednost E24. 5V se napaja iz digitalnih izlaza 3-10 na Arduinu koji su konfigurirani kao ulazi visoke impedanse između svakog mjerenja kako bi se smanjile greške. Arduino pinovi D3-10 namjerno su korišteni kao budući dodatak koji bi mogao biti mjerač kapaciteta pomoću PWM mogućnosti ovih izlaza, što bi potencijalno moglo biti samo softverska promjena.

Modificirana ploča INA3221 pruža dodatna mjerenja napona i struje putem I2C sučelja s ulazima s prednje ploče. Sve je ožičeno pomoću kratkospojnih kabela tako da će ponovna dodjela funkcija u budućnosti biti jednostavna.

Korak 3: INA3221 Ulaz napona/struje

INA3221 Ulaz napona/struje
INA3221 Ulaz napona/struje

Ovo je bilo zamišljeno kao brzo rješenje za pružanje mjerenja napona/struje u kutiji, ali pokazalo se da je, kao što je implementirano na ploči koju sam kupio, namjeravalo nadzirati punjenje baterije pa se moralo izmijeniti kako bi omogućilo tri neovisna mjerenja. Ako pri izgradnji ovog projekta možete nabaviti ploču INA3221 koja implementira ovaj čip prema podatkovnoj tablici, to nije potrebno.

Gledajući sliku, potrebno je napraviti tri reza na tragovima PCB -a kako bi se odvojili mjerni otpornici. Jastučići za ova tri otpornika također se moraju izrezati kako bi se odvojili od ostatka PCB -a. Otpornici se zatim spajaju s podmetačima lemljenjem dodatnih žica kao mostova. Dokumentiram ovo jer je ovo uobičajena ploča i možda je jedina dostupna.

Spajanje na ploču s prednje ploče tada se vrši putem kratkospojnika preko mjernih otpornika.

Napajanje ploče uzima se iz Arduino 5V pinova kao i uzemljenje, a I2C veze idu na elektroničku tiskanu ploču.

Korak 4: Zaslon

Ekran za prikaz
Ekran za prikaz

Ovo je bila kupovina eBay -a i dostupna je iz mnogih izvora i predstavlja ekran sa ILI9486 napajanjem. Otkrio sam da je najbolje funkcionirao s MCUFRIEND bibliotekama Davida Prenticea, ali mora se kalibrirati prije upotrebe, što je samo zahtijevalo da se jedan od primjera biblioteke koje je David dao pokrene sa spojenim ekranom, slijedite upute na ekranu i zapišite prikazane parametre, umetanjem u datoteku koda Arduino_Workstation_v01 ako se razlikuje.

Za ovaj projekat ekran osetljiv na dodir je od suštinskog značaja, on se vrti okolo bez namenskih prekidača i mogućnosti za dodavanje menija i funkcija u budućnosti bez mnogo ponovnog ožičenja.

Korak 5: Povežite ga zajedno

Povezujući ga zajedno
Povezujući ga zajedno
Povezujući ga zajedno
Povezujući ga zajedno
Povezujući ga zajedno
Povezujući ga zajedno

Arduino Mega nalazi se na LHS poklopcu, a njegovi USB i priključci za napajanje dostupni su izvan kućišta. Na RHS -u pored Arduina nalazi se elektronika postavljena na matričnu ploču, a iznad toga je montirana ploča INA3221 na stražnjoj strani poklopca.

Također na stražnjoj strani poklopca u LHS -u iznad Arduina nalazi se zajednička ploča za uzemljenje na koju su spojena sva uzemljenja.

Što je više moguće kabela spojeno je zajedno u višeputne konektore. Ovo čini spajanje krugova mnogo lakšim i pouzdanim, a međusobna podrška konektora u višekanalnom kućištu pruža poboljšanu otpornost na olabavljenje. Slijedi popis ovih konsolidacija.

Svi su konektori dodani na logičan način, što je omogućilo najveći pristup za povezivanje mojim nespretnim prstima, ostavljajući veze prednje ploče do kraja, pri čemu se posljednji priključci zaslona prolaze kroz otvor za montažu kako bi se posljednji dovršili. Ekran je fiksiran na mjestu pomoću 3D štampane maske.

Korak 6: Konsolidovani potencijalni klijenti

Konsolidovani potencijalni klijenti
Konsolidovani potencijalni klijenti
  1. Ulazi napona i otpora na Arduino ADC portove, pet kabela 20 cm s pojedinačnim muškim konektorima na jednom kraju konsolidiranim u šesterostruko kućište s razmakom za smještaj razmaka u Arduino zaglavljima.
  2. 4 -kraki kabel od 10 cm od četverosmjernog kućišta do dva 2 -smjerna kućišta za spajanje pinova napona na prednjoj ploči na ploču.
  3. 8-kraki kabel 10 cm od 2x4-stranog muškog zaglavlja do 8-smjernog ženskog priključka
  4. 4 -smjerni kabel 10 cm od 4 -ženskog ženskog kućišta do 4 -smjernog ženskog kućišta za povezivanje serijskog i I2C ka prednjoj ploči
  5. 4 -smjerni kabel 10 cm od 4 -smjernog kućišta do četiri pojedinačna priključka za spajanje INA3221 na prednju ploču
  6. Četverostrani kabel od 20 cm za spajanje četverosmjernog ženskog kućišta na četverostrano muško kućište za odvođenje Serial i I2C od Arduina do ventilatora na ploči.
  7. 8 -kraki kabel 10 cm od 8 -ženskog ženskog kućišta do 8 -smjernog ženskog kućišta za prijenos digitalnih ulaza s prednje ploče na ploču.
  8. 8 -kraki kabel od 10 cm za nošenje 8 -ženskog ženskog kućišta u jedno trostrano muško kućište i jedno 5 -smjerno muško kućište za spajanje razdjelnika otpora na ploču. Dva kućišta koriste se za prilagođavanje nestandardnog zazora u zaglavljima na Arduino ploči.
  9. 2 -kraki kabel od 20 cm za spajanje ženskog kućišta u 2 smjera na dva pojedinačna muška konektora za napajanje INA3221.
  10. 2-smjerni kabel od 10 cm za spajanje dvosmjernog ženskog kućišta u dva pojedinačna ženska kućišta za povezivanje trećeg priključka monitora INA3221 na prednju ploču.
  11. 2-smjerni kabel 10 cm za povezivanje 2-smjernog ženskog kućišta na 2-smjerno žensko kućište za spajanje INA3221 na I2C ventilacijske priključke.

Korak 7: Arduino kod

Arduino kod
Arduino kod
Arduino kod
Arduino kod

Ovaj projekt se temelji na Arduino Mega 2650 iz jednostavnog razloga što sam želio mnogo I/O portova posvećenih zadacima u jednostavnom formatu. Biblioteke za TFT ekran osjetljiv na dodir standardno podržavaju Arduino Uno i moraju se urediti kako bi podržale Mega. Uređivanje biblioteka podržava izvorni autor TFT koda, jednostavno je i opisano u sljedećem koraku.

Korištenje ekrana osjetljivog na dodir osnova je ovog dijela projekta, ali kako se prikaz koji neko završi može razlikovati od onog koji sam ja koristio, kôd postavlja samo hardverske funkcije u zasebne rutine kako bi se mogle identificirati sve potrebne izmjene.

Radna verzija koda je uključena ovdje i bit će ažurirana, ali najnovija ažuriranja bit će na githubu.

Glavna funkcija koda vrti se oko ekrana, a svaki element na ekranu ima unos u jedan niz koji sadrži tip elementa, gdje se na ekranu prikazuje, boju i dodatne parametre, poput izvora unosa. Snimak zaslona ovog niza s komentarima prikazan je gore. Takođe sadrži polje za kontrolu da li će se prikazivati na ekranu ili ne. Uređivanjem ovog niza mogu se dodati nove funkcije ili ukloniti. Rutina 'petlje' koda prolazi kroz ovaj niz neprekidno, obrađujući svaki prihvatljivi element sekvencijalno, a zatim se ponavljajući. Trenutno postoji 6 različitih elemenata.

Elementi menija - oni ne prikazuju informacije, ali kada se dodirnu, izvršavaju pridruženu potprogram identificiranu u parametrima elementa

Digitalni elementi - prikazuju se kao okvir na ekranu ili crveni ili zeleni, ovisno o statusu pridruženog pina za digitalni ulaz. Primjer konzole ožičen je za 8 digitalnih pinova, ali se po želji može povećati ili smanjiti.

Analogni elementi - prikazuju približni napon izmjeren na pridruženom analognom pinu. Četiri su izvorno navedene.

Precizni elementi - prikaz ulaza iz vanjskog preciznog modula mjerača volta/struje. Postoje samo tri od njih, ali bi se mogao dodati drugi ili treći modul.

Element otpora - ovo je jedan element koji prikazuje ulaz sa mjerača otpora.

Dodir - ovo je jedina rutina koja se uvijek izvršava kako bi se otkrilo da li je ekran dodirnut, a zatim donijela odluka na osnovu onoga što je dodirnuto. tj. ako je stavka menija, šta to znači da se zatim prikazuje dalje.

Zaslon ima tri načina statusa, normalni, veliki i cijeli zaslon, a svi elementi mijenjaju svoj rad ovisno o statusu. Tri načina rada se mogu izabrati u meniju dodirom na element i odgovarajuću opciju menija.

Normalni način rada - prikazuje 8 digitalnih ulaza, četiri analogna naponska ulaza, tri precizna elementa, element otpora i četiri elementa izbornika. Odabirom Normal iz menija prikaz se prebacuje u ovaj način rada.

Veliki način rada - odabire se dodirom bilo kojeg elementa na ekranu, a zatim velikim. Kada je odabran, jedini tip elementa je odabran, a elementi tog tipa preuređuju se tako da ispune cijeli zaslon.

Režim prikaza preko celog ekrana - bira se dodirom bilo kog elementa na ekranu, a zatim i stavkom Ceo ekran. Kada je odabran, taj element je jedini prikazani element i preuređen je tako da ispuni cijeli ekran pružajući maksimalnu vidljivost te jedne stavke.

Za dodavanje dodatne funkcionalnosti potrebno je dodati sljedeće rutine

'draw' rutina koja se poziva da dobije informacije za taj element, pozove odgovarajuću rutinu ažuriranja ekrana i registrira vraćene informacije o dodiru

'logička' rutina koja prihvaća informacije iz rutine crtanja i koristi odgovarajuće rutine upravljačkog programa za prikaz kako bi stavila informacije na ekran i vratila ispravne informacije o dodiru za iscrtano područje ekrana

'setup' rutina koja se poziva kao dio Arduino postavke

Mogu se uključiti i druge rutine, ali ne bi trebalo biti međuovisnosti između koda elementa, ako element nije omogućen, tada se njegov kôd ne bi trebao izvršavati, a jednostavna multifunkcionalna struktura zadržava svoj integritet.

Korak 8: Uređivanje Arduino biblioteka

Uređivanje Arduino biblioteka
Uređivanje Arduino biblioteka
Uređivanje Arduino biblioteka
Uređivanje Arduino biblioteka

Zaslon koji sam koristio radi jako dobro s Arduino Uno i osnovnim bibliotekama napisanim za njega, ali radi sporo kada se izravno prenese na Arduino Mega. Da biste ispravno pokrenuli ekran, morate koristiti drugačiji set pinova podataka i tu promjenu upotrebe morate postaviti u bibliotekama. Ovo je jednostavna promjena koju je autor zamislio. Slike ističu izvršene promjene.

Dvije datoteke su pohranjene u fascikli MCUFRIEND_kbv / utility kao mcufriend_shield.h i mcufriend_special.h. Potrebne promjene su prvo u datoteci zaglavlja 'shield' kako bi se osiguralo čitanje prvog retka

#define USE_SPECIAL

kako biste bili sigurni da je učitana "posebna" datoteka zaglavlja.

'Posebna' datoteka zaglavlja također se mora ažurirati kako bi se osiguralo da linija

#define USE_MEGA_8BIT_PROTOSHIELD

je bez komentara.

Ove dvije promjene znače da će kôd prikaza za ovaj zaslon raditi pomoću pinova 20-29 na Arduino Mega umjesto zadanih 3-10 na Uno-u.

Korak 9: Snimci ekrana

Snimke ekrana
Snimke ekrana
Snimke ekrana
Snimke ekrana
Snimke ekrana
Snimke ekrana

Ovdje sam stavio snimke ekrana tako da je lako vidjeti šta bi konzola trebala raditi. Sljedeći odjeljak odnosi se na učitavanje koda u Arduino.

Prvi ekran prikazuje 'normalni' ekran s izbornicima na vrhu, mjerenjima napona na LHS -u, mjerenjima napona i struje na RHS -u i statusom digitalnog pina s donje strane, crveno za 'lažno/nisko', zeleno za 'istinito/visoko' '. Konačno u centru je mjerenje otpora.

Na drugom ekranu prikazani su digitalni ulazi omogućeni u režimu Veliki, pri čemu je svaki ulaz jasno prikazan.

Treći ekran prikazuje naponske ulaze u modu Large.

Korak 10: Učitavanje Arduino koda

Kôd je u privitku, ali kao što je ranije spomenuto bit će postavljen na github u neko vrijeme i ovdje će se dodati lokacija. Glavna datoteka izvornog koda je Arduino_Workbench_v01.ino, a ostale rutine pružaju različite mogućnosti.

Ako su knjižnice u redu izmijenjene i Arduino Mega2650 je postavljen kao ciljna platforma u Arduino IDE -u, tada bi se kôd trebao kompajlirati prvi put.

Biblioteke koje će se morati učitati su Adafruit GFX i biblioteke sa ekranom osjetljivim na dodir koje bi trebale biti dostupne od upravitelja biblioteke Arduino, kopija MCUFRIEND_kbv koja se može preuzeti s githuba, a za INA3221, SwitchDocLabs biblioteka SDL_Arduino_INA3221 također se može brzo preuzeti, obje se mogu brzo preuzeti Google pretraga.

Korak 11: Završni dodiri

Završni dodiri
Završni dodiri
Završni dodiri
Završni dodiri
Završni dodiri
Završni dodiri
Završni dodiri
Završni dodiri

Ideja je da se koristi za projektne radove, tako da je napravljena uklonjiva ploča koja sadrži pričvrsne vijke za Arduino ploče i ploču za hranjenje, cijelu pričvršćenu na poklopac pomoću čičak trake kako bi se odvojile i tako da se mogu napraviti različite ploče koje sadrže projekte i da se okvir može ponovo koristiti za različite projekte koji se izvode istovremeno.

Očekujem da će ovo biti izvor za nekoliko ideja da se učini nešto drugačije, bolje ili oboje. Dodaću dodatne funkcije koje sam spomenuo i dodaću ih, ali ako vam ovo može pomoći, uzmite ono što želite i uživajte. Ako postoje neki ozbiljni problemi, molimo vas da me obavijestite.

Trenutno ću početi s korištenjem, moram raditi na nekoliko projekata!

Preporučuje se: