Kazalo:

Majhna LED matrična ura za prikaz: 8 korakov
Majhna LED matrična ura za prikaz: 8 korakov

Video: Majhna LED matrična ura za prikaz: 8 korakov

Video: Majhna LED matrična ura za prikaz: 8 korakov
Video: Я работаю в Страшном музее для Богатых и Знаменитых. Страшные истории. Ужасы. 2024, November
Anonim
Image
Image
Majhna LED matrična ura na zaslonu
Majhna LED matrična ura na zaslonu
Majhna LED matrična ura na zaslonu
Majhna LED matrična ura na zaslonu
Majhna LED matrična prikazovalna ura
Majhna LED matrična prikazovalna ura

Vedno sem si želel imeti staromodno namizno uro, ki je videti kot nekaj iz filmov 90-ih, s precej skromnimi funkcijami: ura v realnem času, datum, spreminjanje osvetlitve ozadja, pisk in možnost alarma. Tako sem prišel z idejo, da zgradim eno: digitalno napravo, ki temelji na mikrokrmilniku z vsemi funkcijami, ki sem jih omenil zgoraj, in jo poganja USB - računalnik ali kateri koli mobilni polnilnik USB. Ker sem ga želel narediti programabilnega, z meniji in prilagoditvami nastavitev, je bila postavitev MCU v tem projektu neizogibna. ATMEGA328P IC (iz katerega je sestavljena vsaka plošča Arduino Uno) je bil izbran za "možgane" vezja (ko smo že pri tem, imel sem jih kar veliko). Združevanje nekaterih elektronskih delov, kot so RGB LED, čip za merjenje časa polnjenja in gumbi, je omogočil rojstvo celotnega projekta-namizno uro z LED zaslonom, ki jo je mogoče programirati.

Torej, potem ko smo zajeli entiteto projekta, jo gradimo

1. korak: Ideja

Ideja
Ideja

Kot smo že omenili, naša naprava vsebuje nekaj lepih LED matričnih zaslonov, RGB LED osvetlitev, ki spreminja barvo, čip za merjenje časa polnjenja, priročno napajalno enoto USB in majhno ohišje.

Opišimo blok diagram delovanja naprave po delih:

1. Napajalna enota:

Ker naprava deluje na 5 voltov enosmernega toka, je sestavni del napajalnika sestavljen iz dveh ločenih tokokrogov:

  • Vhod Micro -USB - Za neposredno napajanje polnilnika / računalnika.
  • 5V Linearno vezje regulatorja napetosti na osnovi IC LM7805.

IC vezje LM7805 je neobvezno, razen če želite uporabiti drugačno razpoložljivost vhodnega napajanja. V naši napravi se uporablja napajalnik Micro-USB.

2. Enota mikrokrmilnika:

Mikrokrmilnik ATMEGA328P, deluje kot "možgani" celotne naprave. Njegov namen je komunicirati z vsemi perifernimi vezji, zagotoviti potrebne podatke in upravljati uporabniški vmesnik naprave. Ker je izbran mikrokrmilnik ATMEGA328P, potrebujemo Atmel Studio in osnovno znanje C (sheme in zaporedja programiranja so opisani v nadaljnjih korakih).

3. Vezje ure v realnem času:

Drugo najpomembnejše vezje v napravi. Njegov namen je zagotoviti podatke o datumu in času z zahtevo po shranjevanju, brez odvisnosti od vhodne napajalne povezave, tj. Časovne podatke se osvežuje v načinu v realnem času. Da bi komponenta RTC lahko še naprej spreminjala podatke o času / datumu, je v vezje dodana 3V gumbna baterija. IC je DS1302, njegovo delovanje je opisano v nadaljnjih korakih.

4. Vhodni vmesnik - stikala s tipkami:

Vhodna stikala PB zagotavljajo vhodni vmesnik za uporabnika. Ta stikala se obdelujejo v programu MCU in krmilni napravi, ki ga določa program.

5. LED matrični zaslon

