Измерение температуры и влажности воздуха (DHT11)
- Войдите на сайт для отправки комментариев
Пнд, 27/11/2017 - 12:11
Приветствую всех!
Я на данный момент работаю над проектом "термометра"
Изначально я планировал сделать его безпроводным, но пока до этого не дошло, я пытаюсь всячески его улучшить. Сделать особенным.
Буду скидывать сюда свои наработки. Заранее благодарен тем кто будет хоть чемто помогать!
Сейчас стоит проблема с выводом напряжения 5V на аналоговый пин ардуины.
В проекте использую PRO Mini 5v, LCD 1602A, DHT11
Список возможно будет пополнятся.
Пинов на PRO Mini мало и приходится либо экономить, либо использовать аналоговые пины.
Сейчас осталось всего 4 свободных цифровых и их я планирую выделить на клавиатуру.
Код на момент загрузки поста:
/* LiquidCrystal Library - Hello World Demonstrates the use a 16x2 LCD display. The LiquidCrystal library works with all LCD displays that are compatible with the Hitachi HD44780 driver. There are many of them out there, and you can usually tell them by the 16-pin interface. This sketch prints "Hello World!" to the LCD and shows the time. The circuit: * LCD RS pin to digital pin 7 * LCD Enable pin to digital pin 6 * LCD D4 pin to digital pin 5 * LCD D5 pin to digital pin 4 * LCD D6 pin to digital pin 8 * LCD D7 pin to digital pin 2 * LCD R/W pin to ground * LCD VSS pin to ground * LCD VCC pin to 5V * 10K resistor: * ends to +5V and ground * wiper to LCD VO pin (pin 3) */ // include the library code: #include <LiquidCrystal.h> #include "DHT.h" #define DHTPIN 12 // initialize the library by associating any needed LCD interface pin // with the arduino pin number it is connected to const int rs = 7, en = 6, d4 = 5, d5 = 4, d6 = 8, d7 = 2; LiquidCrystal lcd(rs, en, d4, d5, d6, d7); DHT dht(DHTPIN, DHT11); void setup() { lcd.begin(16, 2); lcd.print("Loading..."); dht.begin(); } void loop() { delay(2000); float h = dht.readHumidity(); float t = dht.readTemperature(); lcd.clear(); lcd.setCursor(0, 0); lcd.print("C:"); lcd.setCursor(0, 1); lcd.print("H2O:"); lcd.setCursor(3, 0); lcd.print(t); lcd.setCursor(5, 1); lcd.print(h); }
Сейчас стоит проблема с выводом напряжения 5V на аналоговый пин ардуины.
Здесь ему решение этой проблемы уже объяснили: http://arduino.ru/forum/programmirovanie/vyvod-5v-na-analogovyi-pin
Ох, не с тех бубей ты зашёл на этом форуме.
Появилась проблема с KeyPad
По непонятной причине она говорит что нажата кнопка "1", даже когда к Arduino вообще ничего не подключено.
Вот скетч
Использую KeyPad 4*4, но из за нехватки пинов пришлось использовать только сетку 3*3
Пинов на PRO Mini мало и приходится либо экономить, либо использовать аналоговые пины.
Сейчас осталось всего 4 свободных цифровых и их я планирую выделить на клавиатуру.
Слюшай, вот жалуешься на недостаток пинов. Есть чудесная, дешевая, мелкосхема PCF8574. Два ее корпуса займут два пина (A4, A5) и позволят подключить и дисплей и клавиатуру. На те же пины можешь добавить часы, барометр и еще много всякой х-ни. Гуглить: "шина I2C". ИМХО.
Та, кстати, а зачем на термометре 16 клавиш?
Спасибо за информацию.
По поводу клавиш:
Помимо термометра хочу добавить еще пару режимов для удобства, но монитор не резиновый...
на свете есть клава на 12 клавиш, использующая всего 1 аналоговый пин
https://ru.aliexpress.com/item/Button-Keypad-3x4-module/32530917534.html
И на 16 есть. Там же
Вариант подключения матричной клавиатуры через PCF8574
http://arduino.ru/forum/programmirovanie/podklyuchenie-matrichnoi-klavia...
Её же через один аналоговый вход
http://arduino.ru/forum/programmirovanie/podklyuchenie-membrannoi-klavia...