0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何使用Arduino和LDR传感器实现LCD液晶屏亮度的自动调节

科技观察员 来源:八色木 作者:八色木 2022-04-11 17:10 次阅读

本文将介绍如何使用Arduino和LDR传感器实现LCD液晶屏亮度的自动调节。这是一个简单的Arduino项目,项目主要由三大部分组成:传感器,Arduino控制板和LCD模块。基本原理是:Arduino通过LDR传感器读取环境光强度,并将室内温度和湿度显示在LCD上,同时在光线不足时实现液晶屏幕亮度的自动调整。

智能亮度控制电路

poYBAGJT8HOAG9SvAAHvigbHNnI471.png

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液晶屏接口定义

pYYBAGJT8HuAPPMcAAWQSjUJvAw350.png

程序代码部分

#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.setCursor(0,0);

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
    lcd
    +关注

    关注

    34

    文章

    4276

    浏览量

    164050
  • Arduino
    +关注

    关注

    184

    文章

    6427

    浏览量

    184822
  • LDR
    LDR
    +关注

    关注

    0

    文章

    92

    浏览量

    7437
收藏 人收藏

    评论

    相关推荐

    Arduino 驱动1602LCD液晶屏

    `Arduino 驱动1602LCD液晶屏,只需接3根线,即可实现显示。`
    发表于 05-20 14:42

    条形液晶屏和长条液晶屏亮度问题分析

    与带孔反射镜重合;另一部分光则经过反射镜上的小孔经后光孔到达V(λ)接收亮度值用指针或数字表头显示。  深圳市思迪科科技有限公司从事8.8寸条形液晶屏、工控液晶屏研发生产、销售为一
    发表于 04-02 10:52

    请问LCD液晶屏哪家好?

    ` 本帖最后由 一只耳朵怪 于 2018-6-21 17:50 编辑 LCD液晶屏哪家好?一个LCD液晶屏的好坏首先要看他的面板,因为LCD
    发表于 06-21 17:46

    请问STM32F429怎样调节TFT液晶屏对比度?

    采用STM32F429芯片,用片上自带LCD控制驱动TFT液晶屏,请问怎样实现液晶对比度(contrast)的
    发表于 09-29 10:07

    LCD液晶屏和LED液晶屏的较量

    、彩色图像及动画信息,可以播放电视、录像、VCD、DVD等彩***信号; 4、LED显示的单个元素反应速度是LCD液晶屏 的1000倍,在强光下也可以照看不误,并且适应零下40度的低温。`
    发表于 10-30 16:24

    LCD液晶屏使用注意事项

    失效。4.lcd液晶屏是玻璃制品,在移动时应避免碰撞、震动5.严禁用尖锐器件碰擦、划伤6.严禁随意拆卸lcd液晶屏,如遇故障请专业人员维修。长时间显示固定画面,会使
    发表于 12-19 08:45

    充电桩液晶屏的选型

    1、高亮度而高亮液晶显示屏亮度可以达到700cd/㎡以上。根据环境亮度自动调节以显示
    发表于 04-13 08:30

    高亮LCD液晶屏应如何选择?

    `一般高亮的均匀度可分为以下3个等级:均匀度达到65%-75%,均匀度达到75%-85%及均匀度可达到90%-95%以上。当然做的好的价格也会比较高。二、LCD高亮液晶屏亮度温度是
    发表于 04-22 08:57

    选择LCD液晶屏的基本要素?

    ` 二:亮度亮度的单位是cd/m²,液晶屏亮度越高,显示出来的图像越清晰亮丽,不会出现模糊不清的现象。因此,我们在选型液晶屏时要注意它的
    发表于 07-03 08:36

    LCD液晶屏与OLED液晶屏的区别

    `首先要了解什么是LCD液晶屏,什么是OLED,只有知道了他们的发光原理和特点,才能知道lcd和oled的优劣区别一、发光原理不一样而OLED则是自发光,不需要
    发表于 09-14 09:05

    Arduino开发板使用DHT11温湿度传感器的方法 精选资料分享

    ,并将其值显示在LCD上。所需的组件● Arduino UNO开发板● 1602液晶屏● DHT11 / DHT22温湿度传感器● 面包板● 连接导线将DHT11温湿度
    发表于 07-13 09:35

    Arduino开发板使用DHT11温湿度传感器的方法 精选资料分享

    ,并将其值显示在LCD上。所需的组件● Arduino UNO开发板● 1602液晶屏● DHT11 / DHT22温湿度传感器● 面包板● 连接导线将DHT11温湿度
    发表于 07-13 06:58

    如何利用DS18B20温度传感器LCD液晶屏测量和显示参数

    利用DS18B20温度传感器LCD液晶屏测量和显示参数,程序结合按键、EEPROM,实现功能。要求:按K1时显示即时温度;按K2时保存当前温度;按K3时显示最高温度;按K4时显示最近
    发表于 01-10 07:16

    基于光照传感器TSL2550的LCD亮度自动调节系统设计

    针对应用于大多数电子产品上的LCD亮度自动调节的需要,本文提出一种基于TSL2550实现LCD
    发表于 08-30 15:55 54次下载

    高亮LCD液晶屏应如何选择?

    LCD液晶屏被广泛的应用在各行各业,生活中、工作中随处可见。不同的环境和场合所用的液晶屏参数都有所不同。比如在户外我们所用的LCD液晶显示屏
    发表于 04-22 09:01 1983次阅读