Numitron Klocka & termometer (2 / 8 steg)
Steg 2: DS18B20 temperaturgivare
Det finns två sätt att ställa in en DS18B20:
- Med parasit makt
- Med extern strömförsörjning
Om du vill veta mer om dessa alternativ, bara kolla databladet.
Data raden DQ behöver en 4K 7 pullup motstånd och kan anslutas till flesta stiften på din mikrokontroller.
Kommunikation med en 1wire enhet är, återigen, inte särskilt svårt i Bascom. Det finns några kommandon men vi behöver bara tre av dem för detta projekt.
- 1wreset: detta kommandon återställer meddelande
- 1wwrite var: detta kommando skriver 'var' till enheten
- 1wread var: detta kommando läses från enheten till 'var'
Vi behöver också konfigurera 1wire bussen med följande kod: config 1wire = pinX.y där X är namnet på hamnen och y antalet stift.
Kan försöka lägga allt detta in koden nu:
Vi kommer att använda DS18B20 12 bitars läge (standardinställning) så att varje bit motsvarar med 0.0625degr C eller för att uttrycka det enklare: vi kommer att behöva dela upp resultatet av 16 att få temperaturen. För denna kod måste du dim tempdata(9) som byte och temperatur som heltal.
config 1wire = portd.0 detta säger mikrokontroller Varthän leta efter enheten
....
1wreset återställs och börjar meddelandet
1wwrite & HCC hoppar detta sänder unikt ROM-koden för enheten. Detta
koden krävs när det finns fler enheter på samma tråd
men vi har bara en så vi kan hoppa över den.
1wwrite & H44 startar A/D-konvertering i sensorn och lagrar data i
scratchpad
waitms 750 konvertering i 10 bitars läge kan ta upp till 750ms så vi vänta
750ms innan vi börjar att läsa scratchpad.
1wreset
1wwrite & HCC
1wwrite & HBE berättar enheten att vi vill läsa scratchpad.
Tempdata(1) = 1wread(9) vi läsa 9 byte i tempdata(), start från tempdata(1).
Om tempdata(9) = Crc8(tempdata(1), 8) sedan detta kontrollerar giltigheten för uppgifter och
Temperatur = Makeint(tempdata(1), tempdata(2)) kombinerar de 2 första byte till en
heltal.
Temperatur = temperatur / 16 genom att dividera detta heltal med 16 vi har
vår temperaturen i degr C.
Slut om
Vi har vår sensor arbetar nu.
I nästa steg kommer vi tala om knapparna.