之前買的arduino套裝,里面有一個LCD顯示屏,就想用它加上手頭的一些傳感器做點實用的東西,順便驗證一下顯示屏是否可用。于是想到了可以做一個溫濕度計。
實驗?zāi)康模簩貪穸葌鞲衅鞑杉臏貪穸蕊@示在LCD顯示屏上。
首先準(zhǔn)備工作:
1、 arduino主板一個
2、 面包板一塊
3、 連接線若干
4、 DHT11溫濕度傳感器1枚
5、 1602A LCD顯示屏一塊(帶背光)
6、 可變電阻一個(或1K電阻一枚,但試驗之后發(fā)現(xiàn)電阻效果不好,最好是可變電阻)
準(zhǔn)備好這些器件后,就開始進(jìn)行連線編碼了。這里有很多需要注意的問題,我所使用的LCD顯示屏排針是沒有焊接到屏幕上的,所以參考例程連線以及編碼后發(fā)現(xiàn)屏幕根本就不是預(yù)期中顯示我想讓他顯示的字符,只是顯示一排共16個小方塊,可變電阻怎么調(diào)節(jié)都沒有效果。上網(wǎng)查了很多資料也沒有搞定,連線檢查了多遍可以保證絕對沒有錯誤。于是在淘寶店家那里咨詢了一下,店長說需要把排針焊接到屏幕上才行,不然可能接觸不良。開始半信半疑,想辦法搞到錫焊焊接上之后果然OK了。如果有人遇到這種問題,可以焊接上再試試。
LCD1602引腳詳細(xì)說明:
引腳編號 | | |
| | |
| | |
| | |
| | Register Select:
1: D0 – D7 當(dāng)做資料解釋
0: D0 – D7 當(dāng)做指令解釋 |
| | Read/Write mode:
1:從 LCD 讀取資料
0: 寫資料到 LCD |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
DHT11引腳說明:
先曬一下效果圖:(屏幕排針焊反了。。導(dǎo)致不能直接插到面包板上,只好通過若干導(dǎo)線來解決,給大家提個醒,焊接一定注意好別焊反了)
接線:
· 將 LCD 的 RS, E, D4, D5, D6, D7 依序接到 12, 11, 5, 4, 3, 2 引腳上
· 將 LCD 的 Vss 及 RW 接到 GND,Vdd 接到 +5V
· 可變電阻中間引腳接到 LCD 的 Vo,剩下的兩個引腳,一支接到 5V,另外一支接到 GND
· DHT11接數(shù)字口8.
編碼:程序?qū)崿F(xiàn)上行顯示溫度,下行顯示濕度。DHT11需要庫文件,解壓后放入libraries。
代碼:
#include
#include
#define DHT11PIN 8
dht11 DHT11;
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
pinMode(DHT11PIN,OUTPUT);
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);
}
void loop() {
int chk = DHT11.read(DHT11PIN);
lcd.setCursor(0, 0);
lcd.print("Tep: ");
lcd.print((float)DHT11.temperature, 2);
lcd.print("C");
// set the cursor to column 0, line 1
// (note: line 1 is the second row, since counting begins with 0):
lcd.setCursor(0, 1);
// print the number of seconds since reset:
lcd.print("Hum: ");
lcd.print((float)DHT11.humidity, 2);
lcd.print("%");
delay(200);
}
顯示若是模糊可以調(diào)節(jié)可變電阻達(dá)到最佳效果。