Arduino入门:LED闪烁与摩斯密码实验
创作时间:
作者:
@小白创作中心
Arduino入门:LED闪烁与摩斯密码实验
引用
简书
1.
https://www.jianshu.com/p/6b2b07d03fc9
Arduino是一款非常流行的开源电子原型平台,它可以让用户通过编写代码来控制各种电子元件。本文将介绍如何使用Arduino实现LED灯闪烁和摩斯密码信号输出,帮助读者掌握Arduino的基本使用方法。
实验目的
- 学习Arduino IDE的使用方法,包括软件安装、代码编写和上传。
- 掌握Arduino板上LED灯的基本操作,包括引脚设置、高电平和低电平控制。
- 实现LED灯的闪烁功能,并通过修改参数实现不同频率的闪烁。
- 利用Arduino实现摩斯密码的编码与解码,完成“SOS”和“I LOVE YOU”的摩斯密码信号输出。
实验器材
- Arduino开发板(如Arduino Uno)。
- LED发光二极管(红色)。
- 220Ω电阻(用于LED限流)。
- 面包板及跳线。
- USB数据线。
实验原理
- LED闪烁:通过控制Arduino板上的数字引脚输出高电平或低电平,使LED灯亮起或熄灭。闪烁频率可以通过调整延时时间来改变。
- 摩斯密码:摩斯密码由点(“·”)和划(“—”)组成,分别对应短时间和长时间的信号输出。例如,“SOS”信号为“... --- ...”,而“I LOVE YOU”需要根据摩斯密码表进行编码。
实验步骤
- 准备工作:
下载并安装Arduino IDE软件。
准备实验器材,将LED灯连接到Arduino的数字引脚(如引脚9),并连接220Ω电阻到LED的负极。
- 编写代码:
LED闪烁代码:
int ledPin = 9; // 定义LED连接的引脚
void setup() {
pinMode(ledPin, OUTPUT); // 设置引脚为输出模式
}
void loop() {
digitalWrite(ledPin, HIGH); // 点亮LED
delay(1000); // 延时1秒
digitalWrite(ledPin, LOW); // 熄灭LED
delay(1000); // 延时1秒
}
通过调整delay()函数中的时间参数,可以改变LED闪烁的频率。
摩斯密码代码:
int ledPin = 9; // 定义LED连接的引脚
int dotDuration = 200; // 点信号持续时间
int dashDuration = 3 * dotDuration; // 划信号持续时间
int spaceDuration = 7 * dotDuration; // 字符间隔时间
void setup() {
pinMode(ledPin, OUTPUT); // 设置引脚为输出模式
}
void dot() {
digitalWrite(ledPin, HIGH); // 点亮LED
delay(dotDuration); // 延时
digitalWrite(ledPin, LOW); // 熄灭LED
delay(dotDuration); // 延时
}
void dash() {
digitalWrite(ledPin, HIGH); // 点亮LED
delay(dashDuration); // 延时
digitalWrite(ledPin, LOW); // 熄灭LED
delay(dotDuration); // 延时
}
void morseCode(String message) {
for (int i = 0; i < message.length(); i++) {
char c = toupper(message.charAt(i));
switch (c) {
case 'A': dot(); dash(); break;
case 'B': dash(); dot(); dot(); dot(); break;
case 'C': dash(); dot(); dash(); dot(); break;
case 'D': dash(); dot(); dot(); break;
case 'E': dot(); break;
case 'F': dot(); dot(); dash(); dot(); break;
case 'G': dash(); dash(); dot(); break;
case 'H': dot(); dot(); dot(); dot(); break;
case 'I': dot(); dot(); break;
case 'J': dot(); dash(); dash(); dash(); break;
case 'K': dash(); dot(); dash(); break;
case 'L': dot(); dash(); dot(); dot(); break;
case 'M': dash(); dash(); break;
case 'N': dash(); dot(); break;
case 'O': dash(); dash(); dash(); break;
case 'P': dot(); dash(); dash(); dot(); break;
case 'Q': dash(); dash(); dot(); dash(); break;
case 'R': dot(); dash(); dot(); break;
case 'S': dot(); dot(); dot(); break;
case 'T': dash(); break;
case 'U': dot(); dot(); dash(); break;
case 'V': dot(); dot(); dot(); dash(); break;
case 'W': dot(); dash(); dash(); break;
case 'X': dash(); dot(); dot(); dash(); break;
case 'Y': dash(); dot(); dash(); dash(); break;
case 'Z': dash(); dash(); dot(); dot(); break;
case ' ': delay(spaceDuration); break;
default: break;
}
delay(spaceDuration); // 字符间隔
}
}
void loop() {
morseCode("I LOVE YOU");
}
该代码通过dot()和dash()函数实现点和划信号的输出,并通过morseCode()函数将字符串转换为摩斯密码信号。
上传代码:
打开Arduino IDE,选择正确的开发板和端口(如Arduino Uno)。
将代码粘贴到IDE中,点击“上传”按钮将代码烧录到Arduino板上。观察结果:
运行代码后,Arduino板上的LED灯将按照摩斯密码的规则闪烁,输出“I LOVE YOU”的信号。
实验结果
- LED灯以稳定的频率闪烁,频率可通过调整延时时间进行修改。
- Arduino板成功输出“I LOVE YOU”的摩斯密码信号,点和划信号清晰可辨。
实验总结
本次实验通过Arduino实现了LED灯的闪烁和摩斯密码信号的输出。通过调整代码中的延时参数,可以实现不同的闪烁频率和信号模式。此外,实验还加深了对Arduino编程基础的理解,为进一步学习复杂项目打下了基础。
热门推荐
豆腐可以生吃吗
买生蚝被人偷了犯法吗?法律解读与实务分析
如何将歌曲下载到车载U盘中?下载过程中需要注意哪些格式和兼容性问题?
工地欠钱不还怎么办?四种合法追讨方式详解
搬家吉日中的冲与煞解析,生辰八字如何算搬家吉日
终本案件的法律意义及其对司法实践的影响
终本之后怎样查案件详情:全面解析与实务操作
签证提前多长时间办理合适 提前办签证需要考虑哪些因素
如何办理签证需要准备哪些材料
好莱坞“堕落玉女”:从爆火全球到自毁,如今林赛如何找回自己?
绩效管理中,如何有效反馈以促进员工持续改进与成长?
探寻仙境:蓬莱仙山的历史与现实
肾上腺皮质功能减退:病因、治疗与就诊指南
过敏性鼻炎用丙酸氟替卡松还是布地奈德喷雾剂好?
丙酸氟替卡松吸入气雾剂药品信息详解
智能门锁真的安全吗?如何防范被黑客破解?
旗袍的历史演变与文化内涵
食用油质量检验如何检?食用油检验报告多久检验一次
脑机接口医学应用的伦理考量综述
哪些工具可以帮助进行有效的压疮风险管理?
脑梗药物治疗全解析:从急性期到长期管理
洗澡潔面一take過?日日用磨砂先夠乾淨?5個潔面錯觀念一次過糾正!
提升仓储效率的自动化物流解决方案,如何通过数据分析实现智能管理?
1976年出生的沙中土命八字解析
芽庄美食攻略:6大特色美食让你感受越南独特风味
如何探索多元化的收入来源?这些来源如何提升财务自由度?
葛花茶、葛花萃取物是什么?为何在日本成为减脂、减肥的流行产品
如何寻找和选择适合的技术分析指标并提高投资决策的准确性?
乌头碱中毒护理急救指南
乌头碱中毒护理急救指南