Ceas de stradă. Ceasuri pe matrice LED Modele de bază de ceasuri electronice de exterior „Impulse”

Această linie târâtoare vă permite să citiți text de cel mult 8192 de litere, inclusiv spații.Textul este introdus în memoria liniei de rulare 24C64 utilizând tastatura computerului fără a conecta computerul în sine. În timp ce introduceți text, este posibil să ștergeți literele folosind tasta (Backspace) în timp ce observăm această acțiune de ștergere a literelor de pe afișaj.

Este posibil să reglați viteza literelor folosind două taste de lângă numerele de la tastatură (+ și -). Viteza liniei este scrisă în ultima celulă de memorie 24C64; prin urmare, atunci când o porniți pentru prima dată fără a regla viteza, literele vor rula încet și, prin urmare, trebuie să faceți prima ajustare. Viteza de rulare se schimbă foarte mult la ajustarea înregistrării unui număr în ultima celulă 24С64 numere de la 1....30 în măsurare zecimală sau în hexazecimal 1..1E, ceea ce poate fi verificat folosind programatorul PICKIT2, dar acest lucru nu este necesar.

Memoria de șiruri conține un generator de caractere care are în memorie întregul alfabet al literelor rusești, majuscule și mici, precum și câteva semne și toate numerele.

Indicarea liniei este dinamică linie cu linie, constând din 8 linii care se aprind pe rând de sus în jos, una după alta, întregul ciclu de 8 linii este executat de 300 de ori pe secundă, ceea ce vă permite să observați imaginea fără pâlpâire. .

Cipurile de afișare 74NS595 îndeplinesc rolul de a aprinde afișajul orizontal sau un rând de 160 de LED-uri, iar tranzistoarele fac posibilă schimbarea pe rând orizontale sau rânduri de sus în jos, adică afișajul este iluminat linie cu linie de sus în jos, la rândul său, cu o viteză de 300 de cadre pe secundă.

Microcircuitul 74NS595 în sine este un registru de schimbare obișnuit cu fiecare registru ieșit la o matrice LED, dar există un DAR mare, matricea este conectată la registre nu direct, ci prin registre care fixează starea logică.

De ce este necesar acest lucru? Acest lucru este necesar pentru ca în timp ce registrele de deplasare sunt încărcate de la MK de-a lungul lanțului de la unul la altul cu fiecare semnal de ceas la pinul 11 ​​și, în același timp, să fie observat pe matricele LED, de care nu avem deloc nevoie. , deoarece imaginea este iluminată de LED-uri în locuri greșite. Prin urmare, registrele de blocare suplimentare blochează ieșirea informațiilor către matrice în timpul încărcării și actualizării datelor numai după ce un semnal de ceas apare pe pinii 12 de la registrele de deplasare la datele de blocare, iar registrele de blocare sunt transmise la matrice.

Datele de afișare care creează întreaga imagine a liniei provin de la MK de la ieșirea 34 la intrarea registrului 14 al microcircuitului 74NS595, de la primul microcircuit 74NS595 la al doilea, datele sunt transferate de la ieșirea 9 la intrarea 14 și așadar de-a lungul lanțului până la ultimii 20 de microcircuit.

Repet, datele se deplasează cu fiecare ciclu de ceas la intrarea 11 a tuturor microcircuitelor 74NS595 de-a lungul lanțului până la ultimul microcircuit 74NS595 și, după încărcarea tuturor celor 20 de microcircuite, apare un ceas pe registrele de blocare, ieșirea 12, actualizând astfel imaginea întreaga linie și nu întreaga imagine a afișajului. Rândurile sunt actualizate de fiecare dată după trecerea la un rând inferior.

La asamblarea unei plăci de afișare este foarte convenabil să se realizeze plăci din două matrice 8x8 sau ca placa să conțină câte două matrice fiecare cu posibilitatea de a crește numărul de plăci.Prin conectarea primei plăci de afișare la placa de microcontroler, puteți realiza asigurați-vă că funcționează fără restul plăcilor de afișare și abia după aceea verificați următoarele plăci, acesta va fi cazul. Este mai ușor să căutați defecte și erori de lipire.

Pentru a verifica primul panou de afișare, trebuie să conectați tastatura la placa MK, să aplicați putere, apăsați una sau mai multe litere, dați comanda la sfârșitul liniei, că textul a fost introdus apăsând tasta ENTER, după că linia va rula cu viteză mică, deoarece viteza de rulare trebuie, de asemenea, ajustată prin apăsarea tastei (-) până când constanta de la 5..1E este scrisă în formă hexazecimală în memoria 24C64.

