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, Novembar
Anonim
Image
Image
Sitni LED matrični sat sa zaslonom
Sitni LED matrični sat sa zaslonom
Sitan LED matrični sat sa zaslonom
Sitan LED matrični sat sa zaslonom
Sitan LED matrični sat sa zaslonom
Sitan LED matrični sat sa zaslonom

Oduvijek sam želio imati staromodni stolni sat, koji izgleda kao nešto iz filmova 90-ih, sa prilično skromnom funkcionalnošću: sat u stvarnom vremenu, datum, mijenjanje pozadinskog svjetla, zvučni signal i opcija alarma. Pa sam došao na ideju da napravim jedan: digitalni uređaj, baziran na mikrokontroleru sa svim funkcijama koje sam gore spomenuo, a napajan USB -om - bilo računarom ili bilo kojim mobilnim USB punjačem. S obzirom da sam želio da bude programabilan, s izbornicima i podešavanjem postavki, postavljanje MCU -a bilo je neizbježno u ovom projektu. ATMEGA328P IC (od kojeg se sastoji svaka Arduino Uno ploča) izabran je za "mozak" kola (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ćilo je rađanje cijelog projekta-Desktop sat sa LED ekranom malih dimenzija.

Dakle, nakon što smo pokrili entitet projekta, napravimo ga

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.

Opisimo 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 direktno napajanje punjača / računara.
  • Krug linearnog regulatora napona 5V na bazi LM7805 IC.

IC krug LM7805 je opcionalan, osim ako ne želite implementirati različitu dostupnost ulaza napajanja. U našem uređaju se koristi 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 odabran 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 njihovo pohranjivanje, bez ovisnosti o priključku na ulaznu struju, tj. Vremenski podaci se osvježavaju u načinu rada u stvarnom vremenu. Kako bi RTC komponenta mogla nastaviti mijenjati podatke o vremenu / datumu, u krug se dodaje 3V dugmasta baterija. IC je DS1302, njegov rad je opisan u daljim koracima.

4. Ulazno sučelje - Prekidači tipkama:

Ulazni PB prekidači pružaju ulazni interfejs za korisnika. Ovi prekidači se obrađuju u MCU -u i programu za definiranje upravljačkog uređaja.

5. LED matrični ekran

Displej uređaja sastoji se od dvije ICMS alfanumeričke LED matrice umotane u IC, svaka IC ima 4 znaka 5x7 male LED matrice. Ovi ekrani 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:

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

Korak 2: Dijelovi i instrumenti

Delovi i instrumenti
Delovi i instrumenti

I. Elektronika:

A. Integrirane i aktivne komponente:

  • 1 x ATMEGA328P - MCU
  • 2 x HCMS2902 - AVAGO ekrani
  • 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 22pF
  • 1 x 4-pinska RGB LED
  • 1 x zujalica
  • 1 x 32.768KHz kristal

C. Konektori:

  • 1 x Micro-USB konektor
  • 2 x 6-pinski standardni konektor (100mil).
  • 2 x 4-pinski standardni konektor (100mil).
  • 1 x Torbica za dugmastu bateriju.

D. Ostalo:

  • 3 x SPST prekidači na dugme
  • 1 x 3V dugmasta baterija.

E. Opcionalno napajanje:

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

II. Mehanički:

  • 1 x Plastično kućište
  • 4 x Gumeni dodaci
  • 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
  • Skupljajuće cijevi
  • Lim za lemljenje
  • Lemilica
  • Cutter
  • Kliješta
  • Pinceta
  • Burgije
  • Datoteka male veličine
  • Razni odvijači
  • Čeljust
  • Multimetar
  • Oglasna ploča (nije obavezno)
  • Mikro USB kabl
  • 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 kreiranje znakova na ekranu)

Korak 3: Opis sheme

Shema Opis
Shema Opis

Kako bi se olakšalo razumijevanje rada kola, korak sheme 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, sva odgovarajuća podkruga za koja želimo da budu "unutar" uređaja, postavljena su na jednu izrezanu prototipnu ploču. Prijeđimo na objašnjenje rada krugova postavljenih 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 konektorom. Svi odgovarajući U/I pinovi su spojeni 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 sklop za resetiranje RC -a, koji se koristi ili za programiranje i 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 je glavni periferni dio projekta. DS1302 je integrirana kontrola mjerenja vremena punjenja koja pruža obrađene vrijednosti vremena i datuma našoj procesorskoj jedinici. DS1302 komunicira s MCU-om putem trožilnog sučelja, slično trožičnoj SPI komunikaciji, 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 prenos podataka. Djeluje kao ulaz u MCU kada se primaju podaci o vremenu/datumu i kao izlaz kada se podaci prenose (Za dalja objašnjenja pogledajte korak Programiranje osnovne stvari).
  • RTC_CE: (Izlaz): Omogućena linija prijenosa podataka. Kada MCU postavi HIGH, podaci su spremni za prijenos/prijem.