Zaslon naprave je sestavljen iz dveh alfa-numeričnih matrik LED, zavitih v IC, HCMS-2902, vsaka IC ima 4 znake majhne LED matrice 5x7. Ti zasloni so enostavni za uporabo, podpirajo 3-žično komunikacijo in so majhni-vse, kar potrebujemo v tem projektu.

6. RGB osvetlitev ozadja:

Osvetlitev za spreminjanje barve temelji na zunanji RGB LED, ki jo nadzirajo PWM signali, ki prihajajo iz MCU. V tem projektu ima RGB LED skupaj 4 zatiči: R, G, B in skupni, kjer barvno paleto R, G, B nadzoruje prek PWM MCU.

7. Zvočni signal:

Zvočni signal se uporablja kot zvočni izhod, predvsem za alarmne namene. Stikalo BJT se uporablja za zagotavljanje zadostnega toka komponente brenčalnika, zato bo glasnost dovolj glasna, da zbudi živo osebo.

2. korak: Deli in instrumenti

Deli in instrumenti
Deli in instrumenti

I. Elektronika:

A. Integrirane in aktivne komponente:

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

B. Pasivne komponente:

  • Upori:

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

    • 3 x 0,1 uF
    • 1 x 0,47 uF
    • 1 x 100uF
    • 2 x 22 pF
  • 1 x 4-polna RGB LED
  • 1 x zvonec
  • 1 x 32.768KHz kristal

C. Priključki:

  • 1 x priključek Micro-USB
  • 2 x 6-polni standardni priključek (100mil).
  • 2 x 4-polni standardni priključek (100mil).
  • 1 x Ovitek za gumbaste baterije.

D. Razno:

  • 3 x stikala s tipko SPST
  • 1 x 3V gumbna baterija.

E. Izbirni napajalnik:

  • 1 x LM7805 - Linearni regulator
  • 2 x 0,1uF pokrov
  • 2 x 100uF pokrov

II. Mehanski:

  • 1 x plastično ohišje
  • 4 x gumijasti nastavki
  • 1 x prototipna spajkalna plošča
  • 1 x glava MCU (v primeru okvare mikrokrmilnika)
  • 2 x majhni 8 mm vijaki
  • 2 x 8 mm podložke

III. Instrumenti in materiali:

  • Spajkalne žice
  • Krčne cevi
  • Spajkalnik
  • Spajkalnik
  • Rezalnik
  • Klešče
  • Pinceta
  • Vrtalniki
  • Datoteka majhne velikosti
  • Različni izvijači
  • Čeljust
  • Multimeter
  • Ogledna plošča (neobvezno)
  • Kabel mikro USB
  • Datoteka srednje velikosti
  • Pištola za vroče lepilo
  • AVR ISP programer

IV. Programiranje:

  • Atmel Studio 6.3 ali 7.0.
  • ProgISP ali AVRDude
  • Microsoft Excel (za ustvarjanje zaslonskih znakov)

3. korak: Opis sheme

Opis sheme
Opis sheme

Za lažje razumevanje delovanja vezja je shematski korak razdeljen na sedem podskupin. Upoštevati morate, da so imena omrežij opredeljena na shematski strani in določajo povezave med ločenimi podkrogi naprave.

A. Odbor za glavne komponente:

Kot smo že omenili, so vsa ustrezna vezja, za katera želimo, da so "znotraj" naprave, postavljena na eno izrezano prototipno ploščo. Nadaljujmo z razlago delovanja vezja na glavni plošči:

1. Vezje mikrokrmilnika:

MCU, ki se uporablja v tem projektu, je ATMEGA328P. Napaja ga zunanji 5V napajalnik, v tem primeru - priključek mikro USB. Vsi ustrezni vhodno/izhodni zatiči so povezani v skladu s konstrukcijskimi zahtevami. Kartiranje V/I portov je enostavno razumljivo, saj so vsa imena omrežij natančno določena, kot bodo uporabljena v koraku programiranja. MCU ima preprosto vezje za ponastavitev RC, ki se uporablja pri programiranju in inicializaciji napajanja.

