Arduino入门教程
Arduino入门教程
Arduino是一款简单易学的开源电子原型平台,包含硬件(各种型号的Arduino板)和软件(Arduino IDE)。它通过各种各样的传感器来感知环境,再通过控制灯光、电机和其他的装置来完成很多自动控制任务,在创客里非常受欢迎。
1. 硬件
Arduino有多个型号,标准版uno,小型nano,大型mega 2560。
uno电路板各部分介绍
2. 软件
Arduino的编程语言是建立在C/C++基础上的,它通过封装好的API,使得程序中的语句更容易被理解,不用理会单片机中繁杂的寄存器配置,就能直观的控制Arduino,增强程序的可读性的同时,也提高了开发效率。
Arduino程序基本结构由setup() 和loop() 两个函数组成。
setup()
Arduino控制器通电或复位后,即会开始执行setup() 函数中的程序,该部分只会执行一次。通常在setup() 函数中完成Arduino的初始化设置,如配置I/O口状态,初始化串口等操作。loop()
在setup() 函数中的程序执行完后,Arduino会接着执行loop() 函数中的程序。loop()函数是一个死循环,其中的程序会不断的重复运行。通常在loop() 函数中完成程序的主要功能,如驱动各种模块,采集数据等。
Arduino IDE是官方提供的编程环境,编写代码,上传到arduino。支持windows, linux, mac。官网下载 https://www.arduino.cc/en/software
此外,还有一些图形化编程环境,如米思齐mixly,通过拖拽积木块的形式编程,界面对初学者更友好。https://mixly.org/
3. 示例程序
Arduino IDE自带了很多示例程序,是很好的入门材料。例如01.Basics里的Blink,使用板载的13引脚LED,交替亮灭。
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
4. 编译上传
1) 编译代码:项目->编译/验证,或工具栏第1个按钮(✓)。
通过编译检查代码是否正确,如有错误根据IDE底部的消息修改代码。编译通过的代码才可以上传到arduino板。
2)选择开发版类型:工具->开发板(以Arduino Nano为例)
3)选择处理器:工具->处理器
Uno只有一种处理器不需要选,Nano处理器有2个版本,新的选ATmega328P,旧的选ATmega328P (old bootloader)。
如果上传失败,提示"avrdude: stk500_recv(): programmer is not responding",一般都是处理器版本不对,切换成另一个试试。
4)指定端口
如不清楚是哪个,到设备管理器里查看。进口原装板的驱动在安装IDE时就装了,国产兼容板使用CH340串口芯片,需要单独安装驱动。
http://www.wch.cn/downloads/CH341SER_EXE.html

5)上传程序:项目->上传,或工具栏第2个按钮(->)。
上传成功,底部状态栏会提示,代码就开始在arduino板上运行了。
5. 其他
- 控制电机,PWM调速,常用在智能车上
- 控制舵机,实现角度控制,常用在机器人/机械臂上
- 一些有意思的项目,如OTTO跳舞机器人 https://www.ottodiy.com/

