Sisukord:

Pisike LED maatriksi ekraan: 8 sammu
Pisike LED maatriksi ekraan: 8 sammu

Video: Pisike LED maatriksi ekraan: 8 sammu

Video: Pisike LED maatriksi ekraan: 8 sammu
Video: Исцеление через время: возвращение чистой ДНК с помощью регрессивной терапии 2024, Juuli
Anonim
Image
Image
Pisike LED maatriksi ekraan
Pisike LED maatriksi ekraan
Pisike LED maatriksi ekraan
Pisike LED maatriksi ekraan
Pisike LED maatriksi ekraan
Pisike LED maatriksi ekraan

Olen alati tahtnud omada vanaaegset töölauakella, mis näeb välja nagu midagi 90ndate filmidest, üsna tagasihoidliku funktsionaalsusega: reaalajas kell, kuupäev, taustavalguse muutumine, piiks ja äratus. Niisiis, mul on idee selle ehitamiseks: digitaalne seade, mis põhineb mikrokontrolleril, millel on kõik ülalmainitud funktsioonid ja mida toidab USB - kas arvuti või mis tahes mobiilne USB -laadija. Kuna ma tahtsin muuta selle programmeeritavaks, menüüde ja seadete kohandamisega, oli MCU paigutus selles projektis vältimatu. ATMEGA328P IC (millest iga Arduino Uno plaat koosneb) valiti vooluringi "ajuks" (millest rääkides oli mul neid lihtsalt palju). Kombineerides mõned elektroonilised osad nagu RGB LED, nihkelaadimise ajaarvamise kiip ja nupud võimaldasid sündida kogu projekti-programmeeritav väikese suurusega LED-ekraaniga töölaua kell.

Niisiis, pärast projekti olemi käsitlemist ehitame selle üles

Samm: idee

Idee
Idee

Nagu varem mainitud, sisaldab meie seade mõningaid nägusaid LED-maatriksekraane, värvi muutvat RGB-LED-taustvalgustust, nihkelaenguga ajaarvamise kiipi, mugavat USB-toiteplokki ja väikese suurusega korpust.

Kirjeldame seadme toimimise plokkskeemi osade kaupa:

1. Toiteplokk:

Kuna seade töötab 5 V alalisvoolul, koosneb toiteallikas kahest eraldi ahelast:

  • Micro -USB sisend - otsese laadija / arvuti toiteallika jaoks.
  • 5V lineaarne pingeregulaatori ahel, mis põhineb LM7805 IC -l.

LM7805 IC -ahel on valikuline, kui te ei soovi rakendada erinevat toiteallika kättesaadavust. Meie seadmes kasutatakse Micro-USB toiteallikat.

2. Mikrokontroller:

Mikrokontroller ATMEGA328P toimib kogu seadme "ajuna". Selle eesmärk on suhelda kõigi välisseadmetega, pakkuda vajalikke andmeid ja juhtida seadme kasutajaliidest. Kuna valitud mikrokontroller on ATMEGA328P, vajame Atmel Studio'i ja C -põhiteadmisi (skeeme ja programmeerimisjärjestusi kirjeldatakse järgmistes etappides).

3. Reaalajas kellaahel:

Seadme tähtsuselt teine ahel. Selle eesmärk on esitada kuupäeva ja kellaaja andmed koos nende säilitamise nõudega, sõltumata sisendtoiteühendusest, st ajaandmeid värskendatakse reaalajas. Selleks, et RTC komponent saaks jätkata kellaaja ja kuupäeva andmete muutmist, lisatakse vooluahelasse 3V mündipatarei. IC on DS1302, selle toimimist on kirjeldatud järgmistes etappides.

4. Sisendliides - nuppude lülitid:

Sisend PB lülitid pakuvad kasutajale sisendliidest. Neid lüliteid töödeldakse MCU ja juhtimisseadme määratletud programmis.

5. LED maatriksekraan

Seadme ekraan koosneb kahest IC-mähisega HCMS-2902 tähtnumbrilisest LED-maatriksist, igal IC-l on 4 tähemärki 5x7 pisikest LED-maatriksit. Neid kuvasid on lihtne kasutada, 3-juhtmeline side on toetatud ja väikesed-kõik, mida me selles projektis vajame.

