TERMOMETAR NA USB
PORTU
Na donjoj
slici prikazana je šema USB termometra.
Za
realiziciju ovog interfejsa neophodan je materijal dat u donjoj tabeli:
Rb. |
Komponenta |
Količina |
1. |
IC1 - mikrokontroler PIC16C745 – DIP pakovanje |
1 kom |
2. |
IC2 –DS1820 kolo |
1 kom |
3. |
DIL - 28 podnožje
(profesional) |
1 kom |
4. |
Led1- zelena led diode
fi 3mm |
1 kom |
5. |
TIP B USB konektora za pcb montaža |
1 kom |
6. |
Q1 – kvarc kristal 6 Mhz |
1 kom |
7. |
R1 - 4k7 (1/4W) |
1 kom |
8. |
R2 – 10k (1/4W) |
1 kom |
9. |
R3 – 1k5 (1/4W) |
1 kom |
10. |
R4 – 330W (1/4W) |
1 kom |
11. |
C1, C2– 33pF keramički |
2 kom |
12. |
C3 – 220nF keramički |
1 kom |
13. |
C4 - 1mF elektrolitski stojeći (16V) |
1 kom |
14. |
Vitroplast jednostrani(100 x 160 mm) |
1 kom |
Kolo DS1820 firme Dallas je digitalni termometar koji u sebi sadrži jedinstveni
identifikacioni broj. Raspored njegovih pinova prikazan je na donjoj slici.
Struktura
memorijske mape ovog kola data je na donjoj slici:
Prva dva bajta u memoriji(Scratchpad) su bajtovi koji se koriste za merenje temperature, kada
kolo meri temperaturu u koracima po 0.5 °C.
Sve dok se ne pozove komanda za merenje temperature sardržaj je prvog baja
AAh i drugog 00h što odgovara temperaturi od 85 °C.
Sadržaj LSB bajta i MSB bjata prikazan je na donjoj slici.
Iz sadržaja ova dva bajta vidi se da niži bajt (LSB) sadrži očitanu
temperaturu pri čemu bit najniže težine predstavlja vrednost
temperature iza decimalnog mesta. Bajt više težine sadrži sve
nule ili jedinice i određuje da li je temperatura pozitivna ili negativna.
Ako su sve nula temperatura je pozitivna a ako su sve jedinice onda je
negativna. U donjoj tabeli dato je nekoliko primera očitane temperature.
Temperatura |
Binarna vrednost |
Heksa vrednost |
+85.0
°C |
0000 0000 1010 1010 |
00AAh |
+25.0
°C |
0000 0000 0011 0010 |
0032h |
+0,5.0
°C |
0000 0000 0000 0001 |
0001h |
0 °C |
0000 0000 0000 0000 |
0000h |
-0,5.0
°C |
1111 1111 1110 1111 |
FFFFh |
-25.0
°C |
1111 1111 1100 1101 |
FFCEh |
-55.0
°C |
1111 1111 1001 0010 |
FF92h |
U
slučaju kada je temperatura negativna LSB bajt sadrži komplement 1
očitane temperature. U slučaju ako želimo tačnost
temperature na dve decimale ili više tada se ona sračunava po
formuli:
\gde je: ProcitanaT
- temperatura upisana u LSB bajtu, Obracun-po-°C - sadržaj 7 bajta i Ostatak obračuna - sadržaj 8 bajta.
Četvrti i peti bajt su rezervisani i sadrže sve
jedinice. Bajt TH i TL su bajtovi u koje se može upisati alarmna
temperatura pri čemu je TH više bajt a TL niži bajt.
Naši interfejs koristi takozvano parazitno napajanje
kola DS1820 pa se u tom slučaju temperatura očitava po proceduri
datoj u donjoj tabeli:
Mod računara |
Podatak |
Komentar |
TX |
Reset |
Računar resetuje DS1820 |
TR |
Odgovor |
DS1820 odgovara sa impulsom |
TX |
CCh |
Računar šalje Skip
ROM komandu |
TX |
44h |
Računar šalje
Convert T komandu |
TX |
Čekanje |
Računar čeka na
konverziju |
TX |
Reset |
Računar šalje reset
impuls |
RX |
Odgovor |
DS1820 odgovara sa impulsom |
TX |
CCh |
Računar šalje Skip
ROM komandu |
TX |
BEh |
Računar šalje READ
Scratchpad komandu |
RX |
9 bajta |
DS1820 šalje
sadržaj Scratcpad memorije u dužini od 9 bajta
uključujući i generisani CRC kod koji se nalazi u zadnjem
pročitanom bajtu. |
TX |
Reset |
Računar šalje reset
impuls |
RX |
Odogovor |
DS120 odgovara impulsom |
|
|
Sračunavamo u programu
pročitanu temperaturu na osnovu sadržaja primljenih bajtova |
Izmerenu temperaturu kolo šalje PC
računaru koju prikazuje. Pozivom programa na hostu dobićemo ekran
prikazan kao na donjoj slici:
Programe za
podršku ovom intefejsu možete preuzeti ovde.
http://vojo.milanovic.org
© Copyright, 2005 Milanović Vojo
All right reserved