一、实验任务
本实验的任务是使学生熟悉Arduion,通过进行S.O.S实验来进一步了解熟悉相关操作及Arduion的实战。任务具体要求我们使用特定代码让LED以S.O.S模式(三个点,紧接三个横杠,再接三个点)闪烁从而发出S.O.S信号。
其中,S.O.S是国际莫尔斯码求救信号。莫尔斯码是一种字符编码,英文的每个字母,由横杠和点不同的组合而成。可以通过LED长闪烁和短闪烁来表示点和横杠来进行莫尔斯编码,表示S.O.S这三个字母。
通过查阅莫尔斯码表可以知道,字母“S”用三个点表示,这里用短闪烁替代,字母“O”则用三个横杠表示,用长闪烁替代。 两个个字母之间可以保留适当停顿时间。要求用函数形式出横杠和点。例如函数名为 dash dot。
二、硬件设计
该实验用到的硬件有:开发板,面包板,LED,电阻,跳线。
根据输入的代码,我们可以将跳线接到开发板上GND和10的接口,依照面包板的电路设计,我们要将跳线另一端分别接入面包板不同行。再在面包板上接入适当阻值的电阻及LED,并注意电阻和LED的衔接,LED的单向导电性,以确保电路接通,LED能闪烁。最后通过usb连接电脑。
其中,我们的电阻阻值计算公式为:R=(Vs-Vl)/I 这里Vs是电源电压,Vl是LED需要的电压,I是LED的电源。同时,我们还可以根据四色环的电阻色环代码表,读出相应的阻值。同样,也可以借此为指定阻值的电阻找到代码。
三、软件设计
打开Arduino IDE,在编辑框中输入下列所示代码。
int ledPin=10;
void setup()
{
pinMode(ledPin,OUTPUT);
}
void loop()
{
for(int x=0;x<3;x++){
digitalWrite(ledPin,HIGH);
delay(150);
digitalWrite(ledPin,LOW);
delay(100);
}
delay(100);
for(int x=0;x<3;x++){
digitalWrite(ledPin,HIGH);
delay(400);
digitalWrite(ledPin,LOW);
delay(100);
}
delay(100);
for(int x=0;x<3;x++){
digitalWrite(ledPin,HIGH);
delay(400);
digitalWrite(ledPin,LOW);
delay(100);
}
delay(5000);
}
在代码里有三个for循环:第一个循环3次,输出三个点;第二个循环3次输出3个横杠;最后一个循环3次,再一次输出3个点。在每一个for循环之间是一小段延时,使用S.O.S字母之间产生一个可见的暂停。最后,在主程序loop重新执行一遍之前,代码等候5秒。
四、结果分析
1、电路实物
电路实物如图所示,采用Arduino板,供电电压为5V,选择10号接口为信号输入端。
端。
2、结果分析
LED短闪烁成三个点,紧接着长闪烁成三个横杠,然后再接三个点,LED以该模式发出S.O.S信号,第一次结束五秒后又开始循环闪烁。