Ključni del MCU je programsko vezje. Obstaja 6 -polni priključek za programiranje - J5, preverite, ali so mreže VCC, GND in RESET skupne zunanjemu programerju ISP in plošči glavnih komponent.

2. Vezje ure v realnem času:

Naslednje vezje je glavni periferni del projekta. DS1302 je IC za merjenje časa polnjenja, ki naši procesorski enoti zagotavlja obdelane vrednosti časa in datuma. DS1302 komunicira z MCU prek 3-žičnega vmesnika, podobno kot 3-žična komunikacija SPI, na naslednjih linijah:

  • RTC_SCK (izhod): Omogoča vožnjo in vzorčenje podatkov, ki se prenašajo po liniji SDO.
  • RTC_SDO (V/I): Podatkovna linija. Deluje kot vhod v MCU pri prejemu podatkov o času/datumu in kot izhod pri prenosu podatkov (za dodatno pojasnilo glejte korak Osnove programiranja).
  • RTC_CE: (Izhod): Omogočilna linija za prenos podatkov. Ko MCU nastavi HIGH, so podatki pripravljeni za prenos/sprejem.

DS1302 potrebuje zunanji kristalni oscilator 32,768 KHz za ustrezno vedenje vezja. Da bi se izognili velikemu premiku sistema štetja vezij (pojav premika je pri teh vrstah integriranih vezij neizogiben), je treba na vsak kristalni zatič namestiti dva kalibracijska kondenzatorja (glej dele X1, C8 in C9 v shemi). 22pF je bila po številnih poskusih z meritvami časovnega zamika v tem projektu optimalna vrednost, zato, ko boste v celoti spajkali vezje, se prepričajte, da obstaja možnost, da te kondenzatorje zamenjate s tistimi z drugimi vrednostmi. Toda 22pF za plošče majhne velikosti je zelo dobro delovalo pri zelo majhnih premikih (7 sekund na mesec).

Zadnjo, a ne najmanj pomembno komponento v tem vezju-3V gumbasto baterijo je treba namestiti na ploščo, da se dovaja dovolj energije v DS1302 IC, da bo lahko nadaljevala s štetjem časa.

4. LED -matrica 8 znakov:

Prikaz naprave temelji na 2 x 4-znanih IC matričnih matričnih zaslonih IC, programiranih prek 3-žičnega vmesnika, podobno kot DS1302 vezja RTC, z eno samo razliko, da je linija za zagotavljanje podatkov (SDI) opredeljena kot izhod MCU-ja (razen če želite dodati preverjanje stanja vašega vezja zaslona). Zasloni so združeni v serijsko 3-žilno razširitev, zato obe IC delujeta kot ena prikazovalna naprava, kjer jo je mogoče programirati za vse definicije prikaznih znakov (glej kombinacijo serije SPI). Vsa imena omrežij vezja se ujemajo z ustreznimi povezavami MCU - upoštevajte, da obstajajo skupne mreže, ki vzpostavljajo komunikacijo med zasloni, zato vam ni treba povezati obeh vmesnikov za komunikacijo zaslonov z MCU. Programiranje in sestavljanje znakov sta opredeljena v nadaljnjih korakih. Vezje uporabniškega vmesnika:

Uporabniški vmesnik je razdeljen na dve podskupini-Vhodni in izhodni sistemi: Vhodni sistem: Naprava sama ima vhod, ki ga je dal uporabnik, definiran kot tri stikalna stikala SPST, z dodatnimi vlečnimi upori, za pogon definirane logike bodisi VISOKO ali NIZKO do MCU. Ta stikala zagotavljajo nadzorni sistem za celoten programirani algoritem, saj je treba prilagoditi vrednosti časa/datuma, nadzor menija itd.

6. Izhodni sistem:

A. Zvočni signal zagotavlja zvočni izhod v obeh stanjih, preklop menija za potrditev zvoka in algoritem alarma. Tranzistor NPN se uporablja kot stikalo, ki zvočniku zagotavlja dovolj toka, zaradi česar se oglasi v ustrezni jakosti. Zvočni signal nadzira neposredno programska oprema MCU. B. RGB LED se uporablja kot del osvetlitve ozadja naprave. Upravlja ga neposredno MCU s štirimi možnostmi za izbiro osvetlitve ozadja: RDEČI, ZELENI, MODRI, PWM ali IZKLOP. Upoštevajte, da imajo upori, ki so zaporedno povezani z zatiči LED R, G in B, različne vrednosti, saj ima vsaka barva različno jakost pri stalnem toku. Za zelene in modre LED diode obstajajo enake značilnosti, ko ima rdeča nekoliko večjo intenzivnost. Tako je rdeča LED priklopljena na večjo vrednost upora - v tem primeru: 180Ohm (glej razlago LED RGB). Priključki:

Konektorji so nameščeni na glavni plošči, da omogočijo komunikacijo med zunanjimi vmesniškimi komponentami, kot so: Zaslon, RGB LED, Vhod za napajanje in stikala z gumbi ter glavna plošča. Vsak priključek je namenjen različnemu vezju, zato se kompleksnost sestavljanja naprave dramatično zmanjša. Kot lahko vidite na shemah, je vsako naročilo mrež priključkov neobvezno in jih je mogoče zamenjati, če je postopek ožičenja precej poenostavljen. Ko obravnavamo vse koncepte shem, nadaljujemo z naslednjim korakom.

4. korak: Spajkanje

Spajkanje
Spajkanje
Spajkanje
Spajkanje
Spajkanje
Spajkanje

Verjetno je za nekatere izmed nas to najtežji korak v celotnem projektu. Da bi olajšali delovanje naprave čim prej, je treba postopek spajkanja zaključiti v naslednjem zaporedju:

1. MCU in priključek za programiranje: priporočljivo je, da namesto MCU -ja spajkate 28 -polno glavo, da bi lahko v primeru okvare zamenjali IC MCU. Prepričajte se, da je mogoče napravo programirati in vklopiti. Priporočljivo je, da na konektor za programiranje namestite nalepko z opisom nožice (glejte tretjo sliko).

2. RTC vezje: po spajkanju vseh potrebnih delov se prepričajte, da je kalibracijske kondenzatorje enostavno zamenjati. Če želite uporabiti 3V ohišje za gumbaste baterije - se prepričajte, da ustreza dimenzijam ohišja naprave.

3. Zaslon: Na ločeno ploščo majhne velikosti morata biti spajkani dve IC-sliki (slika 1). Po spajkanju vseh potrebnih mrež je treba pripraviti zunanje žice (slika 4): te žice je treba spajkati in voditi na strani plošče zaslona. Upoštevajte, da napetosti in mehanske obremenitve žic ne bi vplivajo na spajkalne spoje na plošči zaslona.

4. Na žice iz prejšnjega koraka je treba namestiti nalepke z nalepkami - to bi v naslednjem koraku precej olajšalo postopek montaže. Izbirni korak: na vsako žico dodajte moški enopolni konektor (v slogu Arduino).

5. Spajkajte preostale priključke na glavni plošči, vključno s perifernimi komponentami. Še enkrat je priporočljivo, da za vsak priključek namestite nalepke z opisom nožice.

6. Zvočni signal: zvočni signal se nahaja v notranjosti naprave, zato ga je treba spajkati na glavni plošči, ni potrebe po medsebojno povezanem priključku.

7. LED RGB: Za prihranek prostora na glavni plošči sem serijske upornike spajkal na LED zatiče, pri čemer vsak upor ustreza svoji ujemajoči se barvi in ustreznemu vtiču MCU (slika 5).

5. korak: Sestavljanje

Sestavljanje
Sestavljanje
Sestavljanje
Sestavljanje
Sestavljanje
Sestavljanje

Ta korak opredeljuje videz projekta - električni in mehanski. Če upoštevate vse priporočene opombe, postane postopek montaže zelo enostaven. To zaporedje po korakih ponuja popolne informacije o postopku:

Del A: Ohišje