Dacă nu aveți nevoie de un șir de o lungime atât de mare format din 20 de matrice 8x8, atunci vă pot trimite firmware-ul cu un număr mai mic de la 2 la 19. Acest lucru se face simplu și rapid. Vă voi trimite o scrisoare cu firmware-ul Adresa mea este evgen100777(sobaka)rambler.ru.

Plăcile de afișare sunt cablate pentru matrice de 6x6 centimetri în culoare roșie cu marcajul QFT 2388ASR, placa de microcontroler este realizată cu condiția de modernizare prin adăugarea unui ceas și a unui termometru la linie, dar deoarece firmware-ul pentru aceasta nu este finalizat, am nu recomandați adăugarea de butoane pentru a nu arde portul MK.

Butoane de comandă.

(Schimb) – buton pentru a comuta la majuscule; prin apăsarea și eliberarea acestuia, litera este apăsată și o literă majusculă este afișată pe afișaj; dacă apăsați următoarea literă fără a apăsa mai întâi Shift, este afișată o literă mică, adică înainte de fiecare introducere a unei majuscule trebuie să apăsați și să eliberați Shift.

(+ Și - ) - aceste taste funcționează atunci când porniți linia progresivă înainte de a tasta și reglează viteza de mișcare a literelor pe afișaj + crește viteza reduce viteza de mișcare a literelor.

Backspace- tasta pentru ștergerea textului în timpul tastării, funcționează numai în modul de tastare a textului, afișând litera ștearsă pe afișaj prin deplasarea textului la stânga.

introduce această tastă începe o linie după tastare, indicând sfârșitul textului din memoria 24C64 și spune că trebuie să începeți o linie care rulează de la început din acest loc în text.

Pentru a tasta un text nou, linia de rulare trebuie să fie oprită și pornită din nou cu tastatura conectată, selectați viteza textului folosind tastele plus și minus, iar atunci când apăsați pentru prima dată o literă, afișajul este șters cu prima litera afișată în partea dreaptă a liniei; atunci când tastați textul, se deplasează spre stânga, după care se apasă tasta Enter și linia intră în modul de rulare fără a răspunde la tastatură.

Pentru a reuda textul, trebuie să vă amintiți să activați și să opriți linia.

Ticker cu ceas, calendar și tastare pe tastatura PS/2

Tickerul afișează ora ore minute secunde ziua în numere și luna și ziua săptămânii în cuvinte, de exempluORA 12.30.10 20 IANUARIE MIERCURI.

Exact același ticker cu tastarea de pe tastatură are doar un ceas cu un calendar. În această linie, nu puteți modifica numărul de matrici LED, deoarece toate cele 20 dintre ele sunt implicate în setarea orei, datei, lunii și zilei săptămânii.

În timp ce tastați, apăsând tasta CTRL din stânga se inserează un ceas cu un calendar în textul liniei de rulare. Această linie are toate aceleași funcții ca și liniile anterioare de pe PIC16F628 și PIC16F877 și este controlată în același mod.

Pentru a seta ora, trebuie să apăsați butonul de selectare de pe placă cu microcontrolerul; apare afișajul de setare a timpului; secundele încep să clipească; prin apăsarea butonului de modificare, secundele sunt resetate la zero. Apăsăm din nou butonul de selecție, minutele încep să clipească, apăsând butonul de modificare creștem minutele, la fel și cu ceasul, data, luna și ziua săptămânii.

În setările orei, ziua săptămânii și luna sunt afișate ca numere.

Iată o diagramă ușor modificată a acestei linii, aici am adăugat două butoane cu rezistențe pull-up pentru schimbarea orei și un ceas cuarț la 32768 Hz și un alt rezistor care trage în sus intrarea controlerului responsabilă de intrarea pe tastatură.

Pentru o funcționare mai stabilă, este mai bine să alimentați PIC16F877 printr-un rezistor de 11 ohmi 0,25 wați folosind o sursă de alimentare pozitivă pentru a reduce interferențele provenite de la tranzistoarele care comută liniile de afișare.

Un ticker cu un ceas și un termometru pentru uz exterior și interior.

Linia de rulare funcționează pe senzorii DS1820 și arată temperatura din casă și din exterior prin introducerea citirilor de pe afișaj în textul liniei de rulare.

Citirile sunt afișate sub forma inscripției TEMPERATURĂ CASĂ 25,2 STRADA -12,4 citirile de temperatură au un indicator minor sub forma unei zecimi de grad.

Pentru a introduce un termometru în text, apăsați tasta ALT din stânga de pe tastatura computerului conectată la ticker.

