本文将介绍如何使用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文章
4416浏览量
167221 -
Arduino
+关注
关注
187文章
6465浏览量
186729 -
LDR
+关注
关注
0文章
99浏览量
7571
发布评论请先 登录
相关推荐
评论