Sadržaj:

Sitni LED matrični sat za prikaz: 8 koraka
Sitni LED matrični sat za prikaz: 8 koraka

Video: Sitni LED matrični sat za prikaz: 8 koraka

Video: Sitni LED matrični sat za prikaz: 8 koraka
Video: Я работаю в Страшном музее для Богатых и Знаменитых. Страшные истории. Ужасы. 2024, Studeni
Anonim
Image
Image
Sitni LED matrični sat sa zaslonom
Sitni LED matrični sat sa zaslonom
Sitni LED matrični sat sa zaslonom
Sitni LED matrični sat sa zaslonom
Sitni LED matrični sat sa zaslonom
Sitni LED matrični sat sa zaslonom

Oduvijek sam želio imati staromodni stolni sat, koji izgleda kao nešto iz filmova 90-ih, s prilično skromnom funkcionalnošću: sat u stvarnom vremenu, datum, mijenjanje pozadinskog svjetla, zvučni signal i mogućnost alarma. Pa sam došao na ideju da napravim jedan: digitalni uređaj, baziran na mikrokontroleru sa svim značajkama koje sam gore spomenuo, a pokreće ga USB - bilo računalo ili bilo koji mobilni USB punjač. Budući da sam ga htio učiniti programabilnim, s izbornicima i prilagodbom postavki, postavljanje MCU -a bilo je neizbježno u ovom projektu. ATMEGA328P IC (od kojeg se sastoji svaka Arduino Uno ploča) odabran je da bude "mozak" sklopa (kad smo već kod toga, samo sam ih imao dosta). Kombinirajući neke elektroničke dijelove kao što su RGB LED, čip za mjerenje vremena punjenja i tipke, omogućili su rađanje cijelog projekta-stolni sat s LED zaslonom malih dimenzija koji se može programirati.

Dakle, nakon što smo pokrili cjelinu projekta, izgradimo je

Korak 1: Ideja

Ideja
Ideja

Kao što je već spomenuto, naš uređaj sadrži neke lijepe LED matrične zaslone, RGB LED pozadinsko osvjetljenje koje mijenja boju, čip za mjerenje vremena za punjenje, prikladnu USB jedinicu za napajanje i kućište male veličine.

Opišimo blok dijagram rada uređaja po dijelovima:

1. Jedinica za napajanje:

Budući da uređaj radi na 5 V DC, komponenta napajanja sastoji se od dva odvojena kruga:

  • Mikro -USB ulaz - Za izravno napajanje punjača / računala.
  • Krug linearnog regulatora napona 5V na bazi IC LM7805.

IC krug LM7805 nije obavezan, osim ako ne želite implementirati drugačiju dostupnost ulaza napajanja. U našem uređaju koristi se Micro-USB PSU.

2. Jedinica mikrokontrolera:

Mikrokontroler ATMEGA328P, djeluje kao "mozak" cijelog uređaja. Njegova je svrha komunicirati sa svim perifernim sklopovima, osigurati potrebne podatke i upravljačko sučelje upravljačkog uređaja. Budući da je odabrani mikrokontroler ATMEGA328P, trebat će nam Atmel Studio i osnovno znanje C (sheme i programske sekvence opisane su u daljnjim koracima).

3. Krug sata u stvarnom vremenu:

Drugi najvažniji krug u uređaju. Njegova je svrha pružiti podatke o datumu i vremenu, sa zahtjevom za pohranjivanjem, bez ovisnosti o priključku na ulaznu struju, tj. Vrijeme se osvježava u načinu rada u stvarnom vremenu. Kako bi RTC komponenta mogla nastaviti mijenjati podatke o vremenu i datumu, u krug se dodaje 3V dugmasta baterija. IC je DS1302, njegov rad je opisan u daljnjim koracima.

4. Ulazno sučelje - prekidači s tipkama:

Ulazni PB prekidači pružaju ulazno sučelje za korisnika. Ovi se prekidači obrađuju u programu definiranom za MCU i upravljački uređaj.

5. LED matrični zaslon