Intervalul de temperatură al termometrului afișat este de la -55 la 99 de grade, dar nu este recomandat să încălziți senzorul peste 70 de grade pentru a evita deteriorarea.

Lungimea firului care merge la senzorul de pe stradă nu trebuie să depășească 4 metri.

Există firmware cu trei litere ucrainene.
Semnalul de alarmă este înregistrat ca log 0 în timpul semnalului de la pinul 38 al PIC16F877

Lista radioelementelor

Desemnare Tip Denumire Cantitate NotăMagazinBlocnotesul meu
Schema 1
IC MK PIC pe 8 biți

PIC16F877

1 La blocnotes
IC1 Cip de memorie24C641 La blocnotes
IC2, IC3 Registrul de deplasare

CD74HC595

20 La blocnotes
VT1-VT8 Tranzistor bipolar

BD140

8 La blocnotes
C1, C2 Condensator100 nF2 La blocnotes
C3, C4 Condensator15 pF2 La blocnotes
C5 Condensator3,3 nF1 La blocnotes
R1-R16, R18, R19, R21-R24, R30, R31 Rezistor

330 ohmi

24 La blocnotes
Rezistor

330 ohmi

144 La blocnotes
R26, R27 Rezistor

5,1 kOhmi

2 La blocnotes
R28, R29 Rezistor

4,7 kOhmi

2 La blocnotes
Cr1 Rezonator cu cuarț20.000 MHz1 La blocnotes
matrice LED8x820 La blocnotes
ConectorPS/21 La blocnotes
Schema 2
IC MK PIC pe 8 biți

PIC16F877

1 La blocnotes
IC1 Cip de memorie24C641 La blocnotes
Registrul de deplasare

CD74HC595

20 La blocnotes
Tranzistor bipolar

BD140

8 La blocnotes
C2 Condensator100 nF1 La blocnotes
C3, C4 Condensator15 pF2 La blocnotes
C5 Condensator3,3 nF1 La blocnotes
C6, C7 Condensator33 pF2 La blocnotes
C8 Condensator electrolitic47 uF1 La blocnotes
R18, R19, R21-R24, R30, R31 Rezistor

330 ohmi

24 La blocnotes
Rezistor

330 ohmi

144 La blocnotes
R26, R27, R32, R33 Rezistor

5,1 kOhmi

4 La blocnotes
R29, R34, R35 Rezistor

4,7 kOhmi

3 La blocnotes
R36 Rezistor

11 ohmi

1 La blocnotes
Cr1 Rezonator cu cuarț20.000 MHz1 La blocnotes
Cr2 Rezonator cu cuarț32768 Hz1 La blocnotes
S1, S2 Butonul tact 2 La blocnotes
matrice LED8x820 La blocnotes
ConectorPS/21 La blocnotes
Schema 3
IC MK PIC pe 8 biți

PIC16F877

1 La blocnotes
IC1 Cip de memorie24C641 La blocnotes
Registrul de deplasare

CD74HC595

20 La blocnotes
senzor de temperatura

DS18B20

2





  • DS18b20).
  • A doua varianta, DS18b20).

Afișare în modul de linie târâtoare - data, luna, anul și ziua săptămânii.

Schema generala.


- Când apăsaţi Kn2 Kn2


Kn1Kn3 Kn2


UA-EN-RU .


ds 18 b 20 nr. 1 sau nr. 2.

Sunt posibile soluții de circuit, cu opțiuni de combinare pentru conectarea senzorilor; mai jos sunt exemple de opțiuni cu care acest program va funcționa corect.

Ceas Ceas + RF Ceas + RF + ds18b20



Ceas + ds18b20 (2 buc.) Ceas + ds18b20 Transmițător RF



Circuit în Proteus

firmware-ul bootloaderului ATmega328.)


FUSE, dacă cineva va folosi un programator ICSP pentru firmwareATmega328 în acest circuit.

Folosind jumperi Jp -1, Jp -2, Jp RF

1 sec.

2 sec.

4 sec.

8 sec.

16 sec.

32 sec.

64 sec.

128 sec.

Jp -1

Jp -2

Jp -3

SIGURANTA, ATtiny24a sunt instalate pe oscilatorul intern al MK - 8 MHz.



în arhivă.

Senzor radio pentru ceas matrice, alimentat cu baterie, diagramă de circuit și firmware pe forum.

