Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ATmega AVR
Войти
Регистрация
Восстановить пароль
Другие темы раздела
ATmega AVR Вывод строк в LCD1602 (ATMEGA328, AVR STUDIO 6.2) Народ в си пишу недавно, если что сильно не ругайте. ситуация такая, отлаживаю в протеусе схемку с подключенным дисплеем 1602 (в протеусе LM016) не могу записать символы во вторую строку в... https://www.cyberforum.ru/ avr/ thread1386890.html ATmega AVR TFT дисплей и ATMega8
Никак не могу заставить работать TFT дисплей ST7735, интерфейс SPI. Вроде делаю все как описано тут: http://we.easyelectronics.ru/lcd_gfx/podklyuchenie-tft-displeya-k-avr.html Дисплей никак не...
ATmega AVR Использование выводов внутрисхемной прошивки https://www.cyberforum.ru/ avr/ thread1382839.html
Добрый день. Как использовать 3 выводв для внутрисхемной прошивки МК при сохранении возможности внутрисхемной прошивки? Например кнопки на эти выводы повесить. Заранее спасибо большое
ATmega AVR Отличие USBisp от USBasp программатора https://www.cyberforum.ru/ avr/ thread1381857.html
Ребята, объясните, в чем отличие, какой лучше взять AVR USBasp или USBisp ?
ATmega AVR Char to binary
Нужно заданный символ переобразовать в массив int... На выходе должно получится что-то подобное: int H = CharToBinary('C'); // H = 0, 1, 0, 0, 0, 0, 1, 1 int J = CharToBinary('b'); // J = 0, 1,...
ATmega AVR 16MHz без внешнего резонатора на ATtiny85 https://www.cyberforum.ru/ avr/ thread1380545.html
Видел где-то скрипт выставляющий на контроллере 16MHz без задействования фьюзов и ног для резонатора... Не подскажет ли кто где такой найти? Или какой другой способ...
ATmega AVR Эмуляция двухканального стабилизированного диммера в Proteus (Atmega16) https://www.cyberforum.ru/ avr/ thread1380277.html
Здравствуйте! помогите запустить программу на протеусе. вот ссылка на само изобретение http://eldigi.ru/articles/dvuxkanalnyi_stabilizirovannyi_dimmer_s_podrobneishim_opisaniem. в программирований...
ATmega AVR Алгоритм случайным образом перестает входить в цикл (Atmega16)
#include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> void desh_1(unsigned int number1, unsigned int number2) { PORTA=PORTA|0b10000000; PORTA=PORTA&0b10001111;...
ATmega AVR Система прерываний ATmega16 https://www.cyberforum.ru/ avr/ thread1379683.html
Задание: Настроить переход с фиксированных векторов прерываний на обработчики прерываний. Написать обработчики прерываний Инициализировать источники прерываний, путем записи определенных...
ATmega AVR Attiny 84 пины пронумерованы иначе Здравствуйте, возникла такая проблема Attiny 84 пины прономерованы иначе не как в Datasheet. В качестве программатора использую Arduino mega. Библиотека Bootloader ... https://www.cyberforum.ru/ avr/ thread1379514.html
ATmega AVR Прошивка ATmega8A AU в корпусе TQFP
Добрый вечер уважаемые. Возникла необходимость миниатюризации очередного проекта, решил перейти на smd... взял контроллер atmega8 в корпусе tqfp и возник вопрос: а как в него залить бутлоадер и после...
ATmega AVR Минимальные значения АЦП (Atmega8) https://www.cyberforum.ru/ avr/ thread1377339.html
Вобщем в поставленной задаче есть строчка,... показывать минимальное значение результата преобразования АЦП ... Результаты преобразования идут в ADCH и ADCL,ну допустим будем считывать с ADCH и...
10218 / 6598 / 495
Регистрация: 28.12.2010
Сообщений: 21,161
Записей в блоге: 1
03.03.2015, 19:39 0

Чтение датчика температуры и влажности DHT-11 (ATMega16) - ATmega AVR - Ответ 7295386

03.03.2015, 19:39. Показов 4485. Ответов 2
Метки (Все метки)

Ответ

- схему приложить в явном виде.
- программу приложить в явном виде.

