【Arduino实验笔记】机械臂篇(二) 开关控制LED灯

本文介绍了如何使用Arduino控制LED灯,通过学习硬件连接、使用digitalRead函数读取IO输入和Serial.println进行串口通信,实现了按键对LED灯的简单开关控制。后续章节将探讨更复杂的LED亮度控制。
摘要由CSDN通过智能技术生成


前言

本章节介绍如何通过按键控制LED灯,在上一章节中,我们学习了如何控制IO输出电平。而本章节,我们将学会如何读取IO输入的电平。


硬件介绍

观察独立按键,共有四个引脚,其中两组间距较短,而另两组间距较长间距长的两组引脚之间是连接在一起的而短间距引脚之间初始状态是断开的,当按键被按下时,四个引脚被接通,可视作一根导线
在这里插入图片描述

一般情况下,独立按键只需要接两个脚即可使用。其中一个引脚接地,另一个引脚由单片机IO口控制

独立按键的详细介绍请参考另一篇博客《51单片机开关篇》


实物接线图

接线图


软件实现

为了读取引脚输入情况,我们需要借助串口工具。幸运的是,Arduino IDE中集成了串口显示窗口,我们可以十分方便地通过几行代码就实现打印引脚状态


库函数介绍

首先,介绍几个核心库中的函数。详细的移步至官方函数手册

  • 数字引脚读取
    uint8_t digitalRead(uint8_t pin)
    • pin: 引脚号
    • 返回值: 引脚电平高低
      • 低电平: LOW
      • 高电平: HIGH

串口库Serial)属于内置核心库,无需#include预编译指令包含。本节使用到的函数如下。

  • 串口初始化
    Serial.begin(baud)
    • baud: 波特率,需与串口窗口中保持一致。
  • 串口打印
    Serial.println(chara)
    • chara: 可接收任意类型数据
    • 打印后开启新行

程序代码

// 2022.11.18
// Author:Qiu

#define KEY_PORT 2   // 2号引脚

void setup() {
  // 设置串口波特率
  Serial.begin(9600);
  // 将2号引脚设置为输入上拉
  pinMode(KEY_PORT, INPUT_PULLUP);
  // 将13号引脚设置为输出; 
  // #define LED_BUILTIN 13
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  // 读取2号引脚的状态
  boolean buttonState = digitalRead(KEY_PORT);
  // 在串口窗口打印引脚状态
  Serial.println(buttonState);
  // 判断控制灯:0-按下;1-没按
  if(buttonState){
    // 熄灭,写入低电平
    digitalWrite(LED_BUILTIN, LOW);
  }else{
    // 点亮,写入高电平
    digitalWrite(LED_BUILTIN, HIGH);
  }
  // 读取存在间隔,保证稳定
  delay(1);
}

下一篇的目标

我们希望更加高级的控制LED灯,比如,动态调节它的亮度,而不是简单亮灭。我们下一篇再见!


总结

通过本章,你学会了如何读取数字IO口的高低电平,并借助串口相关函数完成了按键的控制LED的实验。这为未来我们控制机械臂奠定了坚实的基础!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

悬铃木下的青春

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值