问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Arduino入门:LED闪烁与摩斯密码实验

创作时间:
作者:
@小白创作中心

Arduino入门:LED闪烁与摩斯密码实验

引用
简书
1.
https://www.jianshu.com/p/6b2b07d03fc9

Arduino是一款非常流行的开源电子原型平台,它可以让用户通过编写代码来控制各种电子元件。本文将介绍如何使用Arduino实现LED灯闪烁和摩斯密码信号输出,帮助读者掌握Arduino的基本使用方法。

实验目的

  1. 学习Arduino IDE的使用方法,包括软件安装、代码编写和上传。
  2. 掌握Arduino板上LED灯的基本操作,包括引脚设置、高电平和低电平控制。
  3. 实现LED灯的闪烁功能,并通过修改参数实现不同频率的闪烁。
  4. 利用Arduino实现摩斯密码的编码与解码,完成“SOS”和“I LOVE YOU”的摩斯密码信号输出。

实验器材

  1. Arduino开发板(如Arduino Uno)。
  2. LED发光二极管(红色)。
  3. 220Ω电阻(用于LED限流)。
  4. 面包板及跳线。
  5. USB数据线。

实验原理

  1. LED闪烁:通过控制Arduino板上的数字引脚输出高电平或低电平,使LED灯亮起或熄灭。闪烁频率可以通过调整延时时间来改变。
  2. 摩斯密码:摩斯密码由点(“·”)和划(“—”)组成,分别对应短时间和长时间的信号输出。例如,“SOS”信号为“... --- ...”,而“I LOVE YOU”需要根据摩斯密码表进行编码。

实验步骤

  1. 准备工作:
    下载并安装Arduino IDE软件。
    准备实验器材,将LED灯连接到Arduino的数字引脚(如引脚9),并连接220Ω电阻到LED的负极。

  1. 编写代码:

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()函数将字符串转换为摩斯密码信号。

  1. 上传代码:
    打开Arduino IDE,选择正确的开发板和端口(如Arduino Uno)。
    将代码粘贴到IDE中,点击“上传”按钮将代码烧录到Arduino板上。

  2. 观察结果:
    运行代码后,Arduino板上的LED灯将按照摩斯密码的规则闪烁,输出“I LOVE YOU”的信号。

实验结果

  1. LED灯以稳定的频率闪烁,频率可通过调整延时时间进行修改。
  2. Arduino板成功输出“I LOVE YOU”的摩斯密码信号,点和划信号清晰可辨。

实验总结

本次实验通过Arduino实现了LED灯的闪烁和摩斯密码信号的输出。通过调整代码中的延时参数,可以实现不同的闪烁频率和信号模式。此外,实验还加深了对Arduino编程基础的理解,为进一步学习复杂项目打下了基础。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号