【Arduino实验笔记】机械臂篇(一) 控制板载LED灯闪烁
文章目录
- 前言
- Arduino介绍
- Arduino 开发板
- Arduino IDE
- 配置开发板及端口
- 硬件介绍
- LED介绍
- 原理图
- 软件实现
- 库函数介绍
- 程序代码
- 下一篇的目标
- 总结
前言
很早之前就买了一块Arduino的板子,但一直吃灰到现在。最近花时间学习了一下,发现这块板子简直是小白的必备入门板(底层高度封装,资料丰富)。当然,Arduino虽然简单,这并不影响它强大的功能,相信在学习的过程中,你能收获创造的快乐。
我习惯将所做的实验记录下来,每一章都会介绍一种硬件,以及相关函数。将多个章节结合起来,是为一篇,每一篇结尾,都会做一个综合性的小项目。它将会用到前面章节中所学习的知识。
这是第一篇,我们的目标是做一个机械臂!很酷吧!那么,废话不多说了,我们开始吧!
本系列参考1
Arduino介绍
Arduino不特指某个单片机或是开发环境,实际上泛指整个从软件到硬件形成的生态。
Arduino基于Arduino IDE进行开发,底层是C语言和C++,硬件、代码开源。具有生态丰富,跨平台等特点。
Arduino 开发板
Arduino常用的开发板有Arduino UNO、Arduino Nano、Arduino Mega 2560等。本文使用的是Arduino UNO R3型号开发板,重要参数如下:
- 芯片:基于Atmel公司的ATmega328P单片机
- 晶振:16MHz
- 数字IO:0 - 13,输出数字信号。引脚输出电平电压为5V,最大输出电流为40mA。
- PWM: 3、5、6、9、10、11,带有
~
- 串口:0、1
- PWM: 3、5、6、9、10、11,带有
- 模拟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数据线连好,并接到电脑端。依次打开工具——端口——COMx。x为端口号。
硬件介绍
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的闪烁实验。这一点非常重要,它将会成为我们未来机械臂中的指示灯。请不要轻视这小小的第一步!
B站:太极创客 ↩︎
【Arduino实验笔记】机械臂篇(一) 控制板载LED灯闪烁相关推荐
- 在pcduino开发板上写驱动控制板载LED的闪烁
由于关于pcduino的资料比较少,所以这篇文章是参考了pcduino爱好者论坛的一篇教程<手把手教你用A10点灯>,并且系统的结合了linux驱动的开发步骤.读完这篇文章,你不但可以对p ...
- 【正点原子FPGA连载】第八章LED灯闪烁实验 -摘自【正点原子】领航者ZYNQ之FPGA开发指南_V2.0
1)实验平台:正点原子领航者ZYNQ开发板 2)平台购买地址:https://item.taobao.com/item.htm?&id=606160108761 3)全套实验源码+手册+视频下 ...
- 【正点原子FPGA连载】 第八章 LED灯闪烁实验摘自【正点原子】DFZU2EG/4EV MPSoC 之FPGA开发指南V1.0
1)实验平台:正点原子MPSoC开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=692450874670 3)全套实验源码+手册+视频下载地址: h ...
- 基于Arduino的PS2机械臂遥控小车(L298N)傻瓜教程
基于Arduino的PS2机械臂遥控小车(L298N)傻瓜教程 1.材料 L298N.Arduino板.数据线.舵机(SG90).机械臂.亚克力板.电机.PS2.杜邦线.电池(7.4V).螺丝. 2. ...
- 实验一 机械臂正逆运动学
实验一 机械臂正逆运动学 一.实验目的 1.巩固正逆运动学基础概念. 2.了解正逆运动学在机械臂控制中的实际用途. 二.实验内容 1.机械臂模型DH参数的计算. 2.机械臂正运动学的计算. 3.机械臂 ...
- LabVIEW控制Arduino LED灯闪烁(基础篇—2)
目录 1.实验目的 2.实验环境 3.程序设计 4.实验演示 1.实验目的 利用LIAT中的数字I/O函数库,通过LabVIEW控制Arduino Uno控制板上D13管脚上LED灯,实现等间隔闪烁. ...
- Arduino基础入门篇06—流动的LED灯
上一篇介绍了Arduino数字I/O引脚及相关函数,并点亮了板载LED灯.本篇将使用面包板搭建电路,多个LED灯配合显示流动效果. 1. 实验材料 Uno R3开发板 配套USB数据线 面包板及配套连 ...
- 《STM32从零开始学习历程》——USART串口通讯实验篇2——指令控制LED灯实验
<STM32从零开始学习历程>@EnzoReventon USART串口通讯实验篇2--指令控制LED灯实验 本实验是在<USART串口通讯实验篇1--中断接收与发送>的基础上 ...
- Zigbee之旅(二):第一个CC2430程序——LED灯闪烁实验
Zigbee之旅(二):第一个CC2430程序--LED灯闪烁实验 一.承上启下 在上一篇文章<Zigbee之旅(一):开天辟地>中,我们简要的介绍了Zigbee,以及其开发环境的搭建.O ...
- Arduino 蜂鸣器播放音乐LED灯闪烁
一.实验所需组件: led灯 三脚蜂鸣器 面包板 Arduino开发板 杜邦线 二.实验原理 蜂鸣器实现音乐播放: 控制好频率和节拍,就能演奏出好听的音乐.因此,在实验之前要先弄清楚各音调的频率.可参 ...
最新文章
- 看完这篇还不懂Redis的RDB持久化,你们来打我!
- NLPIR智能语义:大数据挖掘助力人工智能快速发展
- 关于JS数组API的总结
- 机器学习笔记:交叉验证
- Apache+tomcat+mod_jk+centos6.2负载均衡集群配置--转载
- SQLServer中连接个数及超时问题
- 特征提取(Feature Detection)之——HOG (Histogram of Oriented Gradient)特征
- java堆和客栈_java中堆和栈的区别分析
- vs2015web项目无法加载64位c++的dll,提示试图加载不正确的格式
- ios 监听一个控制器的属性_ios - kvo观察者示例(监听类的属性变化)
- spring mvc 转发跳转
- mysql 密码忘了_mysql8.0以上版本安装配置及忘记密码时重置
- Eclipse、Tomcat安装配置及部署教程
- 计算机组成结构 cpu、主存储器、主存、辅存、缓存与内存、硬盘的关系与速度比较
- Android UI 显示工具——HierarchyViewer工具
- (2020年最新版)App Store 审核指南
- git 创建分支并上传代码
- live2d 3行代码 为网站添加萌萌哒看板娘
- 2D-X光图像重建3D-CT图像项目总结—后续补充
- Centos7使用xrdp进行远程桌面访问
热门文章
- Vue 03 day(组件传参)
- Stonepeak Infrastructure Partners和Ironclad Energy Partners宣布以2.6亿美元的企业价值将罗切斯特地区能源资产出售给SDCL Energy Ef
- 新手学开车,太全了,不看后悔奥
- 深圳实验室装修室内总结方案
- 【MySQL】#2 - 不能通过show命令看到定义表格的样子
- nodejs koa2
- 计算机高中学校在哪,美国计算机较强的高中学校!寄宿学校任你挑!
- 不对,氨三乙酸的分子式是C6H9NO6
- C语言:位运算符----与(),或(|),非(~),异或(^),左移(<<)和右移(>>)
- Linux从头开始学--学习笔记8--系统管理,yast、rpm、dpkg、yum,用户和组,root、su、sudo