Arduino+Proteus 模拟摩尔斯码求救信号
摩尔斯电码也被称作摩斯密码,是一种时通时断的信号代码,通过不同的排列顺序来表达不同的英文字母、数字和标点符号。它发明于1837年,是一种早期的数字化通信形式。不同于现代化的数字通讯,摩尔斯电码只使用零和一两种状态的二进制代码,它的代码包括五种:短促的点信号“・”,读“滴”(Di)保持一定时间的长信号“—”,读“嗒”(Da)表示点和划之间的停顿、每个词之间中等的停顿,以及句子之间长的停顿。
求救信号SOS
1909年8月,美国轮船“阿拉普豪伊”号由于尾轴破裂,无法航行,就向邻近海岸和过往船只拍发了“SOS”信号。这是第一次使用这个信号。
1912年,著名的泰坦尼克号游轮首航遇险时,发送的是CQD(英国马可尼无线电公司决定用CQD作为船舶遇难信号),但因D(—··)易于其他字母混淆,周围船只并未意识到是求救信号,没有快速救援,在快沉没时才使用的新求救信号SOS(···———···)发报。泰坦尼克号沉没后,SOS才被广泛接受和使用。事实上,虽然SOS信号在1906年即已制订,但英国的无线电操作员很少使用SOS信号,他们更喜欢老式的CQD遇难信号。泰坦尼克号的无线电首席官员约翰·乔治·菲利普一直在发送CQD遇难信号,直到下级无线电操作员哈罗德·布莱德建议他:“发送SOS吧,这是新的调用信号,这也可能是你最后的机会来发送它了!”然后菲利普在传统的CQD求救信号中夹杂SOS信号。求救信号直到第二天早上才被加州人号收到,因为她并没有24小时都监听无线电
根据摩尔斯码的定义采用Arduino+Proteus将国际求救信号SOS用LED灯光表示出来。在proteus里创建一个新的工程,注意新的工程选择From Development Board 选择Arduno328,点击Finish就会出现一个含Arduino的Proteus项目模板。
这个项目需要的器件很少,只需要一个LED和一个限流电阻就可以,和呼吸灯的硬件电路完全一样。
选择IO10作为LED的控制端口。限流电阻的阻值计算过程如下:
电源电压为5V,LED的压降为2V,LED所承受的最大电流为35mA,则需要的限流电阻为:
取限流电阻为100Ω。
硬件电路非常简单,下面看如何通过程序来是SOS求救信号的。
S的摩尔斯码是 三个点 •••• 可以用短时亮来表示三个点S
O的摩尔斯码是 三个划- - - 可以用长时亮来表示三个点O
用不同的延时来实现点和划
程序如下
这个for循环输出三个点即字母S
//S ...
for(int x = 0; x<3 ; x++) // threedits
{
digitalWrite(ledPin,HIGH); //sets theLED on
delay(150); // waits for150ms
digitalWrite(ledPin,LOW); //sets the LED off
delay(100); //waits for 100ms
}
这个for循环输出三个划即字母O
for(int x= 0;x<3;x++) //rthree dahs
{
digitalWrite(ledPin,HIGH); //sets theLED on
delay(400); //waits for 400ms
digitalWrite(ledPin,LOW); //sets the LED off
delay(100); // waits for 100ms
}
通过LED不同时间的亮灭来实现点和划的区分,采用三个for循环来实现SOS信号,最后间隔5秒重新闪烁一次。点击运行就可以看到LED在不同的闪烁SOS信号了。
网友评论