本篇旨在通过控制对光敏电阻接受光线的强度变化来控制其阻值的变化进而实现LED灯的亮度变化,达到手机自动屏幕亮度的效果。
5.1 5506型光敏电阻的主要参数及其在测光电路中的接法
5.2 用万用表测量光敏电阻的阻值,观察其阻值随光线强弱的变化情况(此节的目的是理解原理)
5.3 实现亮度测量(将光敏电阻的分压值进行模数转换,并通过串口输出) (Fritzing绘制的电路图、工作原理的说明、包含完整注释的源代码)
5.4 实现手机的自动屏幕亮度效果(Fritzing绘制的电路图、工作原理的说明、包含完整注释的源代码)
光敏电阻
·光敏电阻常用的制作材料为硫化镉,另外还有硒、硫化铝、硫化铅和硫化铋等材料。这些制作材料具有在特定波长的光照射下,其阻值迅速减小的特性。
·这是由于光照产生的载流子都参与导电,在外加电场的作用下作漂移运动,电子奔向电源的正极,空穴奔向电源的负极,从而使光敏电阻器的阻值迅速下降。光敏电阻对光线十分敏感,其在无光照时,呈高阻状态,暗电阻一般可达1.5MΩ。
·工作原理是基于内光电效应。光照愈强,阻值就愈低,随着光照强度的升高,电阻值迅速降低,亮电阻值可小至1KΩ以下。
5506型光敏电阻的主要参数
·测试条件
亮电阻: 用400-600Lux光照射2小时后,在标准光源A(色温2854K)下用10Lux光测量。
暗电阻: 关闭10Lux光照后第10秒的电阻值。
最大功率损耗: 环境温度为25°C的最大功率。
最大外加电压: 在黑暗中可连续施加给元件的最大电压
灵敏度: 是指10Lux和100Lux照度下的电阻值的倍率=bg(R10/R100)
万用表测光敏电阻阻值
1、数字万用表的使用方法
将量程开关拨至Ω的合适量程,红表笔插入V/Ω孔,黑表笔插入COM孔。如果被测电阻值超出所选择量程的最大值,万用表将显示“1”,这时应选择更高的量程。测量电阻时,红表笔为正极,黑表笔为负极,这与指针式万用表正好相反。
2、数字万用表使用的注意事项
①万用表使用完毕,应将转换开关置于交流电压的最大挡。如果长期不使用,还应将万用表内部的电池取出来,以免电池腐蚀表内其它器件。
②在使用万用表过程中,不能用手去接触表笔的金属部分,这样一方面可以保证测量的准确,另一方面也可以保证人身安全。
③在测量某一电量时,不能在测量的同时换档,尤其是在测量高电压或大电流时,更应注意。否则,会使万用表毁坏。如需换挡,应先断开表笔,换挡后再去测量。
④注意外界磁场对万用表的影响。
3、数字万用表测量光敏电阻
·遮光检验
将万用表拨到R×20k挡,用一黑纸片将光敏电阻的透光窗口遮住,此时万用表的示数基本保持不动,阻值接近无穷大。此值越大说明光敏电阻性能越好。若此值很小或接近为零,说明光敏电阻已烧穿损坏,不能再继续使用。
·对光检验
将一光源对准光敏电阻的透光窗口,此时万用表的示数应有较大幅度的摆动,阻值明显减小。此值越小说明光敏电阻性能越好。若此值很大甚至无穷大,表明光敏电阻内部开路损坏,也不能再继续使用。
·闪光检验
将光敏电阻透光窗口对准入射光线,用小黑纸片在光敏电阻的遮光窗上部晃动,使其间断受光,此时万用表示数应随黑纸片的晃动而左右摆动。如果万用表示数
始终停在某一位置不随纸片晃动而摆动,说明光敏电阻的光敏材料已经损坏。
光敏电阻控制led灯的亮灭
1、电路图
2、工作原理
光敏电阻器是利用半导体的光电效应制成的一种电阻值随入射光的强弱而改变的电阻器;入射光强,电阻减小,入射光弱,电阻增大。连接时将光敏电阻和10k的电阻串联,电阻用来分压;LED灯和470欧的电阻串联,电阻用来保护电路.随着光照的强弱,光敏电阻的阻值不断变化,输出的电压不断变化,通过编程控制一定范围内电压的高低电平,使LED灯变化。
3、示例程序
实践一:在白天的情况下,当遮挡光敏电阻时,LED点亮,不遮挡光敏电阻时,LED熄灭.(其中可以改变 if(val<=512) 语句中的判断值来改变光敏电阻的灵敏度)
实践二:在白天的情况下,当遮挡光敏电阻时,LED熄灭,不遮挡光敏电阻时,LED点亮.(其中可以改变 if(val<=400) 语句中的判断值来改变光敏电阻的灵敏度)
串口输出
外界的亮度高时,串口输出的数值小;亮度低时,串口输出的值大。
实践三:类似手机屏幕的自动调亮
串口输出(映射后)
外界的亮度高时,串口输出的数值大;亮度低时,串口输出的值小。
实验过程中遇到的问题
在验证时出现了“stray ‘\357’in program”的错误,如下图,有两种可能:
1.源文件中含有中文字符,(注释不算)
编码可能是直接从word文档中复制过来,里面的字符为中文字符。可以把所有的字符用英文状态下重新输一遍。
2.源文件编码格式不对
UTF-8编码是一种兼容ASCLL编码的变长的编码。在文件保存为编码时,会在文件开始的地方插入三个隐藏的字符(0xEF 0xBB 0xBF)即BOM字符,用来标识文件是采用哪种格式,但在arduino里没有没有这个规定,不认识BOM字符。可以把文件复制到记事本上,另存为,把编码格式改为ANSI,再重新复制。