Моргает дисплей 4-Bit LED Digital при выводе температуры от DHT11

viktorflam
Offline
Зарегистрирован: 09.09.2016

Всем привет!

Соорудил маленький термометр из DHT11, arduino pro mini и четырехсимвольного семисегментного дисплея на контроллере tm74hc595. У дисплея вторая цифра температу ры моргает с частотой 1 раз в 2 секунды. В чем может быть проблема?

#include "DHT.h"
#define DHTPIN 2
//-----------дисплей-----------
#include <TM74HC595Display.h>
int SCLK = 7;
int RCLK = 6;
int DIO = 5;
TM74HC595Display disp(SCLK, RCLK, DIO);
unsigned char LED_0F[29];
//--------дисплей-------
//---Выбираем тип датчика---
#define DHTTYPE DHT11   // DHT 11
//#define DHTTYPE DHT22   // DHT 22  (AM2302), AM2321
//#define DHTTYPE DHT21   // DHT 21 (AM2301)

DHT dht(DHTPIN, DHTTYPE);
void setup() {
  dht.begin();
//---Цифры для дисплея---
  LED_0F[0] = 0xC0; //0
  LED_0F[1] = 0xF9; //1
  LED_0F[2] = 0xA4; //2
  LED_0F[3] = 0xB0; //3
  LED_0F[4] = 0x99; //4
  LED_0F[5] = 0x92; //5
  LED_0F[6] = 0x82; //6
  LED_0F[7] = 0xF8; //7
  LED_0F[8] = 0x80; //8
  LED_0F[9] = 0x90; //9
}
void loop() {
  float t = dht.readTemperature();
  disp.digit4(t); //вывод на дисплей
}

Вот схема:

Araris
Offline
Зарегистрирован: 09.11.2012

Поставьте после 33-й строки delay(2000); - DHT11 не рекомендуется опрашивать чаще раза в секунду.

viktorflam
Offline
Зарегистрирован: 09.09.2016

Не помогает(

Поставил, теперь 1 раз в 2 секунды на долю секунды загорается второй символ и гаснет... при этом первый символ горит постоянно

Araris
Offline
Зарегистрирован: 09.11.2012

Попробуйте разные варианты вызова disp.digit4(), их можно найти в https://github.com/kostarev/TM74HC595-4dig-display/blob/master/TM74HC595Display.h

Опять же, с https://github.com/kostarev/TM74HC595-4dig-display/blob/master/examples/TM74HC595Display/TM74HC595Display.ino можно поэкспериментировать.

Обратите внимание, отображаемая переменная у Вас имеет тип float, а библиотечная функция работает с параметром типа int.