本文將介紹如何使用Arduino和LDR傳感器實現LCD液晶屏亮度的自動調節。這是一個簡單的Arduino項目,項目主要由三大部分組成:傳感器,Arduino控制板和LCD模塊。基本原理是:Arduino通過LDR傳感器讀取環境光強度,并將室內溫度和濕度顯示在LCD上,同時在光線不足時實現液晶屏幕亮度的自動調整。
LDR和DHT11(傳感器部分)
為了能夠檢測到光強度,這里選用了LDR光強度傳感器。LDR(光敏電阻)是一種特殊的電阻,當檢測到有高強度的光照時,它呈低阻狀態;反之,它呈現高阻狀態。擴展閱讀: Arduino的光強度檢測 。LDR的電阻值與它探測到的光強度成反比,所以當環境中有足夠的光線時,LDR的電阻值就會很低,經過LDR的電壓降也就很低。本項目中,我們將通過LDR降低的電壓作為輸入,輸入到arduino板的模擬輸入針腳 A4。
項目中的溫度和濕度是通過DHT-11模塊獲取的。DHT11是一個常見的、低成本的數字溫濕度傳感器。擴展閱讀: 如何基于Arduino制作DHT22控制的風扇。DHT11內置了電容式濕度傳感器和熱敏電阻來測量周圍的空氣,并通過 data 引腳上發出數字信號。Arduino為它提供了一個專用庫,這使我們從DHT11模塊獲取數據變得相對容易。
Arduino UNO(主控部分)
Arduino UNO是Arduino家族中非常常見的產品,本項目中它將作為主控板,UNO 包含了電源,USB接口,以及Atmel芯片。采用Arduino作為主控,簡化了建立控制系統的過程,Arduino提供了完整的單片機,我們只需要編程上傳并連接功能模塊即可,而不需要去完成復雜的PCB設計。本項目中,arduino主控板是通過讀取連接到模擬輸入A4的LDR傳感器和連接到第6個數字輸入針的DHT11模塊的數據來完成控制的。Arduino模擬輸入的電壓范圍是0~5V,這個模擬范圍值,可通過 analogRead () 命令轉換為 0-1023 的數字值。
LCD Module (顯示部分)
本項目使用的是LCD 1602 液晶屏模塊,關于該模塊的接口定義可查閱: 1602 LCD液晶屏接口定義
程序代碼部分
#include
#include
#define DHT11_PIN 8
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
dht DHT;
int LDR_pin=A1;
int back_light=10;
int led=9;
int LDR_out;
int pwm_back_light;
int pwm_led;
int humidity;
int temperature;
void setup()
{
pinMode(LDR_pin,INPUT);
pinMode(back_light,OUTPUT);
pinMode(led,OUTPUT);
lcd.begin(16,2);
Serial.begin(9600);
}
void loop()
{
// READ DATA
int chk = DHT.read11(DHT11_PIN);
// DISPLAY DATA TO LCD
humidity=(DHT.humidity);
temperature=(DHT.temperature);
lcd.print("Humidity=");
lcd.print(humidity);
lcd.print("%");
lcd.setCursor(0,1);
lcd.print("Temperature=");
lcd.print(temperature);
lcd.print((char)223);
lcd.print("C");
LDR_out=analogRead(LDR_pin);
pwm_led=LDR_out/4;
pwm_back_light=255-(LDR_out/4);
Serial.println(pwm_back_light);
analogWrite(back_light,pwm_back_light);
analogWrite(led,pwm_led);
delay(1000);
}
在程序中,首先我們配置了arduino uno的A4 針作為輸入針,讀取LDR傳感器輸出。在“setup”函數中,“Serial.begin(9600);”命令將打開Arduino和串口監視器之間的通信。在“ loop”函數中,我們將從傳感器模擬針 A4讀取數據,并將這些數據存儲在“ldr_out”變量中,然后將這些值映射到0-255的范圍。然后利用這個映射值在arduino的第10引腳(連接LCD模塊led+的引腳)上生成一個pwm信號(脈沖寬度調制)輸出。從而實現LCD的背光亮度就可以隨周圍的光強度變化而變化了。
-
lcd
+關注
關注
34文章
4427瀏覽量
167739 -
Arduino
+關注
關注
188文章
6471瀏覽量
187292 -
LDR
+關注
關注
0文章
99瀏覽量
7596
發布評論請先 登錄
相關推薦
評論