6. RGB taustvalgus:

Värvimuutva taustvalgustuse aluseks on väline RGB LED, mida juhivad MCU -st tulevad PWM -signaalid. Selles projektis on RGB LED -il kokku 4 tihvti: R, G, B ja tavaline, kus R, G, B värvipaleti juhib PWM kaudu MCU.

7. Sumin:

Helisignaalina kasutatakse helisignaali, peamiselt häirete jaoks. BJT -lülitit kasutatakse summeri komponendile piisava voolu tagamiseks, nii et selle helitugevus on piisavalt suur, et äratada elav inimene.

2. samm: osad ja instrumendid

Osad ja instrumendid
Osad ja instrumendid

I. Elektroonika:

A. Integreeritud ja aktiivsed komponendid:

  • 1 x ATMEGA328P - MCU
  • 2 x HCMS2902 - AVAGO kuvarid
  • 1 x DS1302 - RTC
  • 1 x 2N2222A - BJT (NPN)

B. Passiivsed komponendid:

  • Takistid:

    • 5 x 10K
    • 1 x 180R
    • 2 x 100R
  • Kondensaatorid:

    • 3 x 0,1 uF
    • 1 x 0,47 uF
    • 1 x 100uF
    • 2 x 22 pF
  • 1 x 4-kontaktiline RGB LED
  • 1 x helisignaal
  • 1 x 32.768KHz kristall

C. Pistikud:

  • 1 x Micro-USB pistik
  • 2 x 6-kontaktiline standardkõrgusega (100mil) pistik.
  • 2 x 4-kontaktiline standardkõrgusega (100mil) pistik.
  • 1 x mündipatarei aku.

D. Mitmesugused:

  • 3 x SPST nupuvajutusega lülitit
  • 1 x 3V mündipatarei.

E. Valikuline toiteallikas:

  • 1 x LM7805 - lineaarne regulaator
  • 2 x 0,1 uF kork
  • 2 x 100uF kork

II. Mehaaniline:

  • 1 x plastkorpus
  • 4 x kummist kinnitused
  • 1 x jootmisplaadi prototüüp
  • 1 x MCU päis (mikrokontrolleri rikke korral)
  • 2 x väikesed 8 mm poldid
  • 2 x 8 mm seibid

III. Instrumendid ja materjalid:

  • Jootetraadid
  • Kahanevad torud
  • Jootmisvorm
  • Jootekolb
  • Lõikur
  • Tang
  • Pintsetid
  • Puurid
  • Väikese suurusega fail
  • Erinevad kruvikeerajad
  • Kalibreerimine
  • Multimeeter
  • Leivalaud (valikuline)
  • Micro USB kaabel
  • Keskmise suurusega fail
  • Kuum liimipüstol
  • AVR ISP programmeerija

IV. Programmeerimine:

  • Atmel Studio 6.3 või 7.0.
  • ProgISP või AVRDude
  • Microsoft Excel (kuvamärkide loomiseks)

3. samm: skeemi kirjeldus

Skeem Kirjeldus
Skeem Kirjeldus

Vooluahela toimimise mõistmise hõlbustamiseks on skemaatiline samm jagatud seitsmesse alamrühma. Pange tähele, et skemaatilisel lehel on määratletud võrgunimed, mis määratlevad ka ühendused seadme eraldi ahelate vahel.

A. Põhikomponentide plaat:

Nagu varem mainitud, on kõik sobivad ahelad, mille tahame seadme "sees" olla, paigutatud ühe lõikega prototüüpplaadile. Jätkame emaplaadile paigutatud ahelate toimimise selgitamisega:

1. Mikrokontrolleri ahel:

Selles projektis kasutatav MCU on ATMEGA328P. Seda toidab väline 5 V toiteallikas, antud juhul - mikro -USB -pistik. Kõik asjakohased sisend-/väljundpistikud on ühendatud vastavalt projekteerimisnõuetele. Portide I/O kaardistamist on lihtne mõista, kuna kõik võrgu nimed on määratletud täpselt nii, nagu neid programmeerimisetapis kasutatakse. MCU -l on lihtne RC lähtestamisskeem, mida kasutatakse kas programmeerimisjärjestuses ja toite initsialiseerimisel.

