“第十一课--Microduino 达文西之灯(光敏实验)/zh”的版本间的差异
小 (photo added) |
|||
(未显示2个用户的10个中间版本) | |||
第1行: | 第1行: | ||
− | {{Language|Lesson_11--Microduino_"The_lamp_of_Da_Vinci(light-sensitive_experiments)}} | + | {{Language|Lesson_11--Microduino_"The_lamp_of_Da_Vinci(light-sensitive_experiments)"}} |
{| style="width: 800px;" | {| style="width: 800px;" | ||
|- | |- | ||
| | | | ||
==目的== | ==目的== | ||
− | + | 前面讲了好多内容,也是实实在在存在,并且看得见的东西。接下来一段时间我们将学习传感器,如何使用各种传感器。今天用到的是光敏电阻,能够检测光照强度,来模拟一个自动路灯的实验,白天光照较强时,路灯关闭,晚上光照比较弱,路灯开启。 | |
==设备== | ==设备== | ||
− | *'''[[Microduino-Core]]''' | + | *'''[[Microduino-Core/zh]]''' |
− | *'''[[Microduino- | + | *'''[[Microduino-USBTTL/zh]]''' |
*其他硬件设备 | *其他硬件设备 | ||
**面包板跳线 一盒 | **面包板跳线 一盒 | ||
**面包板 一块 | **面包板 一块 | ||
**光敏电阻 一个 | **光敏电阻 一个 | ||
− | ** | + | **220欧、10k电阻 各一个 |
− | + | **led发光二级管 一个 | |
− | **led发光二级管 | + | **USB数据连接线 一根 |
− | **USB数据连接线 | + | |
+ | |||
+ | [[File:lesson12All.jpg|600px|center|thumb]] | ||
+ | ===光敏电阻=== | ||
+ | [[File:第十课-光敏电阻.jpg|600px|center|thumb]] | ||
+ | 光敏电阻是一个将光信号转换成电信号的半导体元器件。在黑暗环境里,它的电阻值很高,当受到光照时,电阻阻值下降。光照愈强,阻值愈低。光敏电阻没有极性,纯粹是一个电阻器件,使用时既可加直流电压,也加交流电压。 | ||
+ | |||
+ | 光敏电阻的暗电阻往往超过1MΩ,甚至高达100MΩ,而亮电阻则在几kΩ以下,暗电阻与亮电阻之比在102~106之间,可见光敏电阻的灵敏度很高。并且有很好的光谱特性,光谱响应可从紫外区到红外区范围内。而且体积小、重量轻、性能稳定、价格便宜,因此应用比较广泛。 | ||
+ | |||
==原理图== | ==原理图== | ||
− | [[File: | + | [[File:lesson11-shcematic.jpg|600px|center|thumb]] |
− | + | 光敏电阻一端直接接地,一端通过电阻接到电源。当晚上无光时,其阻值在几M左右,所以定值电阻阻值可以忽略,光敏电阻两端电压理想为电源两端电压,当白天受到强光照射,其电阻阻值下降至几百欧到几K之间,所以整个电路的总电阻减小,电流增大,定值电阻两端电压增大(Ur=I*R),光敏电阻两端电压减小(U总=Ur+U光敏),电压很低,甚至接近0V。通过此电路可将光信号转换成电信号,我们就可以通过读取其电压来实现一个模拟路灯。 | |
+ | |||
+ | 因为每个时刻光强不一样,所以为了更好地控制光的影响,可将定值电阻换成一个100K的可调精密电阻。大家可以自行实验。 | ||
+ | |||
==程序== | ==程序== | ||
<source lang="cpp"> | <source lang="cpp"> | ||
+ | int a =600; //此处需是环境基础亮度变量,请查看自己的亮度数值,填写到此处数值要略大于所测得的数据但小于灯光下的数据 | ||
void setup () | void setup () | ||
{ | { | ||
− | + | Serial.begin(115200); | |
− | + | pinMode(13,OUTPUT); | |
− | |||
− | pinMode( | ||
− | |||
} | } | ||
− | void loop () | + | void loop() |
{ | { | ||
− | + | int n = analogRead(A0); //读取模拟口A0数值 | |
− | int n =analogRead(A0); | + | Serial.println(n); |
− | + | if (n>= a ) //对光线强度进行判断,如果比我们的预设值小就关闭LED,否则就点亮 | |
− | |||
− | if (n>= | ||
{ | { | ||
− | digitalWrite( | + | digitalWrite(13,HIGH); |
− | |||
} | } | ||
− | + | else | |
− | + | { | |
− | + | digitalWrite(13,LOW); | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
} | } | ||
− | + | delay(100); | |
} | } | ||
</source> | </source> | ||
==结果== | ==结果== | ||
− | + | 当光照强度较强时光敏电阻两端电压较低,读取模拟值低于设定的参考值关闭LED,模拟了白天关闭灯光。当光线好弱时光敏电阻两端电压较高,模拟口读取模拟值高于设定的参考值点亮LED,模拟了夜天打开灯光。 | |
+ | |||
+ | [[File:Lesson11.jpg|600xpx|thumbnail|center]] | ||
+ | |||
+ | ==视频== | ||
|} | |} |
2015年7月3日 (五) 07:05的最新版本
Language | English |
---|
目的前面讲了好多内容,也是实实在在存在,并且看得见的东西。接下来一段时间我们将学习传感器,如何使用各种传感器。今天用到的是光敏电阻,能够检测光照强度,来模拟一个自动路灯的实验,白天光照较强时,路灯关闭,晚上光照比较弱,路灯开启。 设备
光敏电阻光敏电阻是一个将光信号转换成电信号的半导体元器件。在黑暗环境里,它的电阻值很高,当受到光照时,电阻阻值下降。光照愈强,阻值愈低。光敏电阻没有极性,纯粹是一个电阻器件,使用时既可加直流电压,也加交流电压。 光敏电阻的暗电阻往往超过1MΩ,甚至高达100MΩ,而亮电阻则在几kΩ以下,暗电阻与亮电阻之比在102~106之间,可见光敏电阻的灵敏度很高。并且有很好的光谱特性,光谱响应可从紫外区到红外区范围内。而且体积小、重量轻、性能稳定、价格便宜,因此应用比较广泛。 原理图光敏电阻一端直接接地,一端通过电阻接到电源。当晚上无光时,其阻值在几M左右,所以定值电阻阻值可以忽略,光敏电阻两端电压理想为电源两端电压,当白天受到强光照射,其电阻阻值下降至几百欧到几K之间,所以整个电路的总电阻减小,电流增大,定值电阻两端电压增大(Ur=I*R),光敏电阻两端电压减小(U总=Ur+U光敏),电压很低,甚至接近0V。通过此电路可将光信号转换成电信号,我们就可以通过读取其电压来实现一个模拟路灯。 因为每个时刻光强不一样,所以为了更好地控制光的影响,可将定值电阻换成一个100K的可调精密电阻。大家可以自行实验。 程序int a =600; //此处需是环境基础亮度变量,请查看自己的亮度数值,填写到此处数值要略大于所测得的数据但小于灯光下的数据
void setup ()
{
Serial.begin(115200);
pinMode(13,OUTPUT);
}
void loop()
{
int n = analogRead(A0); //读取模拟口A0数值
Serial.println(n);
if (n>= a ) //对光线强度进行判断,如果比我们的预设值小就关闭LED,否则就点亮
{
digitalWrite(13,HIGH);
}
else
{
digitalWrite(13,LOW);
}
delay(100);
}
结果当光照强度较强时光敏电阻两端电压较低,读取模拟值低于设定的参考值关闭LED,模拟了白天关闭灯光。当光线好弱时光敏电阻两端电压较高,模拟口读取模拟值高于设定的参考值点亮LED,模拟了夜天打开灯光。 视频 |