Обновить DHT_22.h

This commit is contained in:
Артём Новиков 2024-03-17 17:25:58 +00:00
parent c50aca8850
commit e2826e38ed

View File

@ -1,56 +1,20 @@
#ifndef DHT_H
#define DHT_H
// Определения портов и битов
#define DHT_PORT PORTB
#define DHT_DDR DDRB
#define DHT_PIN PINB
#define DHT_BIT 0
// Функция чтения данных с DHT
unsigned int dht_check()
{
if ( dht_check_act )
{
dht_check_act = false;
//-----[ 01. Старт, выжидание 18мс ]-----
if ( interrupt_flag == 1)
{
// Запускаем таймер на 18 мс посылка start на dht
Serial.print("Start DHT -> ");
bool dht_check(void);
float dht_temperature();
float dht_humidity();
DHT_DDR |= (1 << DHT_BIT); // Пин как выход
DHT_PORT &= ~(1 << DHT_BIT); // Выход ноль
TCNT1 = 0;
OCR1A = 288;
TCCR1A = 0b00000000;
TIMSK1 = 0b00000010;
TCCR1B = 0b00000101;
}
void T1_CAPT();
void T0_CA();
void T1_CA();
if ( interrupt_flag == 2)
{
DHT_PORT |= (1 << DHT_BIT);
DHT_DDR &= ~(1 << DHT_BIT);
dht_save_time_id = 0;
TCNT1 = 0;
OCR1A = 10000;
TCCR1A = 0b00000000;
TCCR1B = 0b10000001;
TIFR1 = 0b00000000;
TIMSK1 = 0b00100010;
dPos = 7;
dNum = 0;
dht_last_state = false;
}
// Вычисляем температуру и влажность
if ( dht_done )
{
dht_done = false;
temperature = (data[3] * 0.1) + ((data[2] & 0b01111111) * 25.6);
if (data[2] & 0b10000000) temperature *= -1;
humidity = (data[1] * 0.1) + (data[0] * 25.6);
// Выводим данные на UART
Serial.print(humidity);
Serial.print("% ");
Serial.print(temperature);
Serial.println("C");
}
}
}
#endif /*DHT_22_H*/