MCU oluline osa on programmeerimisahel. Seal on 6 -kontaktiline programmeerimispistik - J5, veenduge, et VCC, GND ja RESET võrgud on välise ISP programmeerija ja põhikomponentide plaadi jaoks ühised.

2. Reaalajas kellaahel:

Järgmine vooluring on projekti peamine perifeerne osa. DS1302 on nihkelaadimise ajaarvestuse IC, mis pakub meie töötlemisüksusele töödeldud kellaaja ja kuupäeva väärtusi. DS1302 suhtleb MCU-ga 3-juhtmelise liidese kaudu, mis on sarnane 3-juhtmelise SPI-sidega, järgmistel liinidel:

  • RTC_SCK (väljund): viib läbi SDO liinil edastatavate andmete sõidu ja proovide võtmise.
  • RTC_SDO (I/O): andmesõiduliin. Toimib sisendina MCU -sse kellaaja/kuupäeva andmete vastuvõtmisel ja väljundina andmete edastamisel (lisateabe saamiseks vt Programmeerimise põhialused).
  • RTC_CE: (Väljund): andmeedastuse lubamise liin. Kui MCU on määranud HIGH, on andmed edastamiseks/vastuvõtmiseks valmis.

DS1302 vajab ahela piisavaks käitumiseks välist 32,768 kHz kristallostsillaatorit. Suurte triivide vältimiseks vooluahelate loendussüsteemil (seda tüüpi integraallülituste triivimised on lihtsalt vältimatud), tuleb igale kristallpoldile paigutada kaks kalibreerivat kondensaatorit (vt skeemid X1, C8 ja C9). 22pF oli optimaalsed väärtused pärast paljusid katseid, mis hõlmasid selles projektis aja hoidmise meetmeid, nii et kui kavatsete vooluringi täielikult jootma hakata, veenduge, et on olemas võimalus asendada need kondensaatorid teiste väärtustega. Kuid 22pF väikese suurusega plaadi jaoks töötas päris hästi väga väikese triivi korral (7 sekundit kuus).

Selle vooluahela viimane, kuid mitte vähem oluline komponent-3V mündipatarei tuleks panna plaadile, et varustada DS1302 IC piisavalt energiaga, nii et see jätkaks aja lugemist.

4. 8 tähemärki LED maatriks:

Seadme kuvamine põhineb 2 x 4 tähemärgi LED-maatriksekraanil, mis on programmeeritud 3-juhtmelise liidese kaudu, sarnaselt RTC-ahela DS1302-le, ühe erinevusega, et andmete edastamise liin (SDI) on määratletud kui MCU väljund (kui te ei soovi lisada oleku kontrollimise võimalus teie ekraanilülitusele). Ekraanid on kombineeritud 3-juhtmelise pikendusega, seega toimivad mõlemad IC-d ühe ekraaniseadmena, kus on võimalik see programmeerida kõigi kuvatähtede määratluse jaoks (vt SPI-seeria kombinatsioon). Kõik vooluahela võrgu nimed vastavad MCU vastavatele ühendustele - pange tähele, et on olemas ühised võrgud, mis loovad ühenduse kuvarite vahel, ja pole vaja mõlemat kuvari haridusliidest MCU -ga ühendada. Programmeerimine ja iseloomu loomise järjestus on määratletud järgmistes etappides. Kasutajaliidese ahel:

Kasutajaliides on jagatud kaheks alamrühmaks-sisend- ja väljundsüsteemid: sisendsüsteem: seadmel endal on kasutaja sisend, mis on määratletud kolme SPST-nupulülitina koos täiendavate tõmbetakistustega, et juhtida määratletud loogikat kas kõrgele või madalale MCU. Need lülitid pakuvad kogu programmeeritud algoritmi juhtimissüsteemi, kuna on vaja reguleerida kellaaja/kuupäeva väärtusi, menüüjuhtimist jne.

6. Väljundisüsteem:

