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.