Prikaz uređaja sastoji se od dvije ICMS alfanumeričke LED matrice umotane u IC, svaka IC ima 4 znaka 5x7 male LED matrice. Ovi zasloni su jednostavni za upotrebu, podržavaju 3-žičnu komunikaciju i male su veličine-sve što nam treba u ovom projektu.

6. RGB pozadinsko osvjetljenje:

Pozadinsko osvjetljenje koje mijenja boju temelji se na vanjskoj RGB LED, kontrolira PWM signalima koji dolaze iz MCU -a. U ovom projektu RGB LED ima ukupno 4 pina: R, G, B i zajednički, gdje paletu boja R, G, B kontrolira putem PWM -a MCU.

7. Zvučni signal:

Sustav zujalice koristi se kao izlaz zvuka, uglavnom u svrhe alarmiranja. BJT prekidač koristi se za osiguravanje dovoljne struje do komponente zujalice, pa će njegova glasnoća biti dovoljno glasna da probudi živu osobu.

Korak 2: Dijelovi i instrumenti

Dijelovi i instrumenti
Dijelovi i instrumenti

I. Elektronika:

A. Integrirane i aktivne komponente:

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

B. Pasivne komponente:

  • Otpornici:

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

    • 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 zujalica
  • 1 x 32.768KHz kristal

C. Priključci:

  • 1 x Micro-USB priključak
  • 2 x 6-pinski standardni konektor (100mil).
  • 2 x 4-pinski standardni priključak (100mil).
  • 1 x kućište baterije na dugmastu bateriju.

D. Ostalo:

  • 3 x SPST prekidači s tipkama
  • 1 x 3V dugmasta baterija.

E. Opcijski PSU:

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

II. Mehanički:

  • 1 x Plastično kućište
  • 4 x Gumeni nastavci
  • 1 x prototip lemne ploče
  • 1 x MCU zaglavlje (u slučaju kvara mikrokontrolera)
  • 2 x mali vijci od 8 mm
  • 2 x 8 mm podloške

III. Instrumenti i materijali:

  • Lemne žice
  • Cijevi za skupljanje
  • Lim za lemljenje
  • Lemilica
  • Rezač
  • Klešte
  • Pinceta
  • Burgije
  • Datoteka male veličine
  • Razni odvijači
  • Čeljust
  • Multimetar
  • Oglasna ploča (izborno)
  • Mikro USB kabel
  • Datoteka srednje veličine
  • Pištolj za vruće ljepilo
  • AVR ISP programer

IV. Programiranje:

  • Atmel Studio 6.3 ili 7.0.
  • ProgISP ili AVRDude
  • Microsoft Excel (za izradu znakova na zaslonu)

Korak 3: Opis sheme

Opis shema
Opis shema

Kako bi se olakšalo razumijevanje rada kruga, korak shematizacije podijeljen je u sedam podgrupa. Trebali biste primijetiti da su nazivi mreža definirani na stranici sa shemom također definiraju veze između zasebnih podkrugova uređaja.

A. Odbor za glavne komponente:

Kao što je već spomenuto, svi odgovarajući podkrugovi za koje želimo da budu "unutar" uređaja postavljeni su na jednu izrezanu prototipnu ploču. Prijeđimo na objašnjenje rada sklopova na matičnoj ploči:

1. Krug mikrokontrolera:

MCU koji se koristi u ovom projektu je ATMEGA328P. Napaja se vanjskim 5V napajanjem, u ovom slučaju - mikro USB priključkom. Svi odgovarajući U/I pinovi spojeni su prema projektnim zahtjevima. Mapiranje I/O portova je lako razumljivo jer su svi nazivi mreža definirani točno onako kako će se koristiti u koraku programiranja. MCU ima jednostavan RC sklop za resetiranje, koji se koristi ili za programiranje niza i za inicijalizaciju napajanja.

Ključni dio MCU -a su programska kola. Postoji 6 -pinski konektor za programiranje - J5, provjerite jesu li mreže VCC, GND i RESET zajedničke za vanjski ISP programator i ploču glavnih komponenti.

2. Krug sata u stvarnom vremenu:

Sljedeći krug, glavni je periferni dio projekta. DS1302 je IC za mjerenje vremena punjenja, koji našoj procesorskoj jedinici daje obrađene vrijednosti vremena i datuma. DS1302 komunicira s MCU-om putem 3-žičnog sučelja, slično kao 3-žična SPI komunikacija, na sljedećim linijama:

  • RTC_SCK (izlaz): Izvodi vožnju i uzorkovanje podataka koji se prenose na SDO liniji.
  • RTC_SDO (I/O): Linija za prijenos podataka. Djeluje kao ulaz u MCU prilikom primanja podataka o vremenu/datumu i kao izlaz prilikom prijenosa podataka (za daljnja objašnjenja pogledajte korak Programiranje osnove).
  • RTC_CE: (Izlaz): Omogućavanje prijenosa podataka. Kad MCU postavi HIGH, podaci su spremni za prijenos/prijem.

DS1302 zahtijeva vanjski kristalni oscilator od 32.768KHz za odgovarajuće ponašanje kruga. Kako bi se izbjegao veliki pomak u sustavu za brojanje krugova (fenomen pomaka je neizbježan u ovim tipovima integriranih krugova), potrebno je postaviti dva kalibrirajuća kondenzatora na svaki kristalni pin (vidi dijelove X1, C8 i C9 u shemama). 22pF bile su optimalne vrijednosti nakon puno eksperimenata s mjerenjima mjerenja vremena u ovom projektu, pa se, kad namjeravate potpuno lemiti krug, pobrinite se da postoji mogućnost zamjene ovih kondenzatora onima s drugim vrijednostima. No 22pF za ploče malih dimenzija prilično je dobro funkcioniralo za vrlo male zanose (7 sekundi mjesečno).

Posljednja, ali ne i najmanje važna komponenta u ovom krugu-3V dugmasta baterija treba biti postavljena na ploču kako bi se DS1302 IC isporučio dovoljno energije kako bi nastavila svoj rad odbrojavanja vremena.

4. LED matrica od 8 znakova:

Prikaz uređaja temelji se na 2 x 4 znaka IC matrice matričnog zaslona, programirane putem trožilnog sučelja, slično kao DS1302 RTC sklopa, s jednom razlikom, ta linija za pružanje podataka (SDI) definirana je kao izlaz MCU-a (osim ako ne želite dodati sposobnost provjere statusa vašeg kruga zaslona). Zasloni su kombinirani u serijsko trožično proširenje, pa oba IC-a djeluju kao jedan uređaj za prikaz, gdje postoji mogućnost programiranja za sve definicije znakova prikaza (vidi kombinaciju serije SPI). Svi mrežni nazivi kruga odgovaraju odgovarajućim vezama MCU -a - imajte na umu da postoje zajedničke mreže koje uspostavljaju komunikaciju između zaslona, pa nema potrebe za povezivanjem oba sučelja za komunikaciju zaslona na MCU. Programiranje i razvoj znakova definirani su u daljnjim koracima.5. Krug korisničkog sučelja:

Korisničko sučelje podijeljeno je u dvije podgrupe-Ulazni i izlazni sustavi: Ulazni sustav: Sam uređaj ima unos koji je osigurao korisnik definiran kao tri prekidača s tipkom SPST, s dodatnim pull-up otpornicima, kako bi pokrenuo definiranu logiku ili VISOKU ili NISKU do MCU. Ovi prekidači pružaju sustav upravljanja za cijeli programirani algoritam, budući da je potrebno prilagoditi vrijednosti vremena/datuma, kontrolu izbornika itd.

6. Izlazni sustav:

