Arduino UNO
Arduino IDE开发环境
Arduino 光线传感器
基础
这一款光线传感器通俗来讲其实就是一个光敏电阻焊接在pcb板上,加上连接一些必须的电阻,就形成了光线传感器。
光敏电阻又叫做光导管,常用的制作材料为硫化镉,另外还有硒、硫化铝、硫化铅和硫化铋等材料。这些制作材料的特性是在特定的波长的光照射下,它的阻值减小。
光敏电阻的工作原理其实就是基于内光电效应。在半导体光敏材料两端装上电极引线,将其封装在带有透明窗的管壳里就构成光敏电阻,为了增加灵敏度,两电极常做成梳状。当有光线照射时,电阻内原本处于稳定状态的电子受到激发,成为自由电子。所以光线越强,产生的自由电子也就越多,电阻就会越小。经过测试,光敏电阻在黑暗中,电阻值大概有1~10M,在光照下,电阻值大概有几百到几千欧姆。
光敏电阻:感应当前环境的不同光暗程度,决定电阻值的大小
其余电阻:根据光敏电阻的光阻值与暗阻值选择适配阻值大小的电阻
当外界越亮,光敏电阻的阻值就越小,光线传感器输出的值越小;当外界越暗,电阻阻值越大,光线传感器输出越大。
连接Arudino UNO与光线传感器
如上图,光线传感器引脚有三个
接线如下:
| Arduino UNO | 光线传感器 |
|---|---|
| GND | GND |
| 5V | VCC |
| A0 | D0 |
由于不同的环境,光线程度都是不一样的,当使用光线传感器的时候,需要根据不同环境设定传感器的敏感值,使其适合当前的环境。
光线传感器也正是由于这一功能,比光敏电阻的实用性更强。
光敏电阻的阻值与敏感程度都是规定好了的,不同环境之下,同一个光敏电阻可能不完全适用。
光线传感器设计上考虑到这个实际使用的情况,做出了实用性的改造。
编写程序获取光线模块的模拟信号
定义变量
const int buttonPin = A0;
int inputValue = 0;
setup()初始化
void setup() {
pinMode(buttonPin, INPUT);
Serial.begin(9600);
}
loop()写入主体函数
void loop() {
inputValue = analogRead(buttonPin);
Serial.println(inputValue);
}
连接Arduino UNO至电脑
编译并上传程序至Arduino UNO
测试效果
测试的时候可以适当的间断用手掌遮住光敏电阻,如下图:
基于步骤二,连接LED与Arduino UNO
| LED | Arduino UNO |
|---|---|
| 短脚 | GND |
| 长脚 | D10 |
基础步骤二的程序整合上LED程序
需求分析
定义变量
const int buttonPin = A0;
const int LED = 10;
int inputValue = 0;
setup()初始化
void setup() {
pinMode(buttonPin, INPUT);
pinMode(LED, OUTPUT);
Serial.begin(9600);
}
loop()函数主体
void loop() {
inputValue = analogRead(buttonPin);
Serial.println(inputValue);
if(inputValue>100)
digitalWrite(LED,HIGH);
else digitalWrite(LED,LOW);
}
整合全部程序:
const int buttonPin = A0;
const int LED = 10;
int inputValue = 0;
void setup() {
pinMode(buttonPin, INPUT);
pinMode(LED, OUTPUT);
Serial.begin(9600);
}
void loop() {
inputValue = analogRead(buttonPin);
Serial.println(inputValue);
if(inputValue>100)
digitalWrite(LED,HIGH);
else digitalWrite(LED,LOW);
}
编译并上传程序测试效果