A. summeri ahel tagab heliväljundi mõlemas olekus, menüü vahetamine kinnitab heli ja alarmi algoritmi. Lülitina kasutatakse NPN -transistorit, mis annab suminale piisavalt voolu, muutes selle sobiva helina. Suminat juhib otse MCU tarkvara. B. RGB LED -i kasutatakse seadme taustvalgustuse osana. Seda juhib otse MCU, taustvalgustuse valimiseks on neli võimalust: PUNANE, ROHELINE, SININE, PWM- või OFF -režiim. Pange tähele, et takistitel, mis on järjestikku ühendatud LED -i R, G ja B tihvtidega, on erinevad väärtused, kuna iga värv on erineva intensiivsusega püsiva voolu korral. Roheliste ja siniste valgusdioodide puhul on samad omadused, kui punase valgustugevus on veidi suurem. Seega on punane LED ühendatud suurema vastupanuväärtusega - antud juhul: 180Ohm (vt RGB LED -i selgitus). Pistikud:

Pistikud on paigutatud emaplaadile, et võimaldada sidepidamist selliste väliste liidesekomponentide vahel nagu: ekraan, RGB LED, toitesisendi ja nuppude lülitid ning emaplaat. Iga pistik on pühendatud erinevatele vooluringidele, seega väheneb seadme kokkupanemise keerukus dramaatiliselt. Nagu skeemilt näha, on iga pistikuvõrgu tellimine vabatahtlik ja seda saab vahetada, kui see muudab juhtmestiku palju lihtsamaks. Pärast kõigi skeemide käsitlemist oleme jätkanud järgmise sammuga.

4. samm: jootmine

Jootmine
Jootmine
Jootmine
Jootmine
Jootmine
Jootmine

Ilmselt mõnele meist on see kogu projekti kõige raskem samm. Seadme võimalikult kiireks tööle panemise hõlbustamiseks tuleks jootmisprotsess lõpule viia järgmises järjestuses:

1. MCU ja programmeerimispistik: MCU enda asemel on soovitatav joota 28 kontaktiga päis, et saaks rikke korral asendada MCU IC. Veenduge, et seadet oleks võimalik programmeerida ja sisse lülitada. Soovitav on asetada tihvtide kirjelduse kleebis programmeerimispistikule (vt kolmas pilt).

2. RTC -ahel: pärast kõigi vajalike osade jootmist veenduge, et kalibreerivaid kondensaatoreid on lihtne asendada. Kui soovite kasutada 3V mündiaku akut - veenduge, et see vastab seadme korpuse mõõtmetele.

3. Ekraan: kaks ekraani IC-d tuleks joota eraldi väikese suurusega tahvlile (joonis 1). Pärast kõigi vajalike võrkude jootmist on vaja ette valmistada juhtmed (joonis 4): need juhtmed tuleks joota ja juhtida ekraaniplaadi küljele, pange tähele, et juhtmetele avaldatav pinge ja mehaaniline pinge ei mõjutada jooteühendusi ekraaniplaadil.

4. Eelmise etapi juhtmetele tuleks asetada etiketikleebised - see lihtsustaks järgmises etapis kokkupanekut oluliselt. Valikuline samm: lisage igale juhtmele isane ühe kontaktiga pistik (Arduino stiil).

5. Jootke emaplaadi ülejäänud pistikud, sealhulgas välisseadmed. Taas on soovitatav iga pistiku jaoks asetada kleebised koos tihvti kirjeldusega.

6. Signaali ahel: sumin asub seadme sees, nii et see peaks olema joodetud emaplaadil, pole vaja ühendavat pistikut.

7. RGB LED: Põhiplaadi ruumi säästmiseks olen joodetud seeria takistid LED -tihvtidele, kus iga takisti vastab oma sobivale värvile ja sobivale MCU -tihvtile (joonis 5).

5. samm: kokkupanek

Kokkupanek
Kokkupanek
Kokkupanek
Kokkupanek
Kokkupanek
Kokkupanek

See samm määratleb projekti välimuse - elektrilise ja mehaanilise. Kui kõiki soovitatud märkusi arvesse võeti, muutub monteerimisprotsess väga lihtsaks. Järgmine samm-sammuline jada annab täieliku teabe protsessi kohta:

Osa A: Korpus

