conversión de array a float

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

Repasa las normas del foro ,sobre todo en lo referente a como postear codigo correctamente.Repasa tambien esto,la funcion que usas convierte array char a int ,prueba con atof() :

Gracias a tu respuesta, por esta, inicie a revisar paso a paso cada línea.. y cada copia de seguridad q tenía... Y me encontré que al usar el atof lo aplique sobre otra variable, por eso no me daba, nuevamente, muchas gracias