
[DIY109]
Do it yourself !

Parts List:
1 CB280 Start Kit
1 CLCD420B
1 DS1620 (available at mouser.com or digikey.com too)
available at cubloc.com
Estimated Time to Assemble: 1 minutes
Estimated Time to Program: zero (source code provided)
Okay, it seems like the only class I really enjoyed in college was the embedded computer class. All the other circuit classes and computer language classes bore the hell out of me because they was no actual product.
With embedded computers, you actually physically get to see stuff and that's what I liked about it.
Well I started w/ the Motorola MC68 series microcontrollers and it took me almost a week to make a digital thermometer. I had to make everything from scratch. It was still interesting because I made something physical and it worked!
Anyways, now I am glad I can do the same thing except it only takes me 1 minute!
Not because I got smarter but mostly because I've done this thousand times now, but I think anyone should be able to accomplish this in 1 minute if you follow these directions. :)
Connections

Just follow the above picture exactly in less than 1 minute and you have the following source code to download and make this thing work!
diy109.zip
Taking it Further...
Okay, now you have a 1 minute guide to making a digital thermometer. Go to your college professor and show him how you can make one in 1 minute... maybe he will give you some extra credit...
If you are having any trouble with above app, please e-mail max@zedomax.com
If you have any cool apps you'd like to share or want some kind of DIY, please e-mail to max@zedomax.com
We do accept free samples for DIYs, please email max@zedomax.com :)
Program Source...
' DS1620 Temperature Sensor App v.0.0.1
' v0.0.1 - Displays upto 2 decimals
' by using DS1620's precise mode
Const Device=cb280
' Set Pin numbers!
' Set DQ,CLK,RST pins
'Connect P24 to RST of DS1620
'Connect P25 to CLK of DS1620
'Connect P26 to DQ of DS1620
#define RST 24
#define CLK 25
#define DQ 26
Set Ladder Off
Dim ReturnedTemp As Single, TempF As Single, TempC As Single 'Floating Point variables for storing temperature
Dim COUNT_REMAIN As Single, COUNT_PER_C As Single 'Floating Point variables for calculations
Dim tmp As Single 'Temporary variable for Floating Point
Dim TempString As String *6
Dim TempFString As String * 6
Dim TempCString As String * 6
Set Display 2,0,0,128
'Erase screen
Cls
Delay 100
Csroff
Locate 2,0
Print "Zedomax Digital"
Locate 5,1
Print "Thermometer"
Locate 0,2
Print "Fahrenheit: "
Locate 0,3
Print "Celcius: "
DS1620Init
'On timer(5) Gosub MAINPROCESS 'Timer Interrupt every 500msec!
Do
DS1620
Loop
'MAINPROCESS:
'Return
End
Sub DS1620Init()
Output RST
Output CLK
Output DQ
'Send Initialization to DS1620
Out RST, 1
Shiftout CLK,DQ,0,0x0C,8
Shiftout CLK,DQ,0,0x02,8
Out RST, 0
'Start DS1620 Temperature Conversion!
Out RST, 1
Shiftout CLK,DQ,0,0xEE,8
Out RST, 0
End Sub
Sub DS1620()
'------Read Temp------------------------------
Out RST,1
Shiftout CLK,DQ,0,0xAA,8
ReturnedTemp=Shiftin(CLK,DQ,0,9)
ReturnedTemp=ReturnedTemp/2
Out RST,0
Out RST,1
Shiftout CLK,DQ,0,0xA0,8
COUNT_REMAIN=Shiftin(CLK,DQ,0,9)
Out RST,0
Out RST,1
Shiftout CLK,DQ,0,0xA9,8
COUNT_PER_C=Shiftin(CLK,DQ,0,9)
Out RST,0
'------Precision Formula (According to DS1620 Data Sheet)
tmp=(COUNT_PER_C-COUNT_REMAIN)
tmp=tmp/COUNT_PER_C
If tmp>0 Then
TempC=ReturnedTemp-0.25
TempC=TempC+tmp
Else
TempC=ReturnedTemp
End If
'Change from Celcius to Fahrenheit!
TempF=TempC*1.8
TempF=TempF+32
'Convert floating point value to string and set the number of decimals
TempString=Float ReturnedTemp
TempFString=Float TempF
TempCString=Float TempC
TempString=Left(TempString,4)
TempFString=Left(TempFString,5)
TempCString=Left(TempCString,5)
'Output to LCD!
Locate 12,2
Print TempFString
Locate 12,3
Print TempCString
' Locate 0,2
' Print TempString, " Deg C (w/o precision)", Cr
'Print to debug screen!
'Debug "Current Temperature in is ", Cr,TempFString, " Deg F ", Cr
'Debug TempCString, " Deg C", Cr
'Debug TempString, " Deg C (without precision)", Cr
End Sub
|