文章目录

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

前言

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

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

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

本系列参考1


Arduino介绍

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

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


Arduino 开发板


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 IDE 官网链接。Arduino IDE的安装不是本文的重点,所以不再赘述。


配置开发板及端口

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

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


硬件介绍

LED介绍

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


原理图

找到Arduino开发板丝印为 L L L 的LED默认正极接在数字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实验笔记】机械臂篇(一) 控制板载LED灯闪烁相关推荐

  1. 在pcduino开发板上写驱动控制板载LED的闪烁

    由于关于pcduino的资料比较少,所以这篇文章是参考了pcduino爱好者论坛的一篇教程<手把手教你用A10点灯>,并且系统的结合了linux驱动的开发步骤.读完这篇文章,你不但可以对p ...

  2. 【正点原子FPGA连载】第八章LED灯闪烁实验 -摘自【正点原子】领航者ZYNQ之FPGA开发指南_V2.0

    1)实验平台:正点原子领航者ZYNQ开发板 2)平台购买地址:https://item.taobao.com/item.htm?&id=606160108761 3)全套实验源码+手册+视频下 ...

  3. 【正点原子FPGA连载】 第八章 LED灯闪烁实验摘自【正点原子】DFZU2EG/4EV MPSoC 之FPGA开发指南V1.0

    1)实验平台:正点原子MPSoC开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=692450874670 3)全套实验源码+手册+视频下载地址: h ...

  4. 基于Arduino的PS2机械臂遥控小车(L298N)傻瓜教程

    基于Arduino的PS2机械臂遥控小车(L298N)傻瓜教程 1.材料 L298N.Arduino板.数据线.舵机(SG90).机械臂.亚克力板.电机.PS2.杜邦线.电池(7.4V).螺丝. 2. ...

  5. 实验一 机械臂正逆运动学

    实验一 机械臂正逆运动学 一.实验目的 1.巩固正逆运动学基础概念. 2.了解正逆运动学在机械臂控制中的实际用途. 二.实验内容 1.机械臂模型DH参数的计算. 2.机械臂正运动学的计算. 3.机械臂 ...

  6. LabVIEW控制Arduino LED灯闪烁(基础篇—2)

    目录 1.实验目的 2.实验环境 3.程序设计 4.实验演示 1.实验目的 利用LIAT中的数字I/O函数库,通过LabVIEW控制Arduino Uno控制板上D13管脚上LED灯,实现等间隔闪烁. ...

  7. Arduino基础入门篇06—流动的LED灯

    上一篇介绍了Arduino数字I/O引脚及相关函数,并点亮了板载LED灯.本篇将使用面包板搭建电路,多个LED灯配合显示流动效果. 1. 实验材料 Uno R3开发板 配套USB数据线 面包板及配套连 ...

  8. 《STM32从零开始学习历程》——USART串口通讯实验篇2——指令控制LED灯实验

    <STM32从零开始学习历程>@EnzoReventon USART串口通讯实验篇2--指令控制LED灯实验 本实验是在<USART串口通讯实验篇1--中断接收与发送>的基础上 ...

  9. Zigbee之旅(二):第一个CC2430程序——LED灯闪烁实验

    Zigbee之旅(二):第一个CC2430程序--LED灯闪烁实验 一.承上启下 在上一篇文章<Zigbee之旅(一):开天辟地>中,我们简要的介绍了Zigbee,以及其开发环境的搭建.O ...

  10. Arduino 蜂鸣器播放音乐LED灯闪烁

    一.实验所需组件: led灯 三脚蜂鸣器 面包板 Arduino开发板 杜邦线 二.实验原理 蜂鸣器实现音乐播放: 控制好频率和节拍,就能演奏出好听的音乐.因此,在实验之前要先弄清楚各音调的频率.可参 ...

最新文章

  1. 看完这篇还不懂Redis的RDB持久化,你们来打我!
  2. NLPIR智能语义:大数据挖掘助力人工智能快速发展
  3. 关于JS数组API的总结
  4. 机器学习笔记:交叉验证
  5. Apache+tomcat+mod_jk+centos6.2负载均衡集群配置--转载
  6. SQLServer中连接个数及超时问题
  7. 特征提取(Feature Detection)之——HOG (Histogram of Oriented Gradient)特征
  8. java堆和客栈_java中堆和栈的区别分析
  9. vs2015web项目无法加载64位c++的dll,提示试图加载不正确的格式
  10. ios 监听一个控制器的属性_ios - kvo观察者示例(监听类的属性变化)
  11. spring mvc 转发跳转
  12. mysql 密码忘了_mysql8.0以上版本安装配置及忘记密码时重置
  13. Eclipse、Tomcat安装配置及部署教程
  14. 计算机组成结构 cpu、主存储器、主存、辅存、缓存与内存、硬盘的关系与速度比较
  15. Android UI 显示工具——HierarchyViewer工具
  16. (2020年最新版)App Store 审核指南
  17. git 创建分支并上传代码
  18. live2d 3行代码 为网站添加萌萌哒看板娘
  19. 2D-X光图像重建3D-CT图像项目总结—后续补充
  20. Centos7使用xrdp进行远程桌面访问

热门文章

  1. Vue 03 day(组件传参)
  2. Stonepeak Infrastructure Partners和Ironclad Energy Partners宣布以2.6亿美元的企业价值将罗切斯特地区能源资产出售给SDCL Energy Ef
  3. 新手学开车,太全了,不看后悔奥
  4. 深圳实验室装修室内总结方案
  5. 【MySQL】#2 - 不能通过show命令看到定义表格的样子
  6. nodejs koa2
  7. 计算机高中学校在哪,美国计算机较强的高中学校!寄宿学校任你挑!
  8. 不对,氨三乙酸的分子式是C6H9NO6
  9. C语言:位运算符----与(),或(|),非(~),异或(^),左移(<<)和右移(>>)
  10. Linux从头开始学--学习笔记8--系统管理,yast、rpm、dpkg、yum,用户和组,root、su、sudo