4397
667
2万+
7804
1173
3521
4753
1万+Arduino入门教程的更多相关文章
- Arduino入门教程--课前准备--Arduino驱动安装及1.0 IDE菜单介绍
编译器版本:Arduino 1.0实验器件:ocrobot mango控制板(Arduino兼容)一块 Arduino控制板到手后,首先需要在电脑上把驱动装上,这样才可以进行各种实验. 第一步需要把A ...
- Arduino可穿戴开发入门教程(大学霸内部资料)
Arduino可穿戴开发入门教程(大学霸内部资料) 试读下载地址:链接:http://pan.baidu.com/s/1mg9To28 密码:z5v8 介绍:Arduino可穿戴开发入门教程(大学霸内 ...
- 指示灯组与3个复位按钮的介绍Arduino Yun快速入门教程
指示灯组与3个复位按钮的介绍Arduino Yun快速入门教程 1.4.2 指示灯组 指示灯组的放大图如图1.5所示. 图1.5 指示灯组 各个指示灯对应的功能如下: q RX:对应于0号端口, ...
- Arduino可穿戴开发入门教程Windows平台下安装Arduino IDE
Arduino可穿戴开发入门教程Windows平台下安装Arduino IDE Windows平台下安装Arduino IDE Windows操作系统下可以使用安装向导和压缩包形式安装.下面详细讲解这 ...
- Arduino可穿戴开发入门教程Arduino开发环境介绍
Arduino可穿戴开发入门教程Arduino开发环境介绍 Arduino开发环境介绍 Arduino不像我们使用的PC端操作系统一样,可以直接在操作系统中安装软件为操作系统编程.Arduino的软件 ...
- Arduino可穿戴开发入门教程LilyPad和LilyPad Simple的介绍
Arduino可穿戴开发入门教程LilyPad和LilyPad Simple的介绍 LilyPad和LilyPad Simple的介绍 LilyPad和LilyPad Simple是LilyPad微控 ...
- Arduino可穿戴开发入门教程LilyPad介绍
Arduino可穿戴开发入门教程LilyPad介绍 Arduino输出模块 LilyPad官方共提供了4种输出模块,他们分别是单色LED模块(图1.5).三色LED模块(图1.6).蜂鸣器模块(图1. ...
- wepack+sass+vue 入门教程(三)
十一.安装sass文件转换为css需要的相关依赖包 npm install --save-dev sass-loader style-loader css-loader loader的作用是辅助web ...
- wepack+sass+vue 入门教程(二)
六.新建webpack配置文件 webpack.config.js 文件整体框架内容如下,后续会详细说明每个配置项的配置 webpack.config.js直接放在项目demo目录下 module.e ...
- wepack+sass+vue 入门教程(一)
一.安装node.js node.js是基础,必须先安装.而且最新版的node.js,已经集成了npm. 下载地址 node安装,一路按默认即可. 二.全局安装webpack npm install ...
随机推荐
- 【对比】ChatGPT Plus与ChatGPT实操对比体验
前言 缘由 20美刀大洋充值ChatGPT Plus,必须分享让它物尽其用 应单位追求科技前沿需求,以及花钱就是香的原则.遂找了远在他乡的高中老同学,斥资20美刀为公司身先士卒怒充会员.秉承分享至上原 ...
- 前端Vue自定义顶部搜索框 热门搜索 历史搜索 用于搜索跳转使用
前端Vue自定义顶部搜索框 热门搜索 历史搜索 用于搜索跳转使用, 下载完整代码请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plugin?id=13128 效 ...
- [ESP] 使用Ayla API Reference配网和连Ayla云
示例用的文档及链接 US Dev Dashboard(查看oem-id和oem-key) https://dashboard-dev.aylanetworks.com/ Ayla API Refere ...
- Hexo、Typecho博客添加旅行足迹网页
本文部署的足迹地图,地址如下: http://www.aomanhao.top/index.php/archives/183/ jVectorMap JVectorMap 是一个优秀的.兼容性强的 j ...
- Android文本编辑框点击弹出选择日期框
前言: 个人Android小白,写到这了,就记录一下,希望可以帮助到大家. Android输入框点击弹出日期选择框 // 获取 文本编辑框控制权 EditText returnTime = findV ...
- debezium同步postgresql数据至kafka
0 实验环境 全部部署于本地虚拟机 debezium docker部署 postgresql.kafka本机部署 1 postgresql 1.1 配置 设置postgres密码为123 仿照exam ...
- 2023牛客暑期多校训练营2 DEFGHIK
比赛链接 D 题解 知识点:贪心. 首先,因为第一个人喜欢吃的可能会被后面的人选中,因此直接选最喜欢吃的可能会浪费机会.所以,我们考虑先看后面的人怎么选,就是倒着贪心,我们考虑证明. 假设当前剩下的菜 ...
- [自然语言处理] 自然语言处理库spaCy使用指北
spaCy是一个基于Python编写的开源自然语言处理库.基于自然处理领域的最新研究,spaCy提供了一系列高效且易用的工具,用于文本预处理.文本解析.命名实体识别.词性标注.句法分析和文本分类等任务 ...
- 三万字盘点Spring 9大核心基础功能
大家好,我是三友~~ 今天来跟大家聊一聊Spring的9大核心基础功能. 其实最近有小伙伴私信问我怎么不写文章了,催更来了 其实我不是不写,而是一直在写这篇文章,只不过令我没想到的是,从前期的选题.准 ...
- PLE-实践小结-2308-cnblogs
某场景介绍 前状:三模型,权重融合 解决问题:融合目标行为,充分利用样本信息,节省资源开销. 当前效果 主场景人均真实曝光+0.26%,不显著:子场景人均真实曝光+0.35%,不显著 千曝互动+2.6 ...
1
11
2