A. Krug zujalice pruža zvučni izlaz u oba stanja, prebacivanje izbornika za potvrdu zvuka i algoritam alarma. NPN tranzistor koristi se kao prekidač, koji osigurava dovoljnu struju zujalici, pa zvuči odgovarajućom jakošću. Zvučni signal kontrolira izravno softver MCU -a. B. RGB LED se koristi kao dio pozadinskog osvjetljenja uređaja. Upravlja se izravno MCU -om, s četiri mogućnosti za odabir pozadinskog osvjetljenja: CRVENI, ZELENI, PLAVI, PWM ili OFF. Uočite da otpornici koji su serijski spojeni na LED R, G i B pinove imaju različite vrijednosti, budući da svaka boja ima različit intenzitet u odnosu na konstantnu struju. Za zelene i plave LED diode postoje iste karakteristike, kada crvena ima nešto veći intenzitet. Tako je crvena LED dioda spojena na veću vrijednost otpora - u ovom slučaju: 180Ohm (vidi objašnjenje RGB LED).7. Priključci:

Priključci su postavljeni na glavnu ploču kako bi omogućili komunikaciju između vanjskih komponenti sučelja kao što su: Zaslon, RGB LED, Ulazni napon i prekidači s prekidačima te glavna ploča. Svaki priključak je namijenjen različitom krugu, pa se složenost sastavljanja uređaja dramatično smanjuje. Kao što možete vidjeti na shemama, svaki redoslijed mreža konektora je opcionalan i može se zamijeniti ako znatno pojednostavljuje postupak ožičenja. Nakon što smo obuhvatili sve koncepte shema, idemo na sljedeći korak.

Korak 4: Lemljenje

Lemljenje
Lemljenje
Lemljenje
Lemljenje
Lemljenje
Lemljenje

Vjerojatno je za neke od nas to najteži korak u cijelom projektu. Kako biste olakšali rad uređaja što je prije moguće, postupak lemljenja treba dovršiti u sljedećem slijedu:

1. MCU i konektor za programiranje: preporučuje se lemljenje 28 -polnog zaglavlja umjesto samog MCU -a kako bi se mogla zamijeniti ICU IC u slučaju kvara. Provjerite može li se programirati i uključiti uređaj. Preporučuje se postavljanje naljepnice s opisom pina na priključak za programiranje (vidi treću sliku).

2. RTC krug: nakon lemljenja svih potrebnih dijelova, provjerite je li kalibracijske kondenzatore lako zamijeniti. Ako želite koristiti 3V kućište dugmaste baterije - provjerite odgovara li dimenzijama kućišta uređaja.

3. Zaslon: Dva IC zaslona moraju biti lemljena na zasebnoj ploči male veličine (slika 1). Nakon lemljenja svih potrebnih mreža, potrebno je pripremiti vanbrodske žice (slika 4): te žice trebaju biti lemljene i provedene sa strane ploče zaslona, imajte na umu da napetost i mehaničko naprezanje na žice ne bi utječu na lemne spojeve na ploči zaslona.

4. Na žice iz prethodnog koraka potrebno je staviti naljepnice s naljepnicama - što bi znatno olakšalo proces montaže u daljnjem koraku. Opcijski korak: dodajte muški jednopolni konektor na svaku žicu (Arduino stil).

5. Lemiti preostale konektore na glavnoj ploči, uključujući periferne komponente. Još jednom, preporučuje se postavljanje naljepnica s opisom pinova za svaki priključak.

6. Krug zujalice: zujalica se nalazi unutar uređaja, pa je potrebno lemiti na glavnu ploču, nema potrebe za međusobnim priključkom.

7. RGB LED: Radi uštede prostora na matičnoj ploči, lemio sam serijske otpornike NA LED pinove, pri čemu svaki otpornik odgovara vlastitoj boji i odgovarajućem MCU pinu (slika 5).

Korak 5: Sklapanje

Sklapanje
Sklapanje
Sklapanje
Sklapanje
Sklapanje
Sklapanje

Ovaj korak definira izgled projekta - električni i mehanički. Ako se uzmu u obzir sve preporuke, postupak montaže postaje vrlo jednostavan za izvođenje. Sljedeći korak-po-korak slijed daje potpune informacije o procesu:

Dio A: Ograđivanje