1. Puurige kolm auku vastavalt nupunupu läbimõõdule (antud juhul 3 mm). Puurige korpuse küljele üks summerile mõeldud auk. Kasutada võib soovitud puurvarda läbimõõtu.3. Puurige peenestamiseks väike auk vastavalt kasutatavale USB -pistikule (antud juhul Micro USB). Pärast seda tehke lihvimine väikese suurusega viiliga, et see vastaks pistiku mõõtmetele. Puurige lihvimise aluseks suhteliselt suur auk. Lihvige keskmise suurusega viiliga vastavalt ekraani mõõtmetele. Veenduge, et ekraani IC -d oleksid korpuse välisküljel. Puurige seadme põhjale keskmise suurusega auk vastavalt RGB LED läbimõõdule. B osa - manused:

1. Jootke kaks juhet iga kolme nupu (GND ja signaal) külge. Soovitatav on siltidel kleebised ja juhtmetega ühe kontaktiga pistikud.2. Kinnitage neli ettevalmistatud juhet RGB LED -tihvtide külge. Asetage jootekohtadele etiketikleebised ja kahanevad torud.3. Kinnitage seadme põhjale neli kummist jalga. C osa - osade ühendamine:

1. Asetage RGB LED korpuse põhja, ühendage see emaplaadi spetsiaalse pistikuga. Kinnitage see kuuma liimiga.2. Asetage kolm vajutusnuppu, ühendage need emaplaadi spetsiaalse pistikuga ja kinnitage need kuuma liimiga. Asetage USB -pistik, ühendage see programmeerimispistiku toiteplokkidega (VCC ja GND). Veenduge, et toitejuhtmete polaarsus vastaks joodetud osadele. Kinnitage see kuuma liimiga.4. Asetage ekraaniplaat, ühendage see spetsiaalse pistikuga. Kinnitage see kuuma liimiga. Märkused:

1. Põhiplaadi korpusele ja ülemisele kattele on soovitatav lisada polt-mutterpaarid (nagu antud juhul näidatud).2. Katkiste juhtmete rikke vältimiseks tuleb need kinnitada oma välimusega korpuse sees.

6. samm: lühike programmeerimise sissejuhatus

Programmeerimise lühitutvustus
Programmeerimise lühitutvustus
Programmeerimise lühitutvustus
Programmeerimise lühitutvustus
Programmeerimise lühitutvustus
Programmeerimise lühitutvustus

Pärast kõigi osade jootmist on soovitatav enne seadme montaaži viimast etappi seadme esmane testimine läbi viia. MCU kood kirjutatakse tähega C ja ATMEGA328P programmeeritakse mis tahes Interneti -teenuse pakkuja kaudu (Atmel programmeerimisseadmeid on erinevat tüüpi: AVR MKII, AVR DRAGON jne - olen kasutanud eBayst odavat USB ISP programmeerijat, mida juhib ProgISP või AVRDude tarkvara). Programmeerimiskeskkond peab olema Atmel Studio 4 ja uuem (soovitan tungivalt tarkvara uusimaid versioone). Kui kasutatakse välist, mitte Atmel Studiole omast programmeerijat, tuleb programmeerimistarkvarale anda.hex -failitee (asub tavaliselt projekti silumis- või vabastamiskaustas). Veenduge, et enne monteerimisetappi jätkamist saab seadme programmeerida ning kõik AVR -i põhilised projektide koostamise ja koostamise protsessid põhinevad ATMEGA328P mikrokontrolleril (vt Atmel Studio juhend).

Samm: koodi kirjeldus

Koodi kirjeldus
Koodi kirjeldus
Koodi kirjeldus
Koodi kirjeldus

Deklaratsioonikoodi algoritm on kihistatud kaheks pool-eraldatud kihiks: 1. Põhikiht: side välisseadmetega, seadme toimingute määratlus, lähtestamine ja komponentide deklaratsioonid. Liidese kiht: kasutaja-seadme interaktsioon, menüüfunktsioonid, kella/helisignaali/värvi/äratuse reguleerimine. Programmi järjestust on kirjeldatud pildil. 1, kus iga plokk vastab MCU olekule. Kirjeldatud programm toimib põhilise "operatsioonisüsteemina", mis pakub liidest riistvara ja välismaailma vahel. Järgmine selgitus kirjeldab programmi olulist toimimist osade kaupa: A osa: tuumikiht:

