Помогите! на дисплей я хотел вывести температуру но дисплей показывал темп и моргала надпись NANc. Код (C++): #include <Wire.h> #include <Adafruit_SSD1306.h> #include <Adafruit_GFX.h> #include "DHT_NEW.h" DHT _dht1; bool EN_163932959_1; String in_163932959_1; byte size_163932959_1; byte X_163932959_1; byte Y_163932959_1; bool invert_163932959_1; Adafruit_SSD1306 display(4); unsigned long _dht1LRT = 0UL; unsigned long _dht1Tti = 0UL; void setup() { _dht1.setup(2); _dht1LRT = millis(); _dht1Tti = millis(); display.begin(SSD1306_SWITCHCAPVCC); display.display(); display.clearDisplay(); } void loop() { display.clearDisplay(); if(_isTimer(_dht1Tti, 1000)) { if(_isTimer(_dht1LRT,( _dht1.getMinimumSamplingPeriod()))) { _dht1.readSensor(); _dht1LRT = millis(); _dht1Tti = millis(); } } EN_163932959_1 = 1; in_163932959_1 = ((String("t")) + (( _floatToStringWitRaz(_dht1.temperature,2))) + (String("c"))); size_163932959_1 = 2; X_163932959_1 = 0; Y_163932959_1 = 0; invert_163932959_1 = 1; if (EN_163932959_1==1) { if (invert_163932959_1==1) {display.setTextColor(WHITE, BLACK); } else {display.setTextColor(BLACK, WHITE); } display.setCursor(X_163932959_1,Y_163932959_1); display.setTextSize(size_163932959_1); display.print(utf8rus(in_163932959_1)); } display.display(); } String _floatToStringWitRaz(float value, int raz) { return String(value,raz); } bool _isTimer(unsigned long startTime, unsigned long period ) { unsigned long currentTime; currentTime = millis(); if (currentTime>= startTime) {return (currentTime>=(startTime + period));} else {return (currentTime >=(4294967295-startTime+period));} } String utf8rus(String source) { /* Recode russian fonts from UTF-8 to Windows-1251 */ int i,k; String target; unsigned char n; char m[2] = { '0', '\0' }; k = source.length(); i = 0; while (i < k) { n = source[i]; i++; if (n >= 0xC0) { switch (n) { case 0xD0: { n = source[i]; i++; if (n == 0x81) { n = 0xA8; break; } if (n >= 0x90 && n <= 0xBF) n = n + 0x30; break; } case 0xD1: { n = source[i]; i++; if (n == 0x91) { n = 0xB8; break; } if (n >= 0x80 && n <= 0x8F) n = n + 0x70; break; } } } m[0] = n; target = target + String(m); } return target; }
Первое - тоже. там везде строки. А вот _dht1.temperature скорее всего точно не число, но я не знаю, что там за dht_new, если ТС её выложит - посмотрю. А вообще, нафига тащить сюда флпроговские какашки?