Нужна помощь!!! LCD5110 и DHT11... UNO

NoNam
Offline
Зарегистрирован: 10.06.2017

Парнт помогите! 2дня голову ломаю) по тем видеоурокам и статьям, которые нашел,-не получается вывести показания на дисплей! Везде библиотеки устаревшие!(наверное))) UNO+DHT11+5110lcd

#include <DHT.h> // библиотека датчика
#include <LCD5110_Basic.h> // подключаем библиотеку
#define DHTPIN 2

LCD5110 myGLCD(7,6,5,4,3); // объявляем номера пинов LCD
DHT dht(DHTPIN, DHT11);

extern uint8_t SmallFont[]; // малый шрифт (из библиотеки)
extern uint8_t MediumNumbers[]; // средний шрифт для цифр (из библиотеки)


void setup() {
  dht. begin();
  myGLCD.InitLCD(); // инициализация LCD дисплея
}

void loop() {
  delay (1000);
  float h = dht.readHumidity();
  float t = dht.readTemperature();
  myGLCD.clrScr(); // очистка экрана
  myGLCD.setFont(SmallFont); // задаём размер шрифта
  myGLCD.printNumF( t, LEFT, 0); // выводим на строке 0, равнение по левому краю  
  myGLCD.printNumF( h, CENTER, 16); // выводим в строке 16
  delay (1000); // задержка 1 сек
}

 

NoNam
Offline
Зарегистрирован: 10.06.2017

23.03 не обращайте внимания, строку удалил!

GarryC
Offline
Зарегистрирован: 08.08.2016

На картинке то, что Вам выводится на экран?

Вас смущает значение температуры в 264 градуса или дата внизу экрана?

NoNam
Offline
Зарегистрирован: 10.06.2017

На фото то, что выводин на экран! я так понимаю, что значения не переводятся в проценты и градуся, здесь что то не то))) а дата, на это не обращайте внимания! тестировал

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

NoNam пишет:

 а дата, на это не обращайте внимания! тестировал

Т.е. Вы показываете нам один скетч, а экран от другого? И предлагаете не обращать внимания? Вы издеваетесь? Давайте-ка Вы выложите скетч и ЕГО экран, в точности как есть.

Иначе, наиболее разумное для нас поведение - не обращать внимания на Ваш вопрос.

NoNam
Offline
Зарегистрирован: 10.06.2017

Ок сори! вот 25 строка кода, которая печатает дату! Извеняюсь, целиком код не могу выложить, случайно снес( 

  myGLCD.setFont(MediumNumbers); // задаём размер шрифта
  myGLCD.print("23.03", CENTER, 34); // выводим в строке 34

не получается вывести переменные! 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Вот Ваша строка:

NoNam пишет:

  myGLCD.printNumF( t, LEFT, 0); // выводим на строке 0, равнение по левому краю  

А вот описание функции printNumF из библиотеки, которую я нашёл.

void	printNumF(double num, byte dec, int x, int y, char divider='.', int length=0, char filler=' ');

Сравните. Вас ничего не смущает?

У Вас второй параметр - координата по x, а в на самом деле координата-  третий параметр, а второй - количество знаков после запятой!

Но, если бы у Вас была такая библиотека, Ваш скетч бы не компилировался. Значит, у Вас другая. Давайте ссылку на библиотеку.

NoNam
Offline
Зарегистрирован: 10.06.2017

Блин Дружище, спасибо большое) учел твое замечание, функция была не та) Рабочий код:

#include <DHT.h> // библиотека датчика
#include <LCD5110_Basic.h> // подключаем библиотеку
#define DHTPIN 2

LCD5110 myGLCD(7,6,5,4,3); // объявляем номера пинов LCD
DHT dht(DHTPIN, DHT11);

extern uint8_t SmallFont[]; // малый шрифт (из библиотеки)
extern uint8_t MediumNumbers[]; // средний шрифт для цифр (из библиотеки)


void setup() {
  dht. begin();
  myGLCD.InitLCD(); // инициализация LCD дисплея
}

void loop() {
  delay (1000);
  float h = dht.readHumidity();
  float t = dht.readTemperature();
  myGLCD.clrScr(); // очистка экрана
  myGLCD.setFont(SmallFont); // задаём размер шрифта
  myGLCD.printNumI( t, LEFT, 0); // выводим на строке 0, равнение по левому краю  
  myGLCD.printNumI( h, CENTER, 16); // выводим в строке 16
  delay (1000); // задержка 1 сек
}

Теперь буду реле подключать! 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Нет, это какая-то дичь. У printNumI первый параметр long, а Вы ему float пихаете. Тут что-то не так.

NoNam
Offline
Зарегистрирован: 10.06.2017

Ну работает, что сказать! Вроде printNumI работает с переменными,целыми числами! Вот фото

b707
Offline
Зарегистрирован: 26.05.2017

Евгений, ну нет смысла с ним возиться. Он же не понял ни слова из того, что вы ему писали. Тупость редкостная....

NoNam
Offline
Зарегистрирован: 10.06.2017

Конечно я не все понимаю, я только пробую! Буду рад если обьясните...для этого форум и есть. 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

b707 пишет:

нет смысла

Сегодня праздник - день святого Нуба.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

NoNam пишет:

Ну работает, что сказать! 

Так хреново ж работает. Долей градуса не показывает и даже если температура будет 23,999 - всё равно покажет 23, а не 24.

NoNam
Offline
Зарегистрирован: 10.06.2017

ЕвгенийП пишет:

NoNam пишет:

Ну работает, что сказать! 

Так хреново ж работает. Долей градуса не показывает и даже если температура будет 23,999 - всё равно покажет 23, а не 24.

так библиотека DHT, и в примерах работы датчика измеряет целыми числами(градусами)! и в функции Serial.print в манитор порта целые числа уходят! По этому так и отображает! 

Поможешь реле на температуру написать? Пытался совместить два рабочих скетча, не хрена не выходит... 

на счет нуба, я на гуру не претиндую, просто прошу советов, указания ошибок! 

b707
Offline
Зарегистрирован: 26.05.2017

NoNam пишет:

так библиотека DHT, и в примерах работы датчика измеряет целыми числами(градусами)! и в функции Serial.print в манитор порта целые числа уходят! По этому так и отображает! 

она так отображает, потому что вывод на экран у тебя с ошибками написан. Вставь туда температуру хоть с точностью до тысячных - все равно целыми будет отображать.

 

NoNam
Offline
Зарегистрирован: 10.06.2017

Покажи как правильно, если не сложно!

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

NoNam пишет:

Покажи как правильно, если не сложно!

Вы вообще-то посты читаете? Или мы их в пустоту пишем? Мы не можем Вам показать как правильно, по очень просто причине. Причину, и что нам надо, чтобы показать, я Вам уже писал в посте #6