1. Izbušite tri rupe, u skladu s promjerom tipke (u ovom slučaju 3 mm).2. Izbušite jednu rupu za zujalicu sa strane kućišta. Može se koristiti bilo koji željeni promjer svrdla.3. Izbušite malu rupu kao osnovu za brušenje prema USB priključku koji biste trebali koristiti (u ovom slučaju Micro USB). Nakon toga izvedite brušenje turpijom male veličine kako bi odgovarali dimenzijama konektora.4. Izbušite relativno veliku rupu kao osnovu za brušenje. Brušenje izvršite turpijom srednje veličine, u skladu s dimenzijama zaslona. Uvjerite se da su IC ekrani prisutni na vanjskoj strani kućišta.5. Izbušite rupu srednje veličine na dnu uređaja prema RGB LED promjeru. Dio B - Privitci:

1. Lemite dvije žice na svaki od tri gumba (GND i signal). Preporučuju se naljepnice s naljepnicama i jednopolni konektori na žicama.2. Pričvrstite četiri pripremljene žice na RGB LED pinove. Na lemne spojeve stavite naljepnice naljepnica i cijevi za skupljanje.3. Pričvrstite četiri gumene nožice na dno uređaja. Dio C - Spajanje dijelova:

1. Postavite RGB LED na dno kućišta, spojite ga na namjenski konektor na glavnoj ploči. Pričvrstite ga vrućim ljepilom.2. Postavite tri prekidača na gumb, spojite ih na namjenski konektor na glavnoj ploči, pričvrstite ih vrućim ljepilom.3. Postavite USB konektor, spojite ga na priključke za napajanje konektora za programiranje (VCC i GND). Pazite da polaritet vodova za napajanje odgovara lemljenim dijelovima. Pričvrstite ga vrućim ljepilom.4. Postavite ploču zaslona, spojite je na namjenski konektor. Pričvrstite ga vrućim ljepilom.

1. Preporučuje se dodavanje parova vijak-matica u kućište glavne ploče i gornji poklopac (kao što je prikazano u ovom slučaju).2. Kako bi se izbjegao kvar slomljenih žica, u obzir se uzima njihovo pričvršćivanje s izgledom unutar kućišta.

Korak 6: Kratak uvod u programiranje

Kratak uvod u programiranje
Kratak uvod u programiranje
Kratak uvod u programiranje
Kratak uvod u programiranje
Kratak uvod u programiranje
Kratak uvod u programiranje

Nakon što su svi dijelovi lemljeni, preporučuje se provesti početno testiranje uređaja prije nego što prijeđete na posljednji korak montaže. MCU kôd je napisan na C, a ATMEGA328P je programiran putem bilo kojeg ISP programatora (Postoje različite vrste uređaja za programiranje Atmel: AVR MKII, AVR DRAGON itd. - Koristio sam jeftini USB ISP programator s eBaya, kojim upravlja softver ProgISP ili AVRDude). Programsko okruženje mora biti Atmel Studio 4 i novije verzije (toplo preporučujem najnovije verzije softvera). Ako se koristi vanjski programer koji nije svojstven Atmel Studiju, potrebno je programskom softveru dati putanju.hex datoteke (obično se nalazi u mapi Debug ili Release projekta). Prije nego što prijeđete na korak montaže, uređaj se može programirati, a svi osnovni AVR projektirani projekti i procesi kompilacije temeljeni su na mikrokontroleru ATMEGA328P (pogledajte vodič Atmel Studio).

Korak 7: Opis koda

Opis koda
Opis koda
Opis koda
Opis koda

Algoritam koda decice slojevit je u dva polu-odvojena sloja: 1. Jezgreni sloj: Komunikacija s perifernim krugovima, definicija rada uređaja, inicijalizacija i deklaracije komponenti.2. Sloj sučelja: Interakcija korisnika i uređaja, funkcionalnost izbornika, podešavanje sata/zujalice/boje/alarma. Slijed programa opisan je na slici. 1, gdje svaki blok odgovara MCU stanju. Opisani program djeluje kao osnovni "operacijski sustav" koji pruža sučelje između hardvera i vanjskog svijeta. Sljedeće objašnjenje opisuje bitno djelovanje programa po dijelovima: Dio A: Jezgreni sloj:

1. Inicijalizacija MCU I/O: Prije svega, potrebno je inicijalizirati hardverske komponente:- Konstante korištene kodom.- I/O portovi- Sučelje.- Deklaracije periferne komunikacije.