DS18b20,RTCDS1307, senzor de lumina, butoane de control, kit RF -module și o sursă de alimentare de 5 volți (consumul circuitului în momentele de vârf, la luminozitate maximă, este de până la 0,6 A, iar în medie este de 0,3 A; puteți folosi și încărcarea suplimentară de la un telefon mobil, dacă este disponibilă cu parametrii corespunzători)).
Care este interesul aplicațieiArduino Nano Atmega328.
Faptul ca aceasta placa are deja un modem cu iesire mini USB la bord, un astfel de controler poate fi flash fara mare dificultate prin intermediul bootloader-ului, folosind computerul si un cablu telefonic pentru incarcarea unui telefon mobil cu conector mini USB.
Toate acestea se pot face cu ușurință folosind un program simplu.XLoader.
Am descris puțin mai detaliat experiența de a intermite firmware-ul prin bootloader aici" Nano volt - ampermetru 2 canale. ".
Dacă se dorește, toate modulele necesare pot fi achiziționate la un preț competitiv de pe Aliexpress.

MAX7219 matrice de puncte

Nano Atmega328

DS1307

DS18b20

Senzor de lumina

unitate de putere

După comanda, puțină răbdare până ajung toate aceste piese prin poștă și vă puteți garanta că veți monta acest circuit foarte interesant cu un ceas și un termometru.


În general, cu elementele de bază, cred că nu ar trebui să apară întrebări, deoarece totul aici este standard.


Designul de afișare a tipului de funcționare a unui ceas - un termometru - este deja o versiune pentru amatori.
Programul are trei opțiuni pentru proiectarea funcționării ceasului termometru.

  • Prima opțiune este afișarea alternativă a timpului (ore și minute), a temperaturii străzii și a temperaturii camerei (doi senzoriDS18b20).

Afișare în modul de linie târâtoare - data, luna, anul și ziua săptămânii.

  • A doua varianta, afișarea timpului (ore și minute), a temperaturii ambientale (un senzorDS18b20).

Afișare în modul de linie târâtoare - data, luna, anul și ziua săptămânii.

  • A treia opțiune, doar un ceas, afișare a orei (ore și minute),

Afișare în modul linie rampă - data, luna, anul și ziua săptămânii (afișajul temperaturii este dezactivat).

De fapt, diferențele dintre opțiuni sunt mici și constau doar în diferențele de afișare a temperaturii pe afișajul matricial al ceasului termometrului; aproape fiecare opțiune poate fi solicitată.


Sistem.


- Circuitul folosește trei butoane de control; atunci când apăsați scurt aceste butoane, rotiți o dată citirile de pe ecranul principal: ceas - data - ziua săptămânii - temperatură.


- Când apăsaţi Kn2 mai mult de 2 secunde, intrați în meniul de setări (în timp ce vă aflați în meniu, apăsați Kn2 mai mult de 2 secunde, ieșiți din meniul de setări).


- După intrarea în meniu, folosiți butoanele Kn1Kn3Puteți corecta data și ora, deplasarea prin meniu se efectuează Kn2 , parametrul care se modifică va fi în lumină inversă.


- Tot in meniu este posibil, daca este cazul, sa seteze corectia pentru inexactitatea ceasului, in decurs de o zi ±9 sec.


- Următorul element din meniu va fi alegerea limbii utilizate, un firmware prevede utilizarea limbilor UA-EN-RU .


- O opțiune de animație pe ecran, una dintre cele trei descrise la începutul articolului.


- Senzor radio, la selectarea valorii „0”, senzorul radio nu este utilizat în program, la selectarea 1 sau 2, citirile de temperatură de la senzorul radio vor avea loc pe display, în schimb ds 18 b 20 nr. 1 sau nr. 2.

Fotografie a ceasului în proces de depanare pe o placă.

Circuit în Proteus

Circuitul transmițător pentru acest ceas.

Folosind jumperi Jp -1, Jp -2, Jp -3, puteți selecta frecvența de transmisie RF -modul pachete informative cu temperatura de la senzorul nr.3.

1 sec.

2 sec.

4 sec.

8 sec.

16 sec.

32 sec.

64 sec.

128 sec.

Jp -1

Jp -2

Jp -3

(1 – jumperul este închis, 0 – nu)

Placă de circuit imprimat pentru ceas și senzor radio.

FUSE pentru lucrul ATmega328 cu bootloader (arhivă cu Firmware-ul bootloaderului ATmega328.)

FUSE, dacă cineva va folosi un programator ICSP pentru a flash-ul firmware-ului ATmega328 în această schemă.

Firmware „Ceas - termometru pe module matrice”, plăci cu circuite imprimate, proteus, în arhivă.






Afișare în modul de linie târâtoare - data, luna, anul și ziua săptămânii.

Schema generala.


- Când apăsaţi Kn2 Kn2


Kn1Kn3 Kn2


