Já nemám arduino a neznám přímo jeho možnosti. Ale jeho jazyk vychází zdá se z C++.
Patrně umí objekt lcd vypsat pouze buď pole znaků nebo řetězec a proto je potřeba nejdřív float proměnnou na něj převést.
Podle internetu by mohlo fungovat i něco takového:
Kód:
char tmp [6];
dtostrf(INtep, 5, 2, tmp);
lcd.print(String(tmp) + "°C");
případně pouze:
Kód:
lcd.print(String(INtep, 2));
https://www.arduino.cc/en/Reference/StringConstructorAle za nic z toho neručím.
Ten znak pro stupně nemusí být podporovaný. Nepatří do základní tabulky ASCII:
https://cs.wikipedia.org/wiki/ASCIIEdit -------------
Beru všechno zpět. Chvíli mi trvalo najít rozhraní třídy Print, která je předkem toho lcd displeje.
mělo by stačit:
Kód:
lcd.print((double) INtep);
Tohle jsou (asi) všechny varianty metody print a float mezi nimi není a implicitní konverze float->double asi není definovaná:
Kód:
size_t print(const __FlashStringHelper *);
size_t print(const String &);
size_t print(const char[]);
size_t print(char);
size_t print(unsigned char, int = DEC);
size_t print(int, int = DEC);
size_t print(unsigned int, int = DEC);
size_t print(long, int = DEC);
size_t print(unsigned long, int = DEC);
size_t print(double, int = 2);
size_t print(const Printable&);