Buen día, estoy haciendo un programa de un control ON / OFF midiendo la temperatura con un sensor ds18b20 y colocando el setpoint de la temperatura con un encoder , aun falta crear algunas partes del codigo pero mi duda es: El encoder da valores correctamente empezando de 20 hasta 60 pero porque cuando descomento aguatemp.requestTemperatures(); y agua = aguatemp.getTempCByIndex(0); para obtener los valores del sensor e imprimirlo en el monitor serie con Serial.print(agua); el encoder empieza a fallar es decir no da valores o da solo un valor girando varias veces, muchisimas gracias compañeros!
//INCLUIR LIBRERIAS
#include <OneWire.h> //Incluimos libreria del sensor DS18B20
#include <DallasTemperature.h> //Incluimos libreria del sensor DS18B20
OneWire ourWire(13); //Establecemos que utlizaremos el pin 13
DallasTemperature aguatemp(&ourWire); //DecLaramos la variable aguatemp
//LIBRERIAS ENCODER
#include <Arduino.h>
#include <SimpleEncoder.h>
//VARIABLES
float agua;
int relay = 8;
int relay2 = 9;
int palrele = 0;
int palrele2 = 0;
int ledverdeON = 6;
int ledrojoOFF = 7;
int ledazul = A1;
int lednaranja= A2;
int ledrojo = A3;
int estado = 0;
// VARIABLES ENCODER
const int BTN = 10;
const int encA = 11;
const int encB = 12;
long startValue = 0;
long lowerValue = 20;
long upperValue = 60;
SimpleEncoder encoder(BTN, encA, encB, startValue, lowerValue, upperValue);
void setup()
{
pinMode(relay,OUTPUT);
pinMode(relay2,OUTPUT);
pinMode(A1,OUTPUT);
pinMode(A2,OUTPUT);
pinMode(A3,OUTPUT);
pinMode(ledverdeON, OUTPUT);
pinMode(ledrojoOFF, OUTPUT);
Serial.begin(9600);
}
void loop()
{
// ENCODER DIGITAL
if (encoder.CHANGING)
{
Serial.println("Current value is: " + String(encoder.VALUE));
}
//OBTENEMOS TEMPERATURA DEL AGUA
//aguatemp.requestTemperatures();
//agua = aguatemp.getTempCByIndex(0);
//Serial.print("Temperatura Real: ");
//Serial.println(agua);
//Serial.println("");
}