UA-EN-RU .


ds 18 b 20 nr. 1 sau nr. 2.

Sunt posibile soluții de circuit, cu opțiuni de combinare pentru conectarea senzorilor; mai jos sunt exemple de opțiuni cu care acest program va funcționa corect.

Ceas Ceas + RF Ceas + RF + ds18b20



Ceas + ds18b20 (2 buc.) Ceas + ds18b20 Transmițător RF



Circuit în Proteus

Firmware-ul bootloaderului ATmega328.)


FUSE, dacă cineva va folosi un programator ICSP pentru firmwareATmega328 în acest circuit.

Folosind jumperi Jp -1, Jp -2, Jp RF

1 sec.

2 sec.

4 sec.

8 sec.

16 sec.

32 sec.

64 sec.

128 sec.

Jp -1

Jp -2

Jp -3

SIGURANTA, ATtiny24a sunt instalate pe oscilatorul intern al MK - 8 MHz.



în arhivă.

Senzor radio pentru ceas matrice, alimentat cu baterie, schema si firmware-ul pe forum.

DS18b20,RTCDS1307, senzor de lumina, butoane de control, kit RF -module și o sursă de alimentare de 5 volți (consumul circuitului în momentele de vârf, la luminozitate maximă, este de până la 0,6 A, iar în medie este de 0,3 A; puteți folosi și încărcarea suplimentară de la un telefon mobil, dacă este disponibilă cu parametrii corespunzători)).
Care este interesul aplicațieiArduino Nano Atmega328.
Faptul ca aceasta placa are deja un modem cu iesire mini USB la bord, un astfel de controler poate fi flash fara mare dificultate prin intermediul bootloader-ului, folosind computerul si un cablu telefonic pentru incarcarea unui telefon mobil cu conector mini USB.
Toate acestea se pot face cu ușurință folosind un program simplu.XLoader.
Am descris puțin mai detaliat experiența de a intermite firmware-ul prin bootloader aici" Nano volt - ampermetru 2 canale. ".
Dacă se dorește, toate modulele necesare pot fi achiziționate la un preț competitiv de pe Aliexpress.

MAX7219 matrice de puncte

Nano Atmega328

DS1307

DS18b20

Senzor de lumina

unitate de putere

După comanda, puțină răbdare până ajung toate aceste piese prin poștă și vă puteți garanta că veți monta acest circuit foarte interesant cu un ceas și un termometru.


În general, cu elementele de bază, cred că nu ar trebui să apară întrebări, deoarece totul aici este standard.


Designul de afișare a tipului de funcționare a unui ceas - un termometru - este deja o versiune pentru amatori.
Programul are trei opțiuni pentru proiectarea funcționării ceasului termometru.

  • Prima opțiune este afișarea alternativă a timpului (ore și minute), a temperaturii străzii și a temperaturii camerei (doi senzoriDS18b20) .

Afișare în modul de linie târâtoare - data, luna, anul și ziua săptămânii.

  • A doua varianta, afișarea timpului (ore și minute), a temperaturii ambientale (un senzorDS18b20) .

Afișare în modul de linie târâtoare - data, luna, anul și ziua săptămânii.

  • A treia opțiune, doar un ceas, afișare a orei (ore și minute),

Afișare în modul linie rampă - data, luna, anul și ziua săptămânii (afișajul temperaturii este dezactivat).

De fapt, diferențele dintre opțiuni sunt mici și constau doar în diferențele de afișare a temperaturii pe afișajul matricial al ceasului termometrului; aproape fiecare opțiune poate fi solicitată.


Sistem.


- Circuitul folosește trei butoane de control; atunci când apăsați scurt aceste butoane, rotiți o dată citirile de pe ecranul principal: ceas - data - ziua săptămânii - temperatură.


- Când apăsaţi Kn2 mai mult de 2 secunde, intrați în meniul de setări (în timp ce vă aflați în meniu, apăsați Kn2 mai mult de 2 secunde, ieșiți din meniul de setări).


- După intrarea în meniu, folosiți butoanele Kn1Kn3Puteți corecta data și ora, deplasarea prin meniu se efectuează Kn2 , parametrul care se modifică va fi în lumină inversă.


- Tot in meniu este posibil, daca este cazul, sa seteze corectia pentru inexactitatea ceasului, in decurs de o zi ±9 sec.


- Următorul element din meniu va fi alegerea limbii utilizate, un firmware prevede utilizarea limbilor UA-EN-RU .


- O opțiune de animație pe ecran, una dintre cele trei descrise la începutul articolului.


