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 ...
随机推荐
- C++'s most vexing parse
本文地址 https://www.cnblogs.com/wanger-sjtu/p/16876846.html C++'s most vexing parse 是 Scott Meyers 在其名著 ...
- PyTorch与机器学习中的随机化:减少噪声和随机性
目录 2.1 基本概念解释 2.2 技术原理介绍 2.3 相关技术比较 3. 实现步骤与流程 3.1 准备工作:环境配置与依赖安装 3.2 核心模块实现 3.3 集成与测试 4. 应用示例与代码实现讲 ...
- 【翻译】rocksdb write stall
翻译自官方wiki:https://github.com/facebook/rocksdb/wiki/Write-Stalls 转载请注明出处:https://www.cnblogs.com/morn ...
- JavaCV人脸识别三部曲之一:视频中的人脸保存为图片
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 关于人脸识别 本文是<JavaCV人脸识别三部曲 ...
- List 接口及其常用方法
List 接口基本介绍 List接口是Collection接口的子接口,其主要特点如下: List中元素有序,是按照元素的插入顺序进行排序的.每个元素都有一个与之关联的整数型索引(索引从 0 开始), ...
- 特性介绍 | MySQL测试框架 MTR 系列教程(四):语法篇
作者:卢文双 资深数据库内核研发 序言: 以前对 MySQL 测试框架 MTR 的使用,主要集中于 SQL 正确性验证.近期由于工作需要,深入了解了 MTR 的方方面面,发现 MTR 的能力不仅限于此 ...
- 论文日记三:ResNet
导读 ResNet在ILSVRC 2015竞赛中大放异彩,其核心模块residual block使得卷积网络模型深度提高一个数量级,到达上百.上千层.在今天cv领域我们也经常用到它或它的变种,pape ...
- 2020 OC项目集成flutter
看了网上基本上都是相同套路,但是到我这就不行了,终于解决了, 主要就是profile文件编写, 1.在oc项目的同级目录项创建flutter模块 就是在oc项目的父级目录下,执行 flutter cr ...
- Day07_Java_作业
A:简答题 1. 构造方法的作用是什么?构造方法的特点是什么?构造方法的注意事项? 构造方法中可不可以写return语句呢? 2. 一个类的缺省构造方法可以有参数吗? 3. 静态代码块和构造代码块的特 ...
- UE构建基础和实践:四、使用脚本打包
序言 使用UE版本为UE5.20 在实际项目中,我们常常使用自动化脚本来进行构建,它可以增加我们的生产效率,并降低人为操作带来的失误风险. BuildGraph BuildGraph UE官方提供的构 ...
1
11
2