DS1302 zahtijeva vanjski kristalni oscilator od 32.768KHz za odgovarajuće ponašanje kola. Kako bi se izbjegao veliki pomak u sistemu za brojanje kola (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 je bila optimalna vrijednost nakon mnogo eksperimenata sa mjerenjima mjerenja vremena u ovom projektu, pa, kad se namjeravate potpuno lemiti krug, provjerite postoji li mogućnost zamjene ovih kondenzatora onima s drugim vrijednostima. Ali 22pF za ploče male veličine radilo je prilično dobro 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 napajao dovoljnom količinom energije kako bi nastavila s brojenjem vremena.

4. LED matrica od 8 znakova:

Prikaz uređaja zasnovan je na 2 x 4 znaka LED matričnih IC matrica, programiranih putem trožilnog sučelja, slično kao DS1302 RTC kruga, 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 prikaza). 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 nazivi mreža u krugu 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 interfejsa za komunikaciju zaslona na MCU. Programiranje i sekvenciranje znakova definirani su u daljnjim koracima.5. Kolo korisničkog interfejsa:

Korisničko sučelje podijeljeno je u dvije podgrupe-Ulazni i izlazni sistemi: Ulazni sistem: Sam uređaj ima ulaz koji je osigurao korisnik definiran kao tri SPST prekidača s dodatnim prekidačima, s dodatnim pull-up otpornicima, kako bi pokrenuo definiranu logiku ili VISOKU ili NISKU do MCU. Ovi prekidači pružaju sistem upravljanja za cijeli programirani algoritam, budući da postoji potreba za podešavanjem vrijednosti vremena/datuma, kontrole menija itd.

6. Izlazni sistem:

A. Krug zujalice pruža zvučni izlaz u oba stanja, prebacivanje menija 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 pomoću MCU -a, sa četiri opcije 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, jer 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 povezana s većom vrijednošću otpora - u ovom slučaju: 180Ohm (vidi objašnjenje RGB LED).7. Konektori:

Konektori su postavljeni na glavnu ploču kako bi se omogućila komunikacija između komponenti vanjskog sučelja kao što su: Zaslon, RGB LED, Ulazni napon i prekidači s prekidačima i glavna ploča. Svaki konektor 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 proces 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 završiti u sljedećem slijedu:

1. MCU i konektor za programiranje: preporučuje se lemljenje 28 -polnog zaglavlja umjesto samog MCU -a kako biste mogli 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 konektor za programiranje (vidi treću sliku).

2. RTC kolo: 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. Ekran: Dva IC ekrana treba lemiti na zasebnoj ploči male veličine (slika 1). Nakon lemljenja svih potrebnih mreža, potrebno je pripremiti vanbrodske žice (slika 4): te žice treba lemiti i provoditi 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 konektor.

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 svojoj odgovarajućoj 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 preporučene napomene, proces montaže postaje vrlo jednostavan za izvođenje. Sljedeći korak-po-korak redoslijed pruža potpune informacije o procesu:

Dio A: Ograđivanje

1. Izbušite tri rupe, prema prečniku dugmeta (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, prema dimenzijama ekrana. 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 promjeru RGB LED diode. Dio B - Prilozi:

1. Lemite dvije žice na svako od tri tipke (GND i signal). Preporučuju se naljepnice s naljepnicama i jednopolni konektori na žicama.2. Pričvrstite četiri pripremljene žice na RGB LED pinove. Stavite naljepnice naljepnica i cijevi za skupljanje na lemne spojeve.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 tipke, 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). Uvjerite se da polaritet vodova za napajanje odgovara zalemljenim 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, potrebno je uzeti u obzir 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 izvršiti 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 jeftin USB ISP programator sa eBay -a, 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 fascikli Debug ili Release projekta). Pobrinite se da prije nego što pređete na korak montaže uređaj može biti programiran, a svi osnovni AVR namjenski projekti izgradnje i proces kompilacije zasnovani su na ATMEGA328P mikrokontroleru (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 "operativni sistem" koji pruža sučelje između hardvera i vanjskog svijeta. Sljedeće objašnjenje opisuje bitne operacije programa po dijelovima: Dio A: Jezgro sloja:

1. MCU U/I Inicijalizacija: Prije svega, potrebno je inicijalizirati hardverske komponente:- Konstante koje se koriste kodom.- I/O portovi- Interfejs.- 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. gore/Smanjivanje funkcija.- Prikaz funkcija stvaranja znakova.3. Periferna inicijalizacija: Nakon što su I/O portovi konfigurirani, dolazi do komunikacije između definicije funkcija kola. Kada završi - MCU započinje inicijalizaciju RTC -a i prikaza 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:- Kontrolu prekidača- RGB LED rad (posebno 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 napisane 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 su zapisane uopšteno (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 RTC funkcije su uključene u zasebne.c i.h datoteke. 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 ekrana: Dok radi u beskonačnoj petlji, MCU vrši osvježavanje na svakom dijelu uređaja. On bira koje podatke će prikazati, koje dugme je pritisnuto i koji način pozadinskog osvetljenja je izabran.

3. Funkcije korisničkog menija: Ove funkcije imaju oblik stabla (vidi sliku X), gdje su sistem izbornika i hijerarhija definirani kao stroj za stanje. Svaka mašina stanja kontrolirana korisničkim unosom - prekidač se prebacuje, pa će, kada je pritisnuto odgovarajuće dugme, mašina stanja promijeniti svoju vrijednost. Dizajniran je na način da se sve promjene na uređaju izvršene u izborniku trenutno mijenjaju.

4. Prebacivanje korisničkog menija: kada se unese korisnički unos, stanje menija mora promijeniti svoje stanje. Dakle, ove funkcije pružaju kontrolu o stroju stanja ovisnom 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 ekranu neobavezna funkcija: 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čuje se: