Подскажите. Подключил 4 датчика ds18b20 через sensorshield к 4м каналам. Выводит показание -127.00. Подскажите, в чем ошибка?
#include <TFT_eSPI.h>
#include <OneWire.h>
#include <Wire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 7
#define ONE_WIRE_BUS 6
#define ONE_WIRE_BUS 5
#define ONE_WIRE_BUS 4
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
TFT_eSPI tft = TFT_eSPI();
uint16_t color24to16( uint8_t r, uint8_t g, uint8_t b ){
uint16_t c = ((r & 0xF8)<<8) | ((g & 0xFC)<<3) | ((b & 0xF8)>>3);
Serial.println(c, HEX);
return c;
}
void setup() {
Serial.begin(115200);
color24to16(0xC8, 0x8C, 0x1E);
tft.init();
tft.setRotation(1);
tft.fillScreen(TFT_WHITE);
tft.setCursor(50, 12); // x,y координаты текста
tft.setTextColor( color24to16(0,0,0));
tft.setTextSize(3); // размер текста - №2 (7*2 = 14 точек)
tft.print("Показания температуры");
tft.setCursor(20, 82); // x,y координаты текста
tft.setTextColor( color24to16(0,0,0) );
tft.setTextSize(3); // размер текста - №2 (7*2 = 14 точек)
tft.print("Подача"); // вывод текста
tft.setCursor(20, 146); // x,y координаты текста
tft.setTextColor( color24to16(0,0,0) );
tft.setTextSize(3); // размер текста - №2 (7*2 = 14 точек)
tft.print("1"); // вывод текста
tft.setCursor(20, 208); // x,y координаты текста
tft.setTextColor( color24to16(0,0,0) );
tft.setTextSize(3); // размер текста - №2 (7*2 = 14 точек)
tft.print("2"); // вывод текста
tft.setCursor(20, 268); // x,y координаты текста
tft.setTextColor( color24to16(0,0,0) ); // цвет текста - КРАСНЫЙ
tft.setTextSize(3); // размер текста - №2 (7*2 = 14 точек)
tft.print("Отток"); // вывод текста
tft.drawRect(2, 64, 475, 60, color24to16(255,255,0));
tft.drawRect(350, 64, 127, 60, color24to16(255,255,0));
tft.drawRect(2, 128, 475, 60, color24to16(0,0,255));
tft.drawRect(350, 128, 127, 60, color24to16(0,0,255));
tft.drawRect(2, 190, 475, 60, color24to16(0,255,255));
tft.drawRect(350, 190, 127, 60, color24to16(0,255,255));
tft.drawRect(2, 254, 475, 60, color24to16(255,0,255));
tft.drawRect(350, 254, 127, 60, color24to16(255,0,255));
}
void loop() {
sensors.begin();
sensors.setResolution(10);
sensors.requestTemperatures();
float temp1 = sensors.getTempCByIndex(4);
float temp2 = sensors.getTempCByIndex(5);
float temp3 = sensors.getTempCByIndex(6);
float temp4 = sensors.getTempCByIndex(7);
Serial.println(temp1);
Serial.println(temp2);
Serial.println(temp3);
Serial.println(temp4);
Serial.println( );
delay(100);
tft.setCursor(352, 72); // x,y координаты текста
tft.setTextColor( color24to16(0,0,0) ); // цвет текста - ЗЕЛЕНЫЙ
tft.setTextSize(3); // размер текста - №2 (7*2 = 14 точек)
tft.print(temp1);
tft.setCursor(352, 136); // x,y координаты текста
tft.setTextColor( color24to16(0,0,0) ); // цвет текста - ЗЕЛЕНЫЙ
tft.setTextSize(3);
tft.print(temp2);
sensors.requestTemperatures();
tft.setCursor(352, 200); // x,y координаты текста
tft.setTextColor( color24to16(0,0,0) );
tft.setTextSize(3); // размер текста - №2 (7*2 = 14 точек)
tft.print(temp3);
tft.setCursor(352, 264); // x,y координаты текста
tft.setTextColor( color24to16(0,0,0) ); // цвет текста - ЗЕЛЕНЫЙ
tft.setTextSize(3); // размер текста - №2 (7*2 = 14 точек)
tft.print(temp4);
}