- Senzor radio, la selectarea valorii „0”, senzorul radio nu este utilizat în program, la selectarea 1 sau 2, citirile de temperatură de la senzorul radio vor avea loc pe display, în schimb ds 18 b 20 nr. 1 sau nr. 2.

Fotografie a ceasului în proces de depanare pe o placă.

Circuit în Proteus

Circuitul transmițător pentru acest ceas.

Folosind jumperi Jp -1, Jp -2, Jp -3, puteți selecta frecvența de transmisie RF -modul pachete informative cu temperatura de la senzorul nr.3.

1 sec.

2 sec.

4 sec.

8 sec.

16 sec.

32 sec.

64 sec.

128 sec.

Jp -1

Jp -2

Jp -3

(1 – jumperul este închis, 0 – nu)

Placă de circuit imprimat pentru ceas și senzor radio.

FUSE pentru lucrul ATmega328 cu bootloader (arhivă cu Firmware-ul bootloaderului ATmega328.)

FUSE, dacă cineva va folosi un programator ICSP pentru a flash-ul firmware-ului ATmega328 în această schemă.

Firmware „Ceas - termometru pe module matrice”, plăci de circuite imprimate, proteus, în arhivă.


Dispozitivul propus utilizează indicatoare LED simbolice cu șaisprezece elemente PSA08-11 cu anozi comuni. Alegerea a căzut asupra lor datorită costului redus, dimensiunii mari a simbolului afișat și luminozității ridicate. Pentru a afișa cât mai multe informații utile, textul se deplasează de la dreapta la stânga. Șase afișaje de familiaritate afișează alternativ ora curentă, temperatura interioară, temperatura exterioară, data, ziua săptămânii și luna în cuvinte, de exemplu, „JOI 18 MARTIE.

Ora este păstrată de cipul DS1307. Este un ceas în timp real (Real Time Clock -RTC) cu un calendar încorporat. Când alimentarea generală este oprită, acest microcircuit continuă să funcționeze dintr-o sursă de rezervă - o celulă de litiu CR2032 cu o tensiune de 3 V. Deoarece, în absența apelurilor externe, curentul consumat de microcircuitul DS1307 nu depășește 300 nA, contorizarea timpului în acest mod poate dura până la zece ani. Generatorul de ceas al acestui microcircuit este construit folosind un rezonator extern de cuarț cu o frecvență de 32768 Hz, ceea ce asigură o precizie ridicată. Microcircuitul numără secunde, minute, ore, zile ale lunii (inclusiv ani bisecți), luni, zile ale săptămânii și ani. Calendarul ei este valabil până în 2100. Informații mai detaliate despre ea pot fi obținute de la.

Pentru a măsura temperatura, dispozitivul folosește senzori digitali de temperatură LM75, care au o eroare de cel mult 2 °C în intervalul de temperatură de la -25 la +100 °C. Mai multe informații despre ei pot fi găsite în.
Diagrama unui ceas și termometru cu un ticker prezentată în fig. 1. Toate funcțiile, cu excepția numărării timpului, sunt efectuate de microcontrolerul DD2 (PIC16F873A-20I/P), tactat de un oscilator încorporat cu un rezonator de cuarț ZQ2. Butoanele SB1-SB5 sunt folosite pentru a controla dispozitivul. Când contactele lor sunt deschise, rezistențele R4-R8 asigură un nivel logic ridicat la intrările corespunzătoare ale microcontrolerului. Rezistorul R11 menține un nivel ridicat la intrarea de configurare inițială a microcontrolerului, împiedicând zgomotul aleatoriu să repornească programul.

Pentru a alimenta ceasul, este necesară o sursă de tensiune stabilizată de 5 V cu un curent de sarcină maxim de cel puțin 600 mA. Este conectat la conectorul XS1. Versiunea autorului folosește un încărcător de telefon mobil. Condensatorii C1 și C2 sunt neteziți, iar capacitatea condensatorului C1 trebuie să fie de cel puțin 1000 μF.
Ceasul are un ceas cu alarmă. Semnalul său sonor este furnizat de un emițător piezo cu generator încorporat HA1 (NPA24AX). Pe baza semnalelor de la microcontroler, acesta este controlat de o cheie pe tranzistorul VT7. Selectând rezistorul R18 în circuitul de bază al acestui tranzistor, puteți regla volumul sunetului în anumite limite.

LED-urile roșii HL1-HL3 sunt utilizate pentru a indica modurile de funcționare. Luminozitatea lor este modificată prin selectarea rezistențelor R15-R17.
Pentru a programa microcontrolerul instalat pe placă, acesta are un conector XP1. În timp ce se efectuează această operație, i se atașează un programator, de exemplu, PICkit2, EXTRAPIC sau altul similar. Acest conector nu este necesar în dispozitivul actual. Nu trebuie să îl instalați dacă programați microcontrolerul în panoul de programare înainte de a-l instala pe placă.


