16 Arduino LCD に温度を表示
この記事では、Arduino に、DHT11温度湿度センサーを接続し16x2文字のLCD表示器に、温度と湿度を表示します。
今までに実施してきた
[15] Arduino 16 x 2 文字の LCD を接続 を組み合わせたプログラムになります。
前回のハードウエアに、DHT11温度湿度センサーを追加で接続します。
* LCD DATA --> digital pin 2
* LCD VDD --> 5V
* LCD VSS --> GND
スケッチ内容
LCDが接続されているピンを指定して LCDインスタンスを作成します。
さらにLCDのタイプ(16x2)を指定し、センサーピンを設定すると準備完了です。
次は、温度湿度センサーから情報を読み出し、print命令でLCDに表示します。
今まで実施したスケッチのコピペで完成します。
// LCD に温度を表示 // 2021-6-10 #include <LiquidCrystal.h> int DHT_PIN = 2; // DHT11 接続ピン // BS E D4 D5 D6 D7 LiquidCrystal lcd(7, 8, 9, 10, 11, 12); void setup() { lcd.begin(16, 2); pinMode(DHT_PIN,INPUT_PULLUP); } void loop() { // DHTモジュールによる温度測定 int data[5]; // 読み込みデータを保管 // DHT_PIN ピンに Start信号を送る pinMode(DHT_PIN, OUTPUT); digitalWrite(DHT_PIN,LOW); delay(20); pinMode(DHT_PIN,INPUT_PULLUP); // Response信号の空読み pulseIn(DHT_PIN, HIGH, 300); // Byte x 5 計40Bites を読み込む for(int dataIdx=0;dataIdx<5;dataIdx++){ data[dataIdx] = 0; for(int bitIdx=0;bitIdx<8;bitIdx++){ data[dataIdx] <<= 1; // HIGH が 50ms を越えれば「1」 if(pulseIn(DHT_PIN, HIGH, 300) > 50) data[dataIdx] += 1; } } // DHT11 からの温度データを表示 lcd.setCursor(0, 0); lcd.print("DHT Temp C "); lcd.setCursor(9, 0); lcd.print(data[2]); // DHT11 からの湿度データを表示 lcd.setCursor(0, 1); lcd.print(" Humi % "); lcd.setCursor(9, 1); lcd.print(data[0]); delay(2000); }
動作の確認
スケッチを Arduino に書き込みプログラムがスタートすると、
LCD上に温度と湿度が表示されます。
次回は、デジタルICを追加して、デジタル出力ポートの増設をします。