30-
30 c минусом? 30 градусов? Диапазон измерения температуры данного датчика 0...+50°С с точностью ±2°С.

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
//
//    FILE: dht11.cpp
// VERSION: 0.4.1
// PURPOSE: DHT11 Temperature & Humidity Sensor library for Arduino
// LICENSE: GPL v3 ([url]http://www.gnu.org/licenses/gpl.html[/url])
//
// DATASHEET: [url]http://www.micro4you.com/files/sensor/DHT11.pdf[/url]
//
// HISTORY:
// George Hadjikyriacou - Original version (??)
// Mod by SimKard - Version 0.2 (24/11/2010)
// Mod by Rob Tillaart - Version 0.3 (28/03/2011)
// + added comments
// + removed all non DHT11 specific code
// + added references
// Mod by Rob Tillaart - Version 0.4 (17/03/2012)
// + added 1.0 support
// Mod by Rob Tillaart - Version 0.4.1 (19/05/2012)
// + added error codes
//
 
#include "dht11.h"
 
// Return values:
// DHTLIB_OK
// DHTLIB_ERROR_CHECKSUM
// DHTLIB_ERROR_TIMEOUT
int dht11::read(int pin)
{
        // BUFFER TO RECEIVE
        uint8_t bits[5];
        uint8_t cnt = 7;
        uint8_t idx = 0;
 
        // EMPTY BUFFER
        for (int i=0; i< 5; i++) bits[i] = 0;
 
        // REQUEST SAMPLE
        pinMode(pin, OUTPUT);
        digitalWrite(pin, LOW);
        delay(18);
        digitalWrite(pin, HIGH);
        delayMicroseconds(40);
        pinMode(pin, INPUT);
 
        // ACKNOWLEDGE or TIMEOUT
        unsigned int loopCnt = 10000;
        while(digitalRead(pin) == LOW)
                if (loopCnt-- == 0) return DHTLIB_ERROR_TIMEOUT;
 
        loopCnt = 10000;
        while(digitalRead(pin) == HIGH)
                if (loopCnt-- == 0) return DHTLIB_ERROR_TIMEOUT;
 
        // READ OUTPUT - 40 BITS => 5 BYTES or TIMEOUT
        for (int i=0; i<40; i++)
        {
                loopCnt = 10000;
                while(digitalRead(pin) == LOW)
                        if (loopCnt-- == 0) return DHTLIB_ERROR_TIMEOUT;
 
                unsigned long t = micros();
 
                loopCnt = 10000;
                while(digitalRead(pin) == HIGH)
                        if (loopCnt-- == 0) return DHTLIB_ERROR_TIMEOUT;
 
                if ((micros() - t) > 40) bits[idx] |= (1 << cnt);
                if (cnt == 0)   // next byte?
                {
                        cnt = 7;    // restart at MSB
                        idx++;      // next byte!
                }
                else cnt--;
        }
 
        // WRITE TO RIGHT VARS
        // as bits[1] and bits[3] are allways zero they are omitted in formulas.
        humidity    = bits[0]; 
        temperature = bits[2]; 
 
        uint8_t sum = bits[0] + bits[2];  
 
        if (bits[4] != sum) return DHTLIB_ERROR_CHECKSUM;
        return DHTLIB_OK;
}
//
// END OF FILE


Вернуться к обсуждению:
Чтение датчика температуры и влажности DHT-11 (ATMega16) ATmega AVR
Вложения
Тип файла: zip dht11.zip (2.6 Кб, 38 просмотров)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.03.2015, 19:39
Готовые ответы и решения:

Алгоритм работы датчика температуры и влажности DHT11
Здравствуйте! Решил поделиться алгоритмом работы датчика DHT11. Может быть кому-нибудь пригодится....

PIC16F690. Чтение датчика температуры и влажности DHT-11
pic16f690 не читает DHT11 проблема следующего характера... есть библиотека DHT11 нормально...

ИОН для датчика влажности
есть HIH-4010, нужно как-то запитать и его, и опору для АЦП меги. питаться всё будет от USB (т.е....

Передача данных с датчика влажности в Интернет/Интранет
НЕ АРДУИНО. Есть датчик влажности и микроконтроллер, я хочу чтобы данные с датчика передавались на...

2
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.03.2015, 19:39

Orange pi считывание датчиков температуры, влажности
Orange pi считывание датчиков температуры, влажности и так далее Есть orange pi можно ли...

BME280 сенсор давления температуры и влажности
Всем привет. Имею такую проблему с BME280 Все делаю по даташит. Температуру измеряет, а давление...

Датчики температуры, влажности и дыма в загородном доме
Всем доброго времени суток. Уже довольно давно хотел приступить к этой тематике и вот настало...

Датчик температуры и влажности CJMCU-1080 HDC1080 на ATtiny85
Всем привет. Решил сделать небольшую домашнюю метеостанцию. Есть приемник с экраном, куда...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru