Добрый день всем. Сегодня температура отпустила, с утра позанимался. По вашему совету решил заняться сначала и с простого. Отключил часы, подключил только датчик dht11. Почитал в интернете, посмотрел примеры скетча в библиотеке в инете, с их помощью написал скетч для dht11.
#define DHTPIN 2 //указываю номер пина подключения датчика
#define DHTTYPE DHT11 //указываю тип датчика
DHT dht(DHTPIN, DHTTYPE); //объявляю переменную с типом датчика и номером пина
#include <UTFT.h> //подключаю библиотеку дисплея
extern uint8_t nadianne[]; //Подключаю шрифты
extern uint8_t DotMatrix_M[];
extern uint8_t DotMatrix_XL_Num[];
extern uint8_t GroteskBold32x64[];
extern uint8_t GroteskBold24x48[];
extern uint8_t SevenSegNumFontPlusPlus[];
extern uint8_t Dingbats1_XL[];
extern uint8_t GroteskBold16x32[];
extern uint8_t arial_italic[];
extern uint8_t nadianne[];
extern uint8_t hallfetica_normal[];
extern uint8_t various_symbols[];
extern uint8_t Various_Symbols_16x32[];
//extern uint8_t SmallFont[];
UTFT myGLCD(CTE40,38,39,40,41); // указываю параметры дисплея и номера пинов
void setup()
{
Serial.begin(115200); //определяю скорость взаимодействия компа с платой
Serial.println(F("DHT11"));
dht.begin();
myGLCD.InitLCD(); //Инициализируем дисплей
myGLCD.clrScr();
myGLCD.setColor(255, 255, 255); //рисую окошки для вывода данных на дисплей
myGLCD.fillRect(0,4,450,0);
myGLCD.setColor(255, 255, 255);
myGLCD.fillRect(1,272,5,0);
myGLCD.setColor(255, 255, 255); //розовый, 255,225,225 синий,255,225,255 светло голубой
myGLCD.fillRect(218,272,220,0);
myGLCD.setColor(255, 255, 255); //розовый, 255,225,225 синий,255,225,255 светло голубой
myGLCD.fillRect(0,90,450,92);
myGLCD.setColor(255, 255, 255);
myGLCD.fillRect(0,272,450,270);
myGLCD.setColor(255, 255, 255);
myGLCD.fillRect(0,182,450,180);
myGLCD.setColor(255, 255, 255);
myGLCD.fillRect(450,272,452,0);
myGLCD.setColor(255, 0, 255); //пишу заголовки в окошках
myGLCD.setFont(hallfetica_normal);
myGLCD.print("Street temp", 40, 5);
myGLCD.setColor(255, 0, 255);
myGLCD.setFont(hallfetica_normal);
myGLCD.print("mm", 182,110);
myGLCD.setColor(255, 0, 255);
myGLCD.setFont(hallfetica_normal);
myGLCD.print("Hg", 186,125);
myGLCD.setColor(255, 0, 255);
myGLCD.setFont(hallfetica_normal);
myGLCD.print("Pressure", 20,94);
myGLCD.setColor(0, 255, 255);
myGLCD.setFont(hallfetica_normal);
myGLCD.print("Home temp", 235, 5);
myGLCD.setColor(0, 255, 255);
myGLCD.setFont(hallfetica_normal);
myGLCD.print("o", 365,20);
myGLCD.setColor(0, 255, 255);
myGLCD.setFont(hallfetica_normal);
myGLCD.print("C", 380,30);
myGLCD.setColor(0, 255, 255);
myGLCD.setFont(hallfetica_normal);
myGLCD.print("%", 370,110);
myGLCD.setColor(0, 255, 255);
myGLCD.setFont(hallfetica_normal);
myGLCD.print("Humidity", 235,94);
myGLCD.setColor(255, 0, 255);
myGLCD.setFont(hallfetica_normal);
myGLCD.print("o", 180,20);
myGLCD.setColor(255, 0, 255);
myGLCD.setFont(hallfetica_normal);
myGLCD.print("C", 195,30);
}
void loop()
{
delay(2000); //задержка между считыванием датчика в миллисекундах
int h = dht.readHumidity(); // чтение датчика на пине 2
int t = dht.readTemperature(); // чтение датчика на пине 2
//float h = dht.readHumidity(); // чтение датчика на пине 2
// float t = dht.readTemperature(); // чтение датчика на пине 2
if (isnan(h) || isnan(t)) //если что-то не удалось считать, выводится сообщение
{
Serial.println(F("Failed to read from DHT sensor!"));
return;
}
Serial.print(F("Humidity: ")); //выводим данные на комп (смотрим монитор порта)
Serial.print(h);
Serial.print(F("% Temperature: "));
Serial.println(t);
{
myGLCD.setColor(255, 0, 255); //выводим данные на дисплей
myGLCD.setFont(Various_Symbols_16x32);
myGLCD.print(h, 235,141);
}
{
myGLCD.setColor(255, 0, 255);
myGLCD.setFont(GroteskBold16x32);
myGLCD.print(t,235,50);
}
}
но что-то наверное накосячил. На дисплее в окошках температура и влажность выводятся какие-то иероглифы, в мониторе порта все нормально. Когда в мониторе меняется влажность, в окошке тоже меняется иероглиф. Подскажите, что я сделал не так (или все не так?)