Programarea unui microcontroler implică încărcarea codului de program dintr-un fișier HEX în memoria sa FLASH. Acest lucru necesită un program care să controleze programatorul, de exemplu WinPic800, care este disponibil gratuit la www.winpic800.com/descargas/WinPic800.zip pe Internet. De asemenea, pot fi citite instrucțiuni detaliate pentru programarea microcontrolerului.
Pentru a simplifica programul microcontrolerului și dispozitivul în ansamblu, cipul RTC DD1 și senzorii de temperatură VK1 și VK2 sunt conectați la microcontroler prin aceeași magistrală I2C. Senzorul VK2 este conectat la conectorul XP2 cu un cablu de până la câțiva metri lungime conform diagramei prezentate în Fig. 2.

Rezistoarele R2 și R9 conectează liniile SCL și SDA ale magistralei I 2C cu sursa de alimentare plus, menținând un nivel ridicat asupra acestora în timpul pauzelor în transmiterea informațiilor, așa cum este cerut de specificația magistralei. Mai multe informații despre utilizarea acestei anvelope puteți găsi în. Intrările de adresă ale senzorilor de temperatură VK1 și VK2 sunt conectate diferit la sursa de alimentare plus și la firul comun, ceea ce oferă microcontrolerului capacitatea de a distinge senzorii în mod programat.

Codurile paralele de șaisprezece biți pentru afișarea informațiilor despre indicatoare sunt formate la ieșirile microcircuitelor DD3 și DD4. Microcontrolerul DD2 introduce informații în aceste microcircuite într-un cod serial, folosind doar trei linii ale portului său B și C. Prin setarea liniei RC6 și a introducerii de informații a registrului de deplasare al microcircuitului DD3 la un nivel corespunzător valorii (0 sau 1) al următorului bit de cod, acesta generează pe linia RC7 și intrările de ceas ale ambelor microcircuite au o diferență de nivel crescândă. În acest caz, codul conținut deja în registrele de deplasare conectate în serie este mutat cu o poziție spre cifra superioară a registrului DD4, iar valoarea setată de microcontroler la intrarea sa este scrisă în cifra inferioară liberă a registrului DD3.

După șaisprezece astfel de operațiuni, întregul cod este scris într-un registru de deplasare de șaisprezece biți format din cipurile DD3 și DD4. Cu toate acestea, acest cod nu a apărut încă la ieșirile microcircuitelor; cel care a fost scos în ciclul anterior continuă să funcționeze pe ele. Pentru a actualiza starea ieșirilor, microcontrolerul generează o diferență de nivel în creștere pe linia sa RB0 și intrările de scriere a codului din registrele de deplasare ale microcircuitelor DD3 și DD4 la registrele lor de stocare. Puteți afla mai multe despre funcționarea cipului convertizor de cod serial-paralel 74NS595 citind.

După ce a scris codul pe microcircuitele DD3 și DD4, microcontrolerul emite o comandă pentru a porni unul dintre cei șase indicatori pentru catozii ale căror elemente este destinat acest cod. Pentru a nu supraîncărca ieșirile microcontrolerului, anozii indicatori sunt conectați la acestea prin comutatoare de pe tranzistoarele VT1-VT6. Schema panoului indicator este prezentată în Fig. 3, iar simbolurile elementelor indicatorului PSA08-11SRW sunt în Fig. 4. Conectorii XP1 și XP2 ai plăcii indicator sunt conectați, respectiv, la conectorii XS3 și XS2 ai plăcii principale.

Desene ale plăcii principale și amplasarea elementelor pe aceasta sunt prezentate în Fig. 5. Este realizat din folie de fibra de sticla pe o parte. Placa este proiectată pentru a instala senzorul de temperatură BK1 într-un pachet DIP8, cu toate acestea, senzorul LM75AD este produs într-un pachet SO8 cu montare la suprafață, deci ar trebui să fie instalat printr-o placă adaptor (Fig. 6). În fig. 5, conturul adaptorului este prezentat cu o linie punctată. Piesele de sârmă sunt introduse în găurile corespunzătoare ale adaptorului și plăcii și lipite pe ambele părți. Puteți, desigur, să schimbați topologia conductorilor imprimați pe placa principală și să faceți fără un adaptor.

