Paso 2: El DS18B20 sensor de temperatura
Hay dos maneras de configurar un DS18B20:
- Con la energía del parásito
- Con fuente externa
Para saber más sobre estas opciones, simplemente Revise la hoja de datos.
La línea de datos DQ tendrá una resistencia de 4K 7 pullup y puede conectarse a la gran mayoría de pines en el microcontrolador.
Comunicación con un dispositivo 1wire es, otra vez, no muy difícil en Bascom. Hay algunos comandos, pero sólo tres de ellos necesitamos para este proyecto.
- 1wreset: esto manda restablece la comunicación
- var 1wwrite : este comando escribe 'var' en el dispositivo
- var 1wread : este comando se lee desde el dispositivo en 'var'
También tenemos que configurar el bus 1wire con el siguiente código: 1wire config = pinX.y donde X es el nombre del puerto y el número del pin.
Vamos a intentar poner todo esto en código ahora:
Vamos a utilizar el DS18B20 en modo de 12 bits (configuración predeterminada) para cada bit corresponde con 0.0625degr C o para decirlo más fácil: tenemos que dividir el resultado por 16 para obtener la temperatura. Este código necesita dim tempdata(9) como byte y temperatura como entero.
1wire config = portd.0 Esto dice el microcontrolador sintamos una mirada para el dispositivo
....
1wreset se reinicia y comienza la comunicación
1wwrite & HCC Esto salta transmiten el código ROM único para el dispositivo. Esto
código es necesaria cuando hay más dispositivos en el mismo cable
pero tenemos sólo uno por lo que nos podemos saltar.
1wwrite & H44 inicia la conversión A/d en el sensor y almacena los datos en
el Bloc de notas
waitms 750 la conversión en el modo de 10 bits puede tomar hasta 750ms por lo que esperamos
750ms antes de empezar a leer el Bloc de notas.
1wreset
1wwrite & HCC
1wwrite & HBE dice que el dispositivo que queremos leer el Bloc de notas.
TempData(1) = 1wread(9) leemos bytes 9 en tempdata(), a partir de tempdata(1).
If tempdata(9) = Crc8(tempdata(1), 8) entonces comprueba la validez de los datos y
Temperatura = Makeint(tempdata(1), tempdata(2)) combina los 2 primeros bytes en un
entero.
Temperatura = temperatura / 16 dividiendo esta entero 16 nos han
nuestra temperatura en degr C.
End If
Tenemos nuestro sensor trabajando ahora.
En el siguiente paso vamos a hablar acerca de los botones.