Display Oled 64x48

Estoy usando un display Oled 64x48 con una placa Wemos D1.
Después de mucho renegar y siguiendo los consejos que me dieron en este foro, opté por usar la biblioteca u8x8. Ya puedo escribir en ella usando u8x8.drawString
Necesito ahora q me muestre el valor de una variable Float. No lo hace, no puede mostrar valores. Para eso pensé q convirtiendo la varible a String solucionaría el problema, pero no, al compilar me da error "cannot convert 'String' to 'const char*' " y no puedo encontrar la solución.
Pueden ayudarme?

La función drawString seguramente este definida pasando como parametro un puntero a char. Tienes que usar el método c_str() del objeto string que devuelve un puntero a los caracteres de la cadena:

String s;
...
u8x8.drawString( s.c_str() );

Esta es otra opción para mostrar float.
El problema no es de la OLED el problema es de arduino que no puede mostrar floats salvo con `

Serial.print(variable _float);

pero tienes esta otra opción

float a = 123.123;

char x[8];
void setup(){
    Serial.begin(9600);
}

void loop(){
    dtostrf(a,5,2,x);
    Serial.println(x);
}

dtostrf te permite convertir un float a en un string no String (OJO que no son lo mismo).
Ese string o cadena de caracteres la puede presentar en el OLED sin problemas.
Te aconsejo usar sprintf()

Gracias, me funcionó con u8x8.print(val1,2);

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.