返回

按钮控制LED:你的第一个Arduino输入项目

引言

欢迎来到你的第一个Arduino输入项目!在本教程中,你将搭建一个由按钮控制LED的电路。按下按钮时LED亮起,松开时LED熄灭。这个简单的项目将带你学习读取数字输入、使用内部上拉电阻以及编写简洁的Arduino代码。

我们将使用Velxio在线模拟器,它提供了SPICE精确的环境,让你无需硬件即可测试电路。让我们开始吧!

电路详解

Velxio模拟器画布上的按钮LED电路图

该电路由三个主要组件组成:

接线细节

  1. 按钮与Arduino的连接

    • 按钮的一个引脚(1.l)通过蓝色导线(#00aaff)连接到Arduino的数字引脚2
    • 另一个引脚(2.l)通过黑色导线连接到GND
  2. LED与Arduino的连接

    • 阳极(长引脚,A)通过红色导线(#ff0000)连接到Arduino的数字引脚13
    • 阴极(短引脚,C)通过黑色导线连接到GND

请注意,按钮没有外部上拉电阻。相反,我们将在代码中使用Arduino的内部上拉电阻。当按钮未按下时,输入引脚被拉高为HIGH;按下时,读取为LOW。

代码详解

Velxio Monaco编辑器中的按钮LED源代码

以下是完整的Arduino代码:

// 按钮控制LED
// 按下按钮点亮LED

const int BUTTON_PIN = 2;
const int LED_PIN = 13;

void setup() {
  pinMode(BUTTON_PIN, INPUT_PULLUP);
  pinMode(LED_PIN, OUTPUT);
}

void loop() {
  int buttonState = digitalRead(BUTTON_PIN);

  if (buttonState == LOW) {
    digitalWrite(LED_PIN, HIGH);
  } else {
    digitalWrite(LED_PIN, LOW);
  }
}

代码说明

关键概念

数字输入与上拉电阻

当数字引脚配置为输入时,它读取HIGH(5V)或LOW(0V)。如果没有上拉或下拉电阻,引脚会处于浮动状态,导致读数不稳定。内部上拉电阻(通常为20k-50k欧姆)确保按钮断开时引脚稳定为HIGH。按下按钮将引脚直接连接到GND,覆盖上拉电阻,从而读取为LOW。

去抖动

机械按钮通常会产生抖动,导致多次快速的状态变化。在这个简单示例中,我们忽略了去抖动,因为LED响应迅速且影响很小。对于更关键的应用,可以添加短暂延迟或使用去抖动库。

使用常量

在代码顶部将引脚号定义为常量,可以轻松更改接线而无需在代码中查找。同时提高了代码的可读性。

常见问题与调试技巧

使用Velxio模拟器

带有编译和运行控件的Velxio编辑器工具栏

点击工具栏中的运行按钮,编译并启动仿真。然后点击画布上的按钮,观察LED的响应。

仿真视口上方的Velxio画布工具栏

使用画布工具栏暂停、重置或调整仿真速度。

按类别浏览部件的Velxio组件选择器模态框

要添加更多组件,打开组件选择器并浏览”输入”或”输出”等类别。

列出已安装Arduino库的Velxio库管理器模态框

如果需要额外的库(例如用于去抖动),请使用库管理器。

扩展建议

在基本电路正常工作后,尝试以下改进:

  1. 切换模式:修改代码,使每次按下按钮切换LED的亮灭状态,而非按住才亮。
  2. 多个LED:添加更多LED和按钮,创建一个简单的输入面板。
  3. 去抖动:使用50ms延迟或定时器实现软件去抖动。
  4. 串口监视器:将按钮状态打印到串口监视器以进行调试。
  5. PWM亮度控制:用analogWrite()替代数字写入,根据按钮按下时长控制LED亮度。

行动号召

准备好搭建你自己的按钮控制LED了吗?打开Velxio上的实时示例开始实验:按钮LED示例。无需硬件——只需你的浏览器。祝你玩得开心!


分享到:
David Montero

作者

David Montero

Creator of Velxio, the open-source circuit and Arduino simulator.

GitHub velxio.dev

相关文章


上一篇
用PWM让Arduino上的LED呼吸——新手教程
下一篇
在 Velxio 上用 Arduino 搭建交通灯模拟器