1. MCU I/O initsialiseerimine: Esiteks on vaja riistvarakomponendid lähtestada:- koodiga kasutatavad konstandid.- pordid I/O- liides.- välisseadmete deklaratsioonid.

2. Üldised põhifunktsioonid: mõningaid funktsioone kasutavad eraldi koodiplokid, määratlevad toimingud tihvtidel, mida tarkvara juhib:- RTC ja ekraaniplaadi side lubamine/keelamine.- summeri heli genereerimine sisse/välja.- 3-juhtmeline kell üles/kellaaja funktsioonid.- kuvab märgi loomise funktsioone. Välisseadmete initsialiseerimine: pärast I/O -portide konfigureerimist toimub ahelate funktsioonide vahelise side määratlus. Kui see on lõpetatud - MCU alustab RTC ja kuvamisahelate lähtestamist, kasutades ülal määratletud funktsioone.

4. Põhifunktsioonide määratlus: selles etapis on seade seadistatud ja valmis suhtlema mõne välisseadmega. Need funktsioonid määratlevad:- lülitite lülitite juhtimise- RGB LED-i töö (eriti PWM)- ruutjalaine sumin

5. Ekraani funktsioonid: ma ei leidnud Internetist palju kasutatud HSMS -i IC -de kohta, seega kirjutasin selle raamatukogu ise. Ekraanifunktsioonid pakuvad tähemärkide kuvamise funktsioone, sealhulgas ASCII märkide ja täisarvude kuvamist. Funktsioonid on kirjutatud üldistatud viisil, nii et kui on vaja kuvari funktsioone kuhugi koodist välja kutsuda, on neid lihtne kasutada, kuna neid üldistatakse toimingute järgi (näiteks: stringide kuvamine, ühe tähemärgi kuvamine jne).

6. RTC tööfunktsioonid: Kõik RTC funktsioonid on kirjutatud üldistatult (sarnaselt seadistatud kuvarifunktsioonidega) vastavalt DS1302 IC toimimisele. Kood põhineb kirjalikul raamatukogul, mis on gitHubis saadaval paljudes variatsioonides. Nagu näete lõplikus koodis, on kuvari ja RTC funktsioonide komplekt eraldi.c ja.h failides. B osa - liidesekiht:

1. Põhifunktsioon: jaotises void main () on kõigi peamiste initsialiseerimisfunktsioonide deklaratsioon. Kohe pärast kõigi komponentide lähtestamist siseneb MCU lõpmatusse ahelasse, kus seadme funktsioone juhib kasutaja.

2. Reaalajas lülitid, taustvalgustus ja ekraani juhtimine: MCU teostab lõpmatu ahelaga töötamise ajal seadme iga osa värskendamist. See valib, milliseid andmeid kuvada, millist nuppu vajutati ja milline taustvalgustuse režiim valiti.

3. Kasutajamenüü funktsioonid: neil funktsioonidel on puutaoline vorm (vt joonis X), kus menüü süsteem ja hierarhia on määratletud olekumasinaks. Iga olekumasin, mida juhib kasutaja sisend - vajutusnupp lülitub, seega kui sobiv nupp on vajutatud, muudab olekumasin oma väärtust. See on konstrueeritud nii, et kõiki menüüs tehtud seadme muudatusi muudetakse koheselt.

4. Kasutajamenüü vahetamine: kui kasutaja sisend on saadaval, peab menüü olek oma olekut muutma. Seega pakuvad need funktsioonid olekumasina üle kasutajast sõltuvat kontrolli. Sel juhul: järgmine, eelmine ja OK.

Samm: lõppkood ja kasulikud failid

Ja see ongi kõik! Selles etapis leiate kõik failid, mida vajate:- Elektriskeem- Täielik lähtekood- Ekraanimärkide koostaja Valikuline funktsioon: kuvari IC-de teegis saab kuvada mitmesuguseid tähemärke, kuid mõned neist ei kuulu komplekti. Kui soovite tähemärke ise luua, lisage funktsioonis Print_Character ('') väiketäht koos ASCII viitega (vt funktsioone display.c). Loodan, et see juhend on teile kasulik:) Täname lugemise eest!

Soovitan: