【Arduino实验笔记】机械臂篇(一) 控制板载LED灯闪烁

文章目录

  • 前言
  • Arduino介绍
    • Arduino 开发板
    • Arduino IDE
    • 配置开发板及端口
  • 硬件介绍
    • LED介绍
    • 原理图
  • 软件实现
    • 库函数介绍
    • 程序代码
  • 下一篇的目标
  • 总结


前言

很早之前就买了一块Arduino的板子,但一直吃灰到现在。最近花时间学习了一下,发现这块板子简直是小白的必备入门板(底层高度封装,资料丰富)。当然,Arduino虽然简单,这并不影响它强大的功能,相信在学习的过程中,你能收获创造的快乐。

我习惯将所做的实验记录下来,每一章都会介绍一种硬件,以及相关函数。将多个章节结合起来,是为一篇,每一篇结尾,都会做一个综合性的小项目。它将会用到前面章节中所学习的知识。

这是第一篇,我们的目标是做一个机械臂!很酷吧!那么,废话不多说了,我们开始吧!

本系列参考1


Arduino介绍

Arduino不特指某个单片机或是开发环境,实际上泛指整个从软件硬件形成的生态

Arduino基于Arduino IDE进行开发,底层C语言和C++,硬件、代码开源。具有生态丰富跨平台等特点。

【Arduino实验笔记】机械臂篇(一) 控制板载LED灯闪烁_第1张图片


Arduino 开发板

【Arduino实验笔记】机械臂篇(一) 控制板载LED灯闪烁_第2张图片
Arduino常用的开发板有Arduino UNOArduino NanoArduino Mega 2560等。本文使用的是Arduino UNO R3型号开发板,重要参数如下:

  • 芯片:基于Atmel公司ATmega328P单片机
  • 晶振16MHz
  • 数字IO0 - 13,输出数字信号。引脚输出电平电压5V最大输出电流40mA
    • PWM: 3、5、6、9、10、11,带有~
    • 串口:0、1
  • 模拟IO:A0 - A5,具有10位数模转换通道,这也是Arduino的一个优势所在,自带ADC
  • 电源3.3V/5V输出,最大输出电流为150mA
  • 供电:建议12V DC口供电
  • 下载:烧录程序
    • USB:下载接口。
    • ICSP:下载接口。

Arduino IDE

C语言编写程序,同时兼具C++面对对象的思想。由于Arduino IDE具有丰富的库函数,还有许多封装好的模块,所以入门十分简单。IDE界面如下:
【Arduino实验笔记】机械臂篇(一) 控制板载LED灯闪烁_第3张图片
界面十分简洁,左上角一键编译上传右上角附带串口调试工具

这里给出 Arduino IDE 官网链接。Arduino IDE的安装不是本文的重点,所以不再赘述。


配置开发板及端口

打开Arduino IDE,依次打开工具——开发板——Arduino AVR Boards——Arduino Uno

设置端口前先将开发板USB数据线连好,并接到电脑端。依次打开工具——端口——COMxx端口号


硬件介绍

LED介绍

LED的详细介绍请参考另一篇博客《51单片机LED篇》。因为Arduino板载了一个可以控制的LED灯(丝印为L),所以本文无需外接LED,直接对其进行逻辑控制。


原理图

找到Arduino开发板丝印 L L LLED默认正极接在数字IO的13号引脚上,负极接地(当然,板载经过限流电阻)。也就是说,我们只需要操控13号引脚电平高低,即可控制LED的亮灭。


软件实现

Arduino IDE中的程序可以使用C/C++来书写


库函数介绍

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

  • 引脚输出输入初始化
    void pinMode(uint8_t pin, uint8_t mode)
    • pin: 引脚号
    • mode: 引脚模式
      • 输出: OUTPUT
      • 输入: INOUT
      • 输入上拉:INPUT_PULLUP
  • 数字引脚写入
    void digitalWrite(uint8_t pin, uint8_t val)
    • pin: 引脚号
    • val: 电平高低
      • 低电平: LOW
      • 高电平: HIGH
  • 延时函数
    void delay(unsigned long ms)
    • ms: 延时毫秒数

程序代码

// 2022.11.12
// Author:Qiu

#define LED_L 13    // 引脚号
#define SPEED 1000  // 控制闪烁间隔1000ms

// 参数初始化,仅执行一次
void setup() {
  // 初始化数字引脚13作为输出
  pinMode(LED_L, OUTPUT);
}

// 主循环
void loop() {
  digitalWrite(LED_L, HIGH);  // 向13引脚写入高电平
  delay(SPEED);               // 等待
  digitalWrite(LED_L, LOW);   // 向13引脚写入低电平
  delay(SPEED);               // 等待
}

编译成功后,上传至板子中,实验现象LED以1Hz的频率闪烁。

当然,同样的实现可以在Arduino自带的示例中找到,路径为:文件 - 示例 - Basics - Blink。我建议大家可以自己先实现一遍,毕竟后面我们将会涉及比较复杂的应用,光靠示例是无法满足我们的需求的。


下一篇的目标

我们希望更加高级的控制LED灯,比如,给它加一个物理开关。我们下一篇再见!


总结

通过本章,你学会了如何控制数字IO口输出高低电平,并借助延时函数完成了LED的闪烁实验。这一点非常重要,它将会成为我们未来机械臂中的指示灯。请不要轻视这小小的第一步!


  1. B站:太极创客 ↩︎

你可能感兴趣的:(Arduino,单片机,物联网)