2. Osnovne opće funkcije: Neke funkcije koriste zasebni blokovi koda, operacije definiranja na pinovima koje kontrolira softver:- Omogući/onemogući komunikaciju putem RTC-a i ploče za prikaz.- Uključivanje/isključivanje zvučnog signala.- 3-žični sat gore/Smanjivanje funkcija.- Prikaz funkcija stvaranja znakova.3. Periferna inicijalizacija: Nakon što su I/O portovi konfigurirani, dolazi do komunikacije između definicije funkcija sklopova. Kada završi - MCU započinje inicijalizaciju RTC i prikaznih krugova pomoću funkcija koje su gore definirane.

4. Definicija osnovnih funkcija: U ovoj fazi uređaj je postavljen i spreman za komunikaciju s nekim perifernim krugovima. Ove funkcije definiraju:- Upravljanje prekidačem- RGB LED rad (osobito PWM)- Zvučni generator kvadratnih valova

5. Funkcije prikaza: Nisam našao mnogo na internetu o HSMS IC -ovima koje sam koristio, pa sam svoju biblioteku napisao sam. Funkcije prikaza pružaju potpunu funkciju prikaza znakova, uključujući prikaz ASCII znakova i bilo kojih cijelih brojeva. Funkcije su zapisane na generalizirani način, pa ako postoji potreba za pozivanjem funkcija prikaza iz bilo kojeg dijela koda, lako ih je koristiti jer su generalizirane operacijom (Na primjer: prikaz niza, prikaz s jednim znakom itd.).

6. Funkcije rada RTC -a: Sve funkcije RTC -a zapisane su generalizirano (slično postavljenim funkcijama prikaza) prema radu DS1302 IC. Kod se temelji na pisanoj biblioteci, koja je dostupna u mnogim varijacijama na gitHubu. Kao što ćete vidjeti u konačnom kodu, prikaz i postavljene funkcije RTC uključeni su u zasebne datoteke.c i.h. Dio B - Sloj sučelja:

1. Glavna funkcija: u odjeljku void main () postoji deklaracija svih osnovnih funkcija inicijalizacije. Odmah nakon inicijalizacije svih komponenti, MCU ulazi u beskonačnu petlju, gdje funkcionalnost uređaja kontrolira korisnik.

2. Prekidači u stvarnom vremenu, pozadinsko osvjetljenje i kontrola zaslona: Dok radi u beskonačnoj petlji, MCU izvodi osvježavanje na svakom dijelu uređaja. Odabire podatke koje će prikazati, koji je gumb pritisnut i koji je način pozadinskog osvjetljenja odabran.

3. Funkcije korisničkog izbornika: Ove funkcije imaju oblik stabla (vidi sliku X), gdje su sustav izbornika i hijerarhija definirani kao stroj za stanje. Svaki stroj za kontrolu stanja kojim upravlja korisnički unos - prekidač se prebacuje, pa će, kad je pritisnut odgovarajući gumb, stroj za stanje promijeniti svoju vrijednost. Dizajniran je na način da se sve promjene na uređaju izvršene u izborniku odmah mijenjaju.

4. Prebacivanje korisničkog izbornika: kada se unese korisnički unos, stanje izbornika mora promijeniti svoje stanje. Dakle, ove funkcije pružaju kontrolu o stroju stanja ovisno o korisniku. U ovom konkretnom slučaju: sljedeći, prethodni i OK.

Korak 8: Završni kod i korisne datoteke

I to je to! U ovom koraku možete pronaći sve datoteke koje vam mogu zatrebati:- električne sheme- potpuni izvorni kod- graditelj znakova na zaslonu neobavezna značajka: postoje različiti znakovi koji su dostupni za prikaz u biblioteci IC-ova za prikaz, ali neki nisu uključeni. Ako želite sami graditi znakove, dodajte stanje slučaja s ASCII referencom u funkciju Print_Character ('') (Pogledajte funkcije display.c). Nadam se da će vam ovaj Instructable biti koristan:) Hvala na čitanju!

Preporučeni: