Arduino篇—借助光控开关学习输入型器件的使用

电子说

1.3w人已加入

描述

课程目标

  • 以光控传感器为例,理解输入型器件的功能和作用。
  • 理解输入输出的概念,学会编程处理外部信号的输入。
  • 理解选择程序结构,完成光控灯的制作。

电路知识

本课程中用到的光控传感器模块其主要元件是由光敏电阻构成。大家也可以直接使用光敏电阻来进行测试

光敏电阻工作特性

光敏电阻是用硫化镉或硒化镉等半导体材料制成的特殊电阻器,表面还涂有防潮树脂,具有光电导效应。光敏电阻对光线十分敏感。光照愈强,阻值就愈低。随着光照强度的升高,电阻值迅速降低,可降低至1KΩ以下。

电阻器

用途

光敏电阻模块对环境光强最敏感,一般用来检测周围环境的亮度和光强。

模块使用方法

模块在无光条件或者光强达不到设定阈值时,DO口输出高电平,当外界环境光强超过设定阈值时,模块DO输出低电平。(阈值可以通过调节模块上的可调电位器进行更改)

电阻器

数字量输出DO可以与单片机直接相连,通过UNO来检测高低电平,由此来检测环境的光强改变。

电路搭建

所需材料
Arduino UNO * 1
光控传感器模块 * 1
任意颜色LED * 1
220Ω电阻 * 1
公对公杜邦线若干
公对母杜邦线若干

接线方式

传感器模块上的VCC连接UNO的+5V,
DO连接UNO的D3引脚,
GND连接UNO的GND。

电阻器

程序编写

练习一:通过端口读取传感器模块获得的值

根据上面的接线图,编写程序。将传感器获得的值在端口打印出来。

图形化方式:

电阻器

将程序上传至UNO后,打开米思齐右下角的串口监视器进行数据查看。

电阻器

在新打开的窗口中,可以看到每秒的数据采样变化。当光敏电阻在亮光环境下,窗口采样数据为1,当光敏电阻在黑暗环境下,窗口采样数据为0。请记住这个方法,在以后凡是用到传感器的项目中,我们都会使用这个方法来进行测试。

代码方式:

/* 项目名称:串口读取
 * 项目时间:2022.02.11
 * 项目作者:MRX
 */
int pin = 3;
int DR = 0;
void setup() {
  Serial.begin(9600);//波特率设置为9600
  pinMode(pin,INPUT);//引脚模式为输入模式
}
void loop() {
  DR= digitalRead(pin);//数字读取
  Serial.println(DR);//println换行打印数据
  delay(1000);
}

代码方式的串口监视器打开方式,是在IDLE的右上角。测试方式参考图形化。

电阻器

练习二:自动开关灯

根据下面的接线图,编程实现天黑开灯,天亮关灯功能。

电阻器

图形化方式:

使用条件判断,实现LED的控制。

电阻器

还可以直接将数字输入引脚读取的值,赋给数字输出管脚。因为数字输入有信号进入的时候为1(高电平),没信号进入的时候为0(低电平)。

电阻器

代码方式:

/* 项目名称:光控LED
 * 项目时间:2022.02.11
 * 项目作者:MRX
 */
int pin = 3;
int ledpin = 2;
int DR = 0;
void setup() {
  Serial.begin(9600);
  pinMode(pin,INPUT);
  pinMode(ledpin,OUTPUT);
}
void loop() {
  DR= digitalRead(pin);
  Serial.println(DR);
  delay(1000);
  if(DR){
    digitalWrite(ledpin,HIGH);
  }
  else
  {
    digitalWrite(ledpin,LOW);
  }
}
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分