Arduino编程入门
2019-09-10
一、倾斜开关控制LED灯的亮灭
实验器件:
滚珠开关:1个 LED灯:1个
220Ω电阻:1个
多彩面包板实验跳线:若干
1.实验连线
将控制板、扩展板子、面包板连接好(图1),下载线接好, 然后将LED灯连接到数字8引脚,滚珠开关连接到模拟5引脚。
2.实验原理
当开关一端低于水平位置倾斜,开关导通,模拟口电压值为5V左右 (数字二进制表示为1023),点亮LED灯。当另一端低于水平位置倾斜 ,开关停止,模拟口电压值为0V左右(数字二进制表示为0),熄灭LED 灯。在程序中模拟口电压值是否大于2.5V左右(数字二进制表示为512) ,即可知道是否倾斜开关导通了。
3.程序参考
void setup()
{
pinMode(8,OUTPUT);//设置数字8引脚为辒出模式
}
void loop()
{
int i;//定义发量i
while(1)
{
i=analogRead(5);//读取模拟5口电压值
if(i>512)//如果大于512(2.5V)
{
digitalWrite(8,LOW);//点亮LED灯
}
else//否则
{
digitalWrite(8,HIGH);//熄灭LED灯
}
}
}
实验现象:手拿着面包板,当倾斜到一定程度时,LED被点亮。没有倾斜时,led不亮(图2)。
倾斜到一定程度时,LED被点亮(图3),实际应用中控制的通常是继电器。
二、火焰报警实验
1.认识火焰传感器
火焰传感器(即红外接收三极管,图4)是机器人专门用来搜寻火源的传感器,本传感器对火焰特别灵敏。实物如图:
2.工作原理
火焰传感器利用红外线对火焰非常敏感的特点,使用特制的红外线接收管来检测火焰,然后把火焰的亮度转化为高低变化的电平信号,输入到中央处理器,中央处理器根据信号的变化做出相应的程序处理。
3.火焰传感器的连线
红外接收三极管的短引线端为负极,长引线端为正极。按照下图将负极接到5V接口中,然后将正极和10K电阻相连,电阻的另一端接到GND接口中,最后从火焰传感器的正极端所在列接入一根跳线,跳线的另一端接在模拟口中,如图5。
4.实验器件
火焰传感器:1个
蜂鸣器:1个
下拉电阻:10K电阻1个
多彩面包板实验跳线:若干
5.实验连线
1)蜂鸣器的连接
首先,按照Arduino教程将控制板、prototype板子、面包板连接好,下载线接好。从实驗盒中取出蜂鸣器,按照第二节实验蜂鸣器的连接方法,将蜂鸣器连接到数字第八口,完成蜂鸣器的连接。
2)火焰传感器的连接
从实验盒中取出火焰传感器,按照本节所讲述的火焰传感器的接线方法,将火焰传感器接到模拟5口(图6),完成整个实验的连线。蜂鸣器接到第9脚,火焰传感器接到模拟0脚。
6.实验原理
在有火焰靠近和没有火焰靠近两种情况下,模拟口读到的电压值是有变化的。实际用万用表测量可知,在没有火焰靠近时,模拟口读到的电压值为0.3V左右;当有火焰靠近时,模拟口读到的电压值为1.0V左右,火焰靠近距离越近电压值越大。
所以在程序一开始,我们可以先存储一个没有火焰时模拟口的电压值i。接着不断地循环读取模拟口电压值j、同存储的值做差值k=j-i、差值k不0.6v做比较。差值k如果大于0.6V(数字二进制值为123),则判断有火焰靠近让蜂鸣器发出声音以作报警;如果差值小于0.6V则蜂鸣器不响。
7.程序代码
int flame=0;//定义火焰接口为模拟0 接口
int Beep=9;//定义蜂鸣器接口为数字9 接口
int val=0;//定义数字变量
void setup()
{
pinMode(Beep,OUTPUT);//定义LED 为输出接口
pinMode(flame,INPUT);//定义蜂鸣器为输入接口
Serial.begin(9600);//设定波特率为9600
}
void loop()
{
val=analogRead(flame);//读取火焰传感器的模拟值
Serial.println(val);//输出模拟值,并将其打印出来
if(val>=600)//当模拟值大于600 时蜂鸣器鸣响
{
digitalWrite(Beep,HIGH);
}else
{
digitalWrite(Beep,LOW);
}
delay(500);
}
8.实验结果及其现象
本程序可以模拟在有火焰时报警的情况,在没有火焰时一切正常,当有火焰时立刻报警做出提示。