sâmbătă, 12 noiembrie 2011

Frecvențmetru digital 0-50Mhz cu Pic16f870 si LCD 16x2 hd44780

           Acest proiect de frecvențmetru cu PIC16f870, l-am realizat pentru a întelege mai bine modul de funcționare al timerelor prezente intr-un PIC dar și pentru a avea un aparat de masura precis si util la îndemana.
         Deși pe internet există foarte multe proiecte de frecvențmetre, de foarte multe ori, constructorul amator întampina dificultați in găsirea componentelor cu valorile specificate sau codul sursa nu este public, deci nu se pot face modificari ale proiectului, cum de multe ori se întamplă sa avem nevoie(tipul de afișaj, posibilitatea de adăugare sau scadere a frecvenței intermediare etc... ).
         În acest proiect, am utilizat un LCD 16x2 compatibil HD44780 pentru afișarea frecvenței.
Este folosit  Timerul 1, pentru a măsura numarul de impulsuri iar TMR0 se folosește pentru a asigura baza de timp de o secundă.  Timerul TMR1 al Pic-ului este un registru de 16 biţi, la fiecare impuls prezent la intrarea RC0, valoarea acestui registru crește si ajunge la valoarea de 65536.
        In acest moment, programul reseteaza valoarea TMR1 si incrementează valoarea unei alte variabile(să o numim INC). La sfârșitul perioadei de contorizare, de o secunda, se masoara valoarea acestei variabile INC si se adauga valoarea prezenta in acel moment in TMR1.
       Pentru o ințelegere mai buna sa presupunem ca avem la intrare un semnal de 1Mhz. Aceasta inseamnă că intr-o secundă la intrarea RC0 vor fi 1 milion de impulsuri.  In acest caz 1.000.000/65536=15,25878906 adică INC va avea valoarea de 15 iar TMR1 va avea valoarea de 0,25878906* 65536=16959,99(~16960).
        Să calculăm acum și in alt mod: să presupunem ca variabila inc are valoarea 15 si TMR1 are valoarea de 16594. In acest caz frecvența masurata va fi (15*65536)+16960= 1,000.000 Mhz
Deoarece timpul de masurare este de 1 secundă rezultatul final este de fapt frecvenţa semnalului de intrare.
Utilizarea timpului de masurare 1 secundă oferă, de asemenea, o rezoluție de 1 Hz.
        Am testat acest montaj cu un oscilator CY27EE16, comandat de catre computer, rezultatele fiind foarte bune:
- gama de masura 1Hz - 50 Mhz( maxim 65Mhz in funcție de PIC-ul folosit)
- precizie de măsurare in toata gama de +/- 10Hz.


Tranzistorul de la intrare are rolul de amplificare si formare a semnalului pentru etajul de intrare din PIC.

Lista componentelor folosite:


Componente active:

-Pic 16f870 --------------------------1 buc.
-LCD 16x2 HD44780 ---------------1 buc.
-Tranzistorul Q1 Bc546(NPN) ------ 1 buc.
Quartz:
- 10,000 Mhz ------------------------1 buc.
Diode:


Dioda Bat85--------------------------1buc. (se poate folosi orice dioda de comutatie).

Rezistente:

100k 0,25w  -------------------------1 buc.
10k 0,25w  -------------------------- 1 buc.
1k 0,25w  --------------------------- 1 buc.

Potentiometru semireglabil:

10k -------------------------------- -1 buc.

 Condenstoare:


100nF------------------------------ -4 buc.
33pF  ceramic---------------------- -1 buc.

Condensator  semivariabil :

10-30pF ----------------------------1 buc. (de preferat multitura)

Condensatoare electrolitice:

4,7uF/16 Volti-----------------------1 buc.
10uF/16 Volti -----------------------1 buc.


Punere in funcțiune si reglaje:

Montajul se alimenteaza de la o sursa stabilizata de tensiune de 5 Volți.
La intrare se cupleaza o sursa de semnal cu frecvența cunoscuta și se regleaza C3(10-30pf)
pana la afișarea frecvenței de la intrare pe ecran.





























Schema realizata cu Diptrace 2.1.9.2 varianta free:
https://docs.google.com/leaf?id=0B_dNmUbXFqawZTFmMjA4ZTgtNjUxMy00NDU4LWFmZTctYmFiOTU4OTU1ZjM1&hl=en_US

Fișierul hex pentru PIC:
https://docs.google.com/leaf?id=0B_dNmUbXFqawMDRjYTFhMmUtMmFiMi00ODlmLWE1MGQtY2I1NzQxNzQ0ZjZj&hl=en_US

miercuri, 10 martie 2010

Digital Clock LM8560 24 Hours



Acum ceva timp in urma, avand un radio cu ceas si dorind sa-mi construiesc un ceas cu un afisaj din leduri, diferit de ceea ce se gasea pe piata( adica cu digitii realizati din leduri individuale) , l-am demontat pentru a vedea circuitul cu care era realizat.
Am gasit un circuit integrat LM8560 care era ieftin si disponibil la unele dintre magazinele online de componente din tara. Circuitul LM8560 este un circuit de ceas cu care se poate realiza un ceas digital in format de 12/24 de ore, cu alarma, cu functie de snooze si timer de maxim 1 ora si 59 de minute.
Modul in care functioneza afisajul pentru acest circuit este un pic diferit fata de altele deoarece are 2 catozi comuni si nu doar unul ca de obicei. Modul de conectare pentru catozii segmentelor este urmatorul :
Cu majuscule sunt notate segmentele de la cifra ZECILOR DE ORE si cu minuscule segmentele de la cifra orelor
- pin 1 la seg AD/GE
- pin 2 la seg - / B
- pin 3 la seg e/C
- pin 4 la seg g/b
- pin 5 la seg d/c
- pin 6 la seg f/a
Acelasi mod de notare se foloseste si pentru segmentele ZECILOR DE MINUTE(majuscule) si minuscule pentru segmentele de la cifra minutelor,
- pin 7 la seg A/F
- pin 8 la seg B/G
- pin 9 la seg C/D
- pin10 la seg e/E
- pin11 la seg g/b
- pin12 la seg d/c
- pin13 la seg f/a

CATODUL 1 se conecteaza la CATOZII segmentelor care se gasesc in partea anterioara a slashului( / ) , iar CATODUL 2 se conecteaza la CATOZII segmentelor ce se gasesc in partea posterioara a slashului.
De asemenea recomand sa cumparati leduri de calitate pentru a avea intensitatea luminoasa uniforma. PCB-ul atasat este realizat pentru a fi tiparit exact asa cum e, (A NU SE TIPARI IN OGLINDA ) pentru realizarea cablajului cu tehnica transferului de tonner.
Schema si PCB-ul le gasiti la:  https://docs.google.com/leaf?id=0B_dNmUbXFqawYmNlODAyODMtZTE0Zi00MzBlLTk4YzgtMmY4ZTYxZWY2MzVi&hl=en