Approved Reseller
Approved Reseller
En este pequeño tutorial veremos cómo conectar un sensor de temperatura DS18B20 a una tarjeta Arduino, también encontrarás un código de programación para tus primeras pruebas.
El sensor DS18B20 es un componente digital de entrada, es decir, su funcionamiento consiste en entregar la información correspondiente a la temperatura del ambiente por medio de un protocolo de comunicación específico implementado en su pin de señal, la tarjeta Arduino a su vez recibe la señal y la lee con uno de sus pines digitales. En este ejemplo conectaremos el pin de señal de nuestro sensor al pin digital #2 de la tarjeta.
Como mencionamos previamente, el sensor DS18B20 entrega la información por medio de un protocolo de comunicación serial implementado en un solo pin, el protocolo OneWire. En este caso utilizaremos las librerías y para realizar la lectura de manera sencilla y con muy pocas líneas de código. Estas librerías no forman parte de las librerías pre instaladas del Arduino IDE por lo que tendremos que instalarlas antes de poder compilar nuestro código. Para ello sigue los sigueintes pasos:
Cargamos el código a la tarjeta Arduino Uno y abrimos el monitor serie para observar la temperatura entregada por el sensor cada 0.5 segundos aproximadamente.
//Incluimos las librerías necesarias(Asugúrate de que cunetes con dichas librerias instaladas) #include #include // Conectamos el pin de datos del sensor al pin digital 2 del arduino #define ONE_WIRE_BUS 2 //Configuramos una instancia oneWire para comunicarnos con cualquier dispositivo OneWire OneWire oneWire(ONE_WIRE_BUS); //Pasamos nuestra resferencia oneWire a la instancia de DallasTemperature DallasTemperature sensors(&oneWire); void setup(void) { //Iniciamos el puerto serie Serial.begin(9600); Serial.println("DEMO Dallas Temperature"); //Inicializamos la librería sensors.begin(); } void loop(void) { Serial.print("Solicitando temperaturas..."); sensors.requestTemperatures(); //Enviamos el comando para obtener la temperatura Serial.println("Terminado"); //Después de haber recibido las temperaturas podemos imprimirlas Serial.print("Temperatura del dispositivo uno (index 0): "); Serial.print(sensors.getTempCByIndex(0)); Serial.println(" °C"); delay(500); }