Cordial saludo.
Este es mi primer post, espero estar en el lugar indicado, les comento.
Estoy trabajando en un proyecto y necesito comparar el valor que me entrega un DHT22, con un valor asignado por medio del teclado, el valor debe ser con decimales por ejemplo 20.6, todo va bien hasta el momento de comparar, dado que el valor ingresado lo guardo en un array y el del DHT22 en un float, cuando voy a compararlo no me permite hacerlo por obvias razones. en este orden de ideas... alguien puede explicarme como hacer la conversión de array a float, y asi poder comparar las dos variables. muchas gracias, anexo el código.
#include<DHT.h>
#include <Adafruit_Sensor.h>
DHT dht(16, 22);
#include <LiquidCrystal.h>
LiquidCrystal lcd(13,12,11,10,9,8); // orden de los pines de la arduino a la lcd
#include <Keypad.h>
const byte filas=4;
const byte columnas=3;
byte pinsFilas[filas] = {7,6,5,4};// ] = alt + 93
byte pinsColumnas[columnas] = {3,2,1};
char teclas[filas][columnas] = {
{'1','2','3'},
{'4','5','6'},
{'7','8','9'},
{'.','0','#'}
};
Keypad teclado = Keypad(makeKeymap(teclas), pinsFilas, pinsColumnas, filas, columnas );
char tecla;
#define klfr 14 //se asignan salidas para calefactor y
#define bzr 15 //alrama en los pines 14 y 15 respectivamente
char temp[6]={};
char hdd[6]={};
float setT, setH;
int temp_max, temp_min; // variables para temperatura y limites maximo y minimo
int menu, p; //para menus de ingreo temperatura y humedad
// 0 = ingreso temperatura. 1= ingreso de humedad. 2= inicio de proceso
/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
★★★★★★★★ area de configuracion ★★★★★★★★★★
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */
void setup() {
pinMode(klfr, OUTPUT); //se asignan salidas para calefactor y
pinMode(bzr, OUTPUT); //alrama en los pines 14 y 15 respectivamente
//teclado
lcd.begin(16,2);
dht.begin();
lcd.print("sensor");
delay (300);
lcd.clear();
lcd.print("DHT22");
delay (300);
lcd.clear();
}
/* ★★★★★★★★ area de funciones personalizadas ★★★★★★★★*/
/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
★★★★★★★★ area de programa principal ★★★★★★★★
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */
void loop() {
tecla = teclado.getKey(); //inicio teclado
float temperatura =dht.readTemperature();
float humedad = dht.readHumidity();
if (menu==1){
lcd.setCursor(0,1);
if(tecla != NO_KEY){
hdd[p]=tecla;
p++;
lcd.print(hdd);
if(tecla=='#'){
setH=atol(hdd);
menu=2;
lcd.clear();
lcd.print("ST T: H: %");
lcd.setCursor(0,1);
lcd.print("RL T: H: %");} //cierra if(tecla=='#')
} //if(tecla != NO_KEY)
} // cierra if(menu==1)
if(menu==0){
lcd.setCursor(0,0);
lcd.print("Temp. Deseada");
lcd.setCursor(0,1);
if(tecla != NO_KEY){
temp[p]=tecla;
p++;
lcd.print(temp);
if(tecla=='#'){
p--;
temp[p]=' ';
p=0;
setT=atoi(temp); //////////////
menu=1;
lcd.clear();
lcd.setCursor(0,0);
lcd.print("humedad deseada");} //cierra if(tecla=='#')
} //if(tecla != NO_KEY)
} // cierra if(menu==0)
if(menu==2){
lcd.setCursor(5,0);
lcd.print(setT);
lcd.setCursor(12,0);
lcd.print(hdd);
lcd.setCursor(5,1);
lcd.print(temperatura,1);
lcd.setCursor(12,2);
lcd.print(humedad,1);
if(temperatura<setT){
digitalWrite(klfr,HIGH);}
if(temperatura>setT){
digitalWrite(klfr,LOW);
}
}// cierra if(menu==2)
} // cierre final