Placa cu circuite imprimate pe două fețe a indicatoarelor este prezentată în Fig. 7. Vă rugăm să rețineți că conectorii de pe acesta sunt instalați pe partea opusă locului unde se află indicatoarele. La conectarea conectorilor, ambele plăci sunt amplasate una deasupra celeilalte într-un aranjament „raft”, așa cum se poate vedea în fotografia din Fig. 8.
Tranzistoarele KT502B pot fi înlocuite cu oricare din aceeași serie. În loc de LED-urile AL307BM, sunt potrivite și alte lumini roșii cu putere redusă, de exemplu AL310A.
Un dispozitiv asamblat corect cu un microcontroler programat corect nu necesită ajustare și începe să funcționeze imediat după pornire.

După ce este aplicată alimentarea, un mesaj de bun venit este afișat mai întâi pe indicatori. Acesta este urmat de ora în format de 12 sau 24 de ore, care poate fi selectată în elementul corespunzător de meniu. Apoi linia de rulare cu ora curentă se oprește timp de 10 secunde. După ce au expirat, sunt afișate temperatura camerei (citirile senzorului VK1), temperatura exterioară (citirile senzorului VK2) și se menține o altă pauză de zece secunde, timp în care indicatorul arată temperatura străzii. După aceasta, este afișat numărul, urmat de luna și ziua săptămânii în cuvinte, după care ciclul (cu excepția mesajului de bun venit) se repetă.

Pentru a seta ora curentă și alți parametri, comutați la modul „Meniu” apăsând scurt butonul SB3 „M”. LED-ul HL2 se aprinde, indicând faptul că acest mod este activat. Pe indicator, după mesajul „SETUP”, se afișează și se oprește linia „ORA XX”, unde XX este valoarea oră curentă, care poate fi mărită prin apăsarea butonului SB1 „+” sau micșorată prin apăsarea butonului SB5 „- butonul „.
Pentru a trece la următorul element de meniu, apăsați butonul SB2 „>”. Cu ajutorul acestuia, puteți „defila” meniul în ordinea indicată mai jos, folosind butonul SB4 „<” – в противоположном. После первого нажатия на кнопку SB2 “>” se afișează linia „MIN XX”, apoi „AN 20XX” (implicit 2011), apoi „LUNA XX”, „ZIUA XX”, „ZIUA SĂPTĂMÂNII XX”, „ALARM_HOUR XX” (ora se declanșează alarma) , „ALARM_MIN XX” (minute în care alarma se stinge).

Apoi una dintre liniile „ALARM OFF” sau „ALARM ON” apare pe indicator, afișând starea curentă a alarmei. Poate fi schimbat prin apăsarea butonului SB1 „+” sau SB5 „-“. Când alarma este pornită, LED-ul HL1 se aprinde, semnalând acest lucru.
În continuare, este afișată linia „FORMAT XX”, unde XX este egal cu 12 sau 24, în funcție de formatul de afișare a orei selectat prin apăsarea butonului SB1 „+” sau SB5 „. După ce apăsați din nou SB2 „>”, este afișată linia „BYE”, LED-ul HL2 se stinge și ceasul intră în modul normal de funcționare.


Când ora curentă coincide cu ora setată a alarmei, LED-ul HL3 și emițătorul de sunet HA1 se aprind. Pentru a opri lumina și alarma sonoră, apăsați orice buton. Semnalul electric pentru controlul unui actuator extern, dacă este necesar, poate fi îndepărtat de la ieșirea RB5 a microcontrolerului, la care LED-ul HL3 este conectat prin rezistența R17.
Când alimentarea externă este oprită, dispozitivul continuă să numere timpul - cipul DD1 este alimentat de celula de litiu G1.

Fișiere atașate: source.zip

LITERATURĂ
1. DS1307 – Ceas în timp real 64 X 8 cu interfață serială. – www.piclist.ru/D-DS-DSB1 „+”307-RUS/D-DS-DS1307-RUS.html
2. LM75A Senzor digital de temperatură și watchdog termic. www.alldatasheet.com/datasheet-pdf/pdf/100962/PHILIPS/LM75AD.html
3. Dolgiy A. Programatori și programare de microcontrolere. – Radio, 2004, nr. 1, p. 53.
4. Semenov B. Yu. Autobuz I2C în proiecte de inginerie radio. – M.: „SOLON-R”, 2002.
5. 74NS595; 74НСТ595 Registrul de deplasare pe 8 biți cu intrare în serie, serial sau ieșire în paralel cu blocare de ieșire; 3-stare. - www.nxp.com/documents/data_sheet/74HC_HCT595.pdf

V. BALANDIN, p. Petrovskoye, regiunea Tambov.
„Radio” nr. 9 2012