它是一片16*2的LCD + 6個Button , Button 主要是靠A0在接收,
每個Button 按下會收到不同的數值,本篇暫且不會用到。
基本上這片LCD KEYPad Shield是可以直接疊在Arduino上的,
只是它沒有上層的接口,所以它必須是最頂層了,上圖中我一共
疊了Arduino UNO + Wi-Fi Shield + LCD Pad Shield 。
注意一下,這一款模組很多人做,可是我看了網路上幾篇,3支接角拉出來的順序
有不太一樣,注意一下,像是 (- )應該是GND沒錯,S是DATA,可是VCC就沒有標了
請不要直接套用小弟的順序,看一下模組的說明書。
在本篇中,DATA要接到Arduino 的Pin2
DHT11 讀取的程式,請參考這一篇 ,只需要動手改一下,把
#define DHTTYPE DHT22 --》 #define DHTTYPE DHT11
LCD
LCD的資料接腳( 必須程式中定義)
LCD Arduino
RS 8
ENABLE 9
D4 4
D5 6
16 *2 表示一行可以顯示16個英文字母,共2行32個。
如果你需要顯示中文,可能需要找支援"繁體"中文的LCD。
一片可能要4~500塊。(參考資料中的連結有 )
一般常見的Arduino LCD模組是1602 ,這塊shield也是,只是多搭配了BUTTON
控制LCD主要還是透過 LiquidCrystal Library , Arduino IDE有內建,不必額外下載
程式碼
執行結果
參考資料
DHT11 讀取的程式,請參考這一篇 ,只需要動手改一下,把
#define DHTTYPE DHT22 --》 #define DHTTYPE DHT11
LCD的資料接腳( 必須程式中定義)
LCD Arduino
RS 8
ENABLE 9
D4 4
D5 6
16 *2 表示一行可以顯示16個英文字母,共2行32個。
如果你需要顯示中文,可能需要找支援"繁體"中文的LCD。
一片可能要4~500塊。(參考資料中的連結有 )
一般常見的Arduino LCD模組是1602 ,這塊shield也是,只是多搭配了BUTTON
控制LCD主要還是透過 LiquidCrystal Library , Arduino IDE有內建,不必額外下載
#include "DHT.h" //LCD Lib #include <LiquidCrystal.h> #define DHTPIN 2 // what digital pin we're connected to #define DHTTYPE DHT11 // DHT 11 // as the current DHT reading algorithm adjusts itself to work on faster procs. DHT dht(DHTPIN, DHTTYPE); //LCD Pin LiquidCrystal lcd(8, 9, 4, 5, 6, 7); void setup() { //init Serial Port Serial.begin(9600); Serial.println("DHTxx test!"); //init dht11 dht.begin(); //set LCD type 16 * 2 lcd.begin(16, 2); //LCD Show init Text lcd.print("DHT11 LCD DEMO"); } void loop() { // Wait a few seconds between measurements. delay(2000); // Reading temperature or humidity takes about 250 milliseconds! // Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor) float h = dht.readHumidity(); // Read temperature as Celsius (the default) float t = dht.readTemperature(); // Read temperature as Fahrenheit (isFahrenheit = true) float f = dht.readTemperature(true); // Check if any reads failed and exit early (to try again). if (isnan(h) || isnan(t) || isnan(f)) { Serial.println("Failed to read from DHT sensor!"); return; } // Compute heat index in Fahrenheit (the default) float hif = dht.computeHeatIndex(f, h); // Compute heat index in Celsius (isFahreheit = false) float hic = dht.computeHeatIndex(t, h, false); //Serial Port print Data Serial.print("Humidity: "); Serial.print(h); Serial.print(" %\t"); Serial.print("Temperature: "); Serial.print(t); Serial.print(" *C "); Serial.print(f); Serial.print(" *F\t"); Serial.print("Heat index: "); Serial.print(hic); Serial.print(" *C "); Serial.print(hif); Serial.println(" *F"); //LCD SHow Data lcd.clear(); //Line 0 lcd.setCursor(0, 0); lcd.print("Humidity:"); lcd.print(h); lcd.print("%"); //line 1 lcd.setCursor(0, 1); lcd.print("Temp:"); lcd.print(t); lcd.print(" *C"); }
LiquidCrystal Library
https://www.arduino.cc/en/Reference/LiquidCrystal
Arduino 上面使用 Hitachi HD44780U 1602 LCD 點陣液晶模組
http://blog.gtwang.org/iot/ywrobot-arduino-lcm-1602-iic-v1-lcd-display/
http://blog.gtwang.org/iot/ywrobot-arduino-lcm-1602-iic-v1-lcd-display/
沒有留言:
張貼留言