u8g2lib 128x32 i2c

Salve a tutti :) volevo chiederevi come faccio a stampare una variabile sullo schermo oled 128x32 i2c ssd1306. Ho guardato su internet e provato altri codici ma niente. Sto provando a stampare sul display la temperatura che sto rilevando con il dht11 vi lascio qui il comando che ho utilizzato.

u8g2.clearBuffer();  
u8g2.setFont(u8g2_font_unifont_t_symbols);
u8g2.drawStr(5, 20, temp);  
u8g2.sendBuffer();

Questo è l'errore: no known conversion for argument 3 from 'float' to 'const char*'

exit status 1 no matching function for call to 'U8G2_SSD1306_128X32_UNIVISION_F_SW_I2C::drawStr(int, int, float&)'

Prova print al posto di drawStr.

SukkoPera:
Prova print al posto di drawStr.

Quoto.
Non ho quel display e non l’ho mai usato, ma santi ragazzi, cercare online il reference della libreria che si usa per capire la sintassi delle varie funzioni è difficile? Io l’ho trovato in 20 secondi.

Questa è la drawStr():

u8g_uint_t U8GLIB::drawStr(u8g_uint_t x, u8g_uint_t y, const char *s) u8g_uint_t

Come vedi il parametro è un “const char *” come anche l’errore dice chiaramente.

Se usi la print() come ti suggerisce Sukko direi che possa andare visto che scrivono:

U8GLIB::print(…)
A call to the print procedure of the Print base class. See the documentation on the Arduino web page: http://arduino.cc/en/Serial/Print. print() behaves similar to drawStr. All font settings also apply to this procedure. All strings and values passed to the print procedure are written to the “print position”. The “print position” can be set via setPrintPos.

Per cui dividi quei 3 parametri in due chiamate, prima fai setPrintPos() e poi print().