1. Izvrtajte tri luknje glede na premer gumba gumba (v tem primeru 3 mm).2. Na strani ohišja izvrtajte eno luknjo, namenjeno brenčalniku. Uporabite lahko poljuben premer svedra. Izvrtajte majhno luknjo kot podlago za brušenje v skladu s priključkom USB, ki ga morate uporabiti (v tem primeru mikro USB). Po tem izvedite brušenje z majhno datoteko, ki ustreza dimenzijam priključka. Izvrtajte relativno veliko luknjo kot podlago za brušenje. Brušenje izvajajte s srednje veliko datoteko glede na dimenzije zaslona. Prepričajte se, da so na zunanji strani ohišja prisotne IC zaslone. Na dnu naprave izvrtajte srednje veliko luknjo v skladu s premerom LED RGB. Del B - Priloge:

1. Spajate dve žici na vsakega od treh gumbov (GND in signal). Priporočajo se nalepke z etiketami in enopolni priključki na žicah. Na zatiče RGB LED pritrdite štiri pripravljene žice. Na spajkalne spoje namestite nalepke z nalepkami in skrčljive cevi. Na spodnji del naprave pritrdite štiri gumijaste noge. Del C - Povezovanje delov:

1. RGB LED postavite na dno ohišja in ga priključite v namenski priključek na glavni plošči. Pritrdite ga z vročim lepilom. Namestite tri stikala na gumb, jih povežite z namenskim priključkom na glavni plošči in jih pritrdite z vročim lepilom. Namestite USB konektor, ga priključite na napajalne nožice priključka za programiranje (VCC in GND). Prepričajte se, da se polarnost napajalnih vodov ujema z spajkanimi deli. Pritrdite ga z vročim lepilom.4. Postavite ploščo zaslona, jo priključite na namenski priključek. Pritrdite ga z vročim lepilom.

1. Priporočamo, da v ohišje glavne plošče in zgornji pokrov dodate pare vijakov-matic (kot je prikazano v tem primeru).2. Da bi se izognili okvari pokvarjenih žic, jih pritrdite tako, da se upošteva njihov videz v ohišju.

6. korak: Kratek uvod v programiranje

Kratek uvod v programiranje
Kratek uvod v programiranje
Kratek uvod v programiranje
Kratek uvod v programiranje
Kratek uvod v programiranje
Kratek uvod v programiranje

Ko so vsi deli spajkani, je priporočljivo opraviti začetno preskušanje naprave, preden nadaljujete s končnim korakom montaže. MCU koda je zapisana v C, ATMEGA328P pa programirana prek katerega koli ISP programerja (obstajajo različne vrste programskih naprav Atmel: AVR MKII, AVR DRAGON itd. - Uporabil sem poceni USB ISP programer z eBaya, ki ga nadzira programska oprema ProgISP ali AVRDude). Programsko okolje mora biti Atmel Studio 4 in novejši (močno priporočam najnovejše različice programske opreme). Če uporabljate zunanji programer, ki ni lastnik programa Atmel Studio, morate programski programski opremi dati pot.hex datoteke (običajno se nahaja v mapi Debug ali Release projekta). Preden nadaljujete s korakom sestavljanja, lahko napravo programirate in kateri koli osnovni postopek izdelave in sestavljanja namenskega projekta AVR temelji na mikrokontrolerju ATMEGA328P (glejte vadnico Atmel Studio).

7. korak: Opis kode

Opis kode
Opis kode
Opis kode
Opis kode

Algoritem kode decice je razdeljen na dve pol ločeni plasti: 1. Jedrna plast: Komunikacija s perifernimi vezji, opredelitev delovanja naprav, inicializacija in deklaracije komponent. Sloj vmesnika: interakcija med napravo in uporabnikom, funkcija menija, nastavitev ure/brenčalnika/barve/alarma. Zaporedje programov je opisano na sliki. 1, kjer vsak blok ustreza stanju MCU. Opisani program deluje kot osnovni "operacijski sistem", ki zagotavlja vmesnik med strojno opremo in zunanjim svetom. Naslednja razlaga opisuje bistveno delovanje programa po delih: Del A: Osnovna plast:

1. Inicializacija V/I MCU: Najprej je treba inicializirati komponente strojne opreme:- konstante, ki se uporabljajo s kodo,- V/I portov- vmesnik,- deklaracije periferne komunikacije.

2. Osnovne splošne funkcije: Nekatere funkcije uporabljajo ločeni kodni bloki, operacije definiranja na zatičih, ki jih nadzira programska oprema:- Omogoči/onemogoči komunikacijo z RTC-jem in na plošči zaslona. funkcije navzgor/navzdol.- Prikaz funkcij za ustvarjanje znakov. Periferna inicializacija: Ko so I/O vrata konfigurirana, pride do komunikacije med opredelitvijo funkcij vezij. Ko konča - MCU začne inicializacijo RTC in prikaznih vezij z uporabo zgoraj definiranih funkcij.

4. Opredelitev osnovnih funkcij: Na tej stopnji je naprava nastavljena in pripravljena za komunikacijo z nekaterimi perifernimi vezji. Te funkcije opredeljujejo:- krmiljenje preklopa- delovanje RGB LED (zlasti PWM)- generator zvočnikov kvadratnih valov

5. Funkcije prikaza: Na internetu nisem našel veliko o IC -jih HSMS, ki sem jih uporabil, zato sem svojo knjižnico napisal sam. Zaslonske funkcije ponujajo popolno funkcijo prikaza znakov, vključno s prikazom znakov ASCII in poljubnih celih števil. Funkcije so zapisane na posplošen način, zato jih je, če je treba priklicati prikazne funkcije iz katerega koli dela kode, preprosto uporabiti, saj so posplošene po operaciji (na primer: prikaz nizov, prikaz z enim znakom itd.).

6. Funkcije delovanja RTC: Vse funkcije RTC so zapisane posplošeno (podobno kot nastavljene funkcije zaslona) v skladu z delovanjem DS1302 IC. Koda temelji na pisni knjižnici, ki je na voljo v številnih različicah na gitHubu. Kot boste videli v končni kodi, sta prikaz in nastavljene funkcije RTC vključene v ločeni datoteki.c in.h Del B - Sloj vmesnika:

1. Glavna funkcija: v razdelku void main () je deklaracija vseh osnovnih funkcij inicializacije. Takoj po inicializaciji vseh komponent MCU vstopi v neskončno zanko, kjer funkcionalnost naprave nadzoruje uporabnik.

2. Stikala v realnem času, osvetlitev ozadja in nadzor zaslona: Med delovanjem v neskončni zanki MCU izvede osveževanje na vsakem delu naprave. Izbere, katere podatke bo prikazal, kateri gumb je bil pritisnjen in kateri način osvetlitve ozadja je bil izbran.

3. Funkcije uporabniškega menija: Te funkcije imajo drevesno obliko (glej sliko X), kjer sta sistem menijev in hierarhija definirana kot stroj za stanje. Vsak avtomat za upravljanje stanja, ki ga upravlja uporabniški vnos - stikalo se preklopi, zato bo, ko pritisnete ustrezen gumb, stroj stanja spremenil svojo vrednost. Zasnovan je tako, da se vse spremembe v napravi, izvedene v meniju, takoj spremenijo.

4. Preklop uporabniškega menija: ko je vnesen uporabniški vnos, mora stanje menija spremeniti svoje stanje. Torej te funkcije zagotavljajo uporabniško odvisen nadzor nad strojem stanja. V tem konkretnem primeru: naslednji, prejšnji in OK.

8. korak: Končna koda in uporabne datoteke

In to je to! V tem koraku najdete vse datoteke, ki jih morda potrebujete:- električna shema- popolna izvorna koda- graditelj znakov na zaslonu izbirna funkcija: na voljo so različni znaki za prikaz v knjižnici zaslonskih IC, nekateri pa niso vključeni. Če želite sami ustvariti znake, v funkcijo Print_Character ('') dodajte stanje velikih črk z referenco ASCII (glejte funkcije display.c). Upam, da vam bo ta Instructable koristen:) Hvala za branje!

Priporočena: