Digital Temperatur
Modul DS18B20 fra Keyes er en digital temperaturmåler. I de klassiske temperaturmålere udsendes en analog spænding, men denne måler udsender i stedet en digital værdi. Dette kan udnyttes til at undgå besværlige udregninger. Databladet for modulet kan ses på [[1]].
Modulet
Modulet er fra keyes-serien keyes-moduler, og har betegnelsen KY-001.
Princip-diagram for DS18B20
Hardwaren består af et færdigbygget modul. Dette modul har en IC (integreret kreds) som kan måle temperaturen og sende den videre ud fra signalbenet. IC'eren er markeret med orange ring til højre.
Der er tre ben på dette modul:
- Ben 1: GND (-)
- Ben 2: +5V
- Ben 3: Signal (S)
Ben tre er både output og input (bi-directional), og man skal derfor være opmærksom på, om porten kan håndtere kommunikation begge veje. Til testning af dette modul blev brugt PIC16F877 som på port B kan håndtere sådanne input. Alt dette kan dog læses i databladet for de forskellige PIC's.
For at få et klart signal fra ben 3, er der påsat en pull-up på boardet. Dette er en 4k7 modstand, og det er derfor ikke nødvendigt at tilføje dette til sit eget projekt. Dette nævnes her, da mange eksempler på det store internet ikke har denne med som udgangspunkt. Desuden er der en rød lampe, som blinker i et jævnt tempo, når det virker, og blinker meget hurtigt, når det ikke virker. Denne lampe kan bruges som indikation på om der overhovedet er kontakt til printet.
Print DS18B20
På billedet til venstre kan man se, hvordan boardet er sat op med de forskellige hardware dele.
Andre versioner af DS18B20
Holstebro HTX har pt ikke andre moduler, som kan måle en temperatur digitalt. Alternativt kan man bruge forskellige analoge temperaturmålere, som kan findes i Keyes-moduler, eller man kan selv bygge en analog temperaturmåler op.
Software modulet ds18b20.jal
Der er lavet 2 biblioteker til DS18B20. Det er ONE_WIRE og DS18B20, og begge skal inkluderes og sættes op i ens jal kode.
Vigtig -- Koden er lavet til en PIC16F877 med en 20mHZ resonator! Uden dette vil koden ikke virke.
Anvendelse af ds18b20
Når man vil anvende ds18b20, så skal man include one_wire.jal og DS18B20.jal som følger:
--inkludering og setup af one wire biblioteket
alias d1w_bus is pin_b2
alias d1w_bus_direction is pin_b2_direction
include one_wire -- inkludering af one wire biblioteket
d1w_init() -- setup af ONE wire kommunikation
--inkludering og setup af ds18b20 biblioteket
const ds18b20_value_raw = 0
const ds18b20_value_celcius = 1
const ds18b20_value_farenheit = 0
const ds18b20_ignore_crc = 0 -- 1 tell lib to ignore crc (code becomes smaller and faster, but reliability of data is less)
const ds18b20_max_retries = 2 -- 1 means the library re-reads once when crc fails, 4 means up to 4 retries (so max 5 reads)
include ds18b20
one_wire.jal og ds18b20.jal skal ligge i \lib inde i c:\jalpack så kan compileren finde modulet.
JAL-filerne ligger sammen med et par eksempler inde i denne ZIP-fil
Modul_DS18B20 er testet på følgende kombinationer:
PIC | pin |
---|---|
PIC16F877 | b2 |
Anvendelsen af Modul_DS18B20
Beskrivelse af hvordan man anvender modulet.
include ALCD
alias d1w_bus is pin_b2
alias d1w_bus_direction is pin_b2_direction
include one_wire -- include one-wire library
d1w_init() -- init one-wire bus
const ds18b20_value_raw = 0
const ds18b20_value_celcius = 1
const ds18b20_value_farenheit = 0
const ds18b20_ignore_crc = 0 -- 1 tell lib to ignore crc (code becomes smaller and faster, but reliability of data is less)
const ds18b20_max_retries = 2 -- 1 means the library re-reads once when crc fails, 4 means up to 4 retries (so max 5 reads)
include ds18b20 -- include library for ds18b20 temperature sensor with one-wire interface
var sword temperature
forever loop
ds18b20_convert()
delay_1ms(750)
ds18b20_s_temp(temperature)
alcd_write_dec4(temperaturre)
end loop
Moduler på Holstebro HTX | |||||||
---|---|---|---|---|---|---|---|
Tastaturer | Displays | AD-konvertering | I/O-ekspander | Serielt | Interface | Færdige | Andre |
RC-tast - AD-tast - M_tast | ALCD - LCD | ADC_holst - ADC mcp3201 - mcp3208 |
input - output | Seriel_holst - Serial hardware Serial hw int cts - Serial software |
Stepmotor - RFID RGB - RF-link - Afstand |
Humidity - Analog temp - Dig temp Accelerometer |
Rotary Encoder |
Oversigt over Hardware Moduler på Holstebro HTX