|
摩尔斯电码是一种通信系统,用于在两个不同持续时间的信号中编码任何字符,称为点和虚线。摩尔斯电码由Samuel F.B开发。并进一步用于电报传输秘密信息。它在第二次世界大战时最常用。摩尔斯电码可以通过点击、闪烁灯或写入来执行。摩尔斯电码有两种版本,原始和国际摩尔斯电码。在国际摩尔斯电码中,通过删除空格并设计特定长度的短划线来修改原始版本。摩尔斯电码可用于编码字母和数字。它主要用于无线电和海洋通信,也是士兵训练的一部分。
语言一直是摩尔斯电码的障碍,因为很难用其他语言执行变音字符的代码。有一些着名的词被认为是摩尔斯电码的重要特征,如'SOS'。 SOS完整形式是Save Our Souls,创建的通用遇险信号代表危险。
下图显示了从A到Z的字母表的摩尔斯电码。
今天在本篇文章中,我们将使用Arduino开发板制作一个摩尔斯电码生成器,它将从串行监视器输入任何字符,并通过蜂鸣器将其转换为摩尔斯电码等效的蜂鸣声。
需要的组件 ● Arduino Uno开发板 ● 蜂鸣器 ● 面包板 ● 跳线
电路原理图
将蜂鸣器的正极引脚连接到Arudino UNO的第8个引脚,将负极引脚连接到Arduino的地。使用Arduino IDE上传代码并在串行监视器上键入字符以创建声音。还可以使用Arduino添加LCD以显示短划线和圆点。
编程说明 文章末尾给出了Arduino摩尔斯电码生成器的完整代码,这里我们解释了解项目工作的程序。
下面的代码用于接收字符串,然后将其转换为莫尔斯代码。 - char stringToMorseCode[] = "";
复制代码
然后定义连接到Arduino的蜂鸣器的引脚和蜂鸣器产生的声音的音高。 然后我们定义点和破折号的长度。 - int audio8 = 8; // output audio on pin 8
- int note = 1200; // music note/pitch
- int dotLen = 100; // length of the morse code 'dot'
- int dashLen = dotLen * 3; // length of the morse code 'dash'
复制代码
在void loop()函数中,如果串行数据可用,它将保存到变量indata中。 然后它使用命令inData [index1]逐个读取字符。 命令variable.toUppercase()用于将小写字符更改为大写。 然后它根据每个角色创造声音。 - void loop()
- {
- char inChar = 0;
- char inData[100] = ""; // data length of 6 characters
- String variable = "";
- String variable1 = "";
- int index1 = 0;
- if ( Serial.available() > 0 ) {
- while (Serial.available() > 0 && index1 < 100)
- {
- delay(100);
- inChar = Serial.read();
- inData[index1] = inChar;
- index1++;
- inData[index1] = '\0';
- }
- variable.toUpperCase();
- for (byte i = 0 ; i < 100 ; i++) {
- variable.concat(String(inData[i]));
- }
- delay(20);
复制代码
下面的函数MorseDot和MorseDash分别用于创建点和破折号的声音。 - void MorseDot()
- {
- tone(audio8, note, dotLen); // start playing a tone
- delay(dotLen); // hold in this position
- }
- void MorseDash()
- {
- tone(audio8, note, dashLen); // start playing a tone
- delay(dashLen); // hold in this position
- }
复制代码
GetChar函数获取所有字母表的代码。 因此,每当我们键入任何字母表时,都会从此函数中获取相应的莫尔斯电码以创建特定的声音。 - void GetChar(char tmpChar)
- {
- switch (tmpChar) {
- case 'a':
- MorseDot();
- delay(100);
- MorseDash();
- delay(100);
- break;
- …
- …
- …
- default:
- break;
- }
- }
复制代码
现在使用Arduino IDE将代码上传到Arduino,然后在串行监视器中输入任何字符,然后按Enter按钮将字符发送到Arduino。 在这里,我们输入了'SOS'这是一个通用的遇险信号,为它创造声音。
代码 以下是本篇文章使用的完整代码:
main.rar
(976 Bytes, 下载次数: 146)
|