动手玩转Arduino B
Arduino使用教程和典型范例

扩展 I/O
gh 与 toHigh 之间。
• pow(base, exponent) 开方函数,base 的 exponent 次方。 • sq(x) 平方 • sqrt(x) 开根号
三角函数
• sin(rad) • cos(rad) • tan(rad)
随机数函数
• randomSeed(seed) 随机数端口定义函数,seed 表示读模拟口 analogRead(pin)函数 。 • long random(max) 随机数函数,返回数据大于等于 0,小于 max。 • long random(min, max) 随机数函数,返回数据大于等于 min,小于 max。
Arduino 使用教程
梦厂
北京龙凡汇众机器人科技有限公司 E_mail: service@
Arduino 使用教程
http://
第一课 Arduino 语言
DreamFactory
2
Arduino 语言是建立在 C/C++基础上的,其实也就是基础的 C 语言,Arduino 语言只不过把 AVR 单片机(微控制 器)相关的一些寄存器参数设置等都函数化了,不用我们去了解他的底层,让不太了解 AVR 单片机(微控制器)的 朋友也能轻松上手。
arduinoccenreferencelibrarieseepromeeprom读写程序库ethernet以太网控制器程序库liquidcrystallcd控制程序库servo舵机控制程序库softwareserial任何数字io口模拟?口程序库stepper步进电机控制程序库wiretwii2c总线程序库matrixled矩阵控制程序库spriteled矩阵图象处?控制程序库第二课arduino的数字模拟端口arduino控制器内带bootloader程序是系统上电后运?的第一段代码就好比pc机bios中的程序启动就进?自检配置端口等等当然单片机就是靠烧写熔丝位来设定上电从boot区启动的使用这个程序就可以直接把从?口发来的程序存放到flash区中
Arduino入门版使用教程

Arduino入門版使用教程目錄介紹篇 (1)一、Arduino 基礎套裝介紹 (2)1、什麼是Arduino 基礎套裝? (2)2、元件清單 (2)二、Arduino 介紹 (4)1、什麼是Arduino? (4)2、特色描述 (4)3、性能描述 (4)三、Arduino C 語言介紹 (6)1、關鍵字和符號 (6)2、結構 (9)3、功能 (9)四、Arduino 使用介紹 (11)1、準備好你的Arduino 板 (11)2、下載Arduino 開發環境 (13)3、安裝USB 驅動 (13)4、連接LED 燈電路 (17)5、打開arduino 開發環境 (18)6、打開已有程式 (19)7、編譯程式 (20)8、下載程式 (23)五、麵包板使用介紹 (30)1、麵包板介紹 (30)2、麵包板的使用 (30)實驗篇 (34)第一節多彩led 燈實驗 (35)一、發光二極管介紹 (35)二、簡單的控制一個led 燈的閃爍實驗 (39)三、廣告燈效果實驗 (41)第二節蜂鳴器實驗 (48)一、蜂鳴器介紹 (48)二、蜂鳴器模擬救護車警笛聲音實驗 (50)第三節數碼管實驗 (54)一、數碼管介紹 (54)二、數碼管顯示數字的實驗 (56)第四節按鍵實驗 (63)一、按鍵介紹 (63)二、按鍵控制led 等亮滅實驗 (65)三、擲骰子實驗 (67)第五節傾斜開關實驗 (74)一、傾斜開關介紹 (74)二、傾斜開關控制led 燈的亮滅 (75)第六節光控聲音實驗 (79)一、光敏電阻介紹 (79)二、光控聲音實驗 (80)第七節火焰報警實驗 (84)一、火焰傳感器介紹 (84)二、火焰報警實驗 (85)第八節搶答器實驗 (90)第九節溫度報警實驗 (98)一、溫度傳感器介紹 (98)二、溫度報警實驗 (99)第十節紅外遙控 (103)一、紅外接收頭介紹 (103)二、紅外遙控實驗 (104)介紹篇一、Arduino 基礎套裝介紹1、什麼是Arduino基礎套裝?Arduino基礎套裝是精心為初學者設計的一款學習工具。
arduino入门教程

Arduino是什么?开始讲之前跟大家普及一个知识点,Arduino是一个意大利品牌。
Arduino是一个开放源码电子原型平台,拥有灵活、易用的硬件(各种开发板)和软件(arduino IDE也就是编程器)。
吉安优创电子科技有限公司作为arduino国内为数不多的正版授权公司,坚持正版。
打击抵制各类盗版,改版,兼容版的侵权行为,也奉劝广大消费者不要去购买,以免带来不必要的麻烦。
Arduino专为设计师,工艺美术人员,业余爱好者,以及对开发互动装置或互动式开发环境感兴趣的人而设的。
Arduino能通过各种各样的传感器来感知环境,通过控制灯光、马达和其他的装置来反馈、影响环境。
板子上的微控制器可以通过Arduino的编程语言来编写程序,编译成二进制文件,烧录进微控制器对Arduino的编程是利用 Arduino编程语言 (基于 Wiring)和Arduino开发环境(based on Processing)来实现的。
基于Arduino的项目,可以只包含Arduino,也可以包含Arduino和其他一些在PC上运行的软件,他们之间进行通信 (比如 Flash, Processing, MaxMSP)来实现。
如何学习arduino认识Arduino UNOArduino UNO是Arduino入门的最佳选择,在编著本书时,其最新的版本为UNO R3,本书大部分内容都是基于Arduino UNO R3写成的。
Arduino UNO的详细组成信息如下图所示。
1. 电源(Power)Arduino UNO有三种供电方式:●通过USB接口供电,电压为5V;●通过DC电源输入接口供电,电压要求7~12V;●通过电源接口处5V或者VIN端口供电,5V端口处供电必须为5V,VIN端口处供电为7~12V。
2.指示灯(LED)Arduino UNO带有4个LED指示灯,作用分别是:● ON,电源指示灯。
当Arduino通电时,ON灯会点亮。
好玩的Python——Python玩转Arduino

好玩的Python——Python玩转Arduino关于Python语言的介绍安装请参考廖雪峰的Python教程Python是一门解释型语言,虽然不能够像c语言一样编译上传到Arduino——什么你说MicroPython,我们再说Arduino呢——仍然是可以跟Arduino的玩耍的,就像scratch一样。
前言Python玩转arduino的方式跟mblock的在线编程模式差不多的,都是先给arduino写入一个固件,然后操作,不同的是mblock是通过积木来向arduino下指令,这里我们用Python.mblock对arduino在线编程的步骤1.连接arduino到电脑2.打开mblock软件3.选择对应端口4.选择合适的控制板然后我们就可以愉快的编程了.用Python玩转Arduino首先你要安装Python,并且确保安装了pip然后我们要用到一个代码块Python Arduino 原型API第二版.This is a project based on theoriginal Python Arduino Prototyping API. Istarted a fork and after a while the wholething was getting too different to make apull request so I just put it here. The oldproject had wierd things going on tohandle the communication, where I rely onparseInt() to do the work for me. Therewere also problems with analogWrite(),which is working in this version.这个代码库呢是基于 Python Arduino Prototyping API,作者复制了一份,做了很多改动,跟原始版本相差很大,于是就成了一个独立的版本.这个版本的通讯方式跟老版本不同,主要是用到了parseInt()函数.当然这个版本不是很完善, analogWrite()用起来可能会有问题——不过凡是代码的问题,都可以修复的不是吗.python玩转arduino的方法有很多,后面我在完善介绍别的.上传固件这样准备工作就已经完成了,那么让我们开始愉快的玩耍把.这个过程跟在mblock里连接硬件,最后上传固件本质是一样的,形式不同而已. 开始玩耍把学习编程总是从Hello world!开始,而学习硬件总是从点亮LED灯开始,那么今天我们就用这个库来试着点亮一盏LED灯.然后修改代码如下图就可以了.1.from arduino import Arduino2.import time3.4.b = Arduino('COM15')5.# 实例化一个板子6.# 突然很好奇如果我实例多个是否可以?7.pin = 138.9.#declare output pins as a list/tuple10. b.output([pin])11.# 用列表的形式指定哪些针脚12.# 用来当做输出针脚13.14.for x in range(10):15. b.setHigh(pin)16.# 设定pin引脚为高电平17.# b在这里就是指板子18.time.sleep(1)19.# 利用time库中的sleep函数20.print b.getState(pin)21.# 这个只是用来打印输出状态22. b.setLow(pin)23.# 这顶引脚pin为低电平24.print b.getState(pin)25.time.sleep(1)26.27. b.close()快看看Arduino板子上自带的13号led灯是不是开始闪烁了呢?这种方法不是很好玩,这个代码封装的比较麻烦,相比于树莓派最新版的GIPO库,差的太多,最新的 gpiozero真的超好用的.后面介绍.通过上面的代码就可以跟arduino愉快的玩耍了注意:b = Arduino('COM15')引号里面代表的是具体通过那个端口跟arduino进行通讯,这里我的是'COM15'端口,大家要注意.close()函数函数的作用是关闭串口链接,释放资源,重新运行代码的时候不需要重新插拔串口,不然就得重新插拔,作为一个好的习惯保留把.点评这个类库做一点小东西足够了,驱动1602液晶屏啊,电机啊什么还不行,舵机和步进电机可以,但是在中小学教学做一些简单的东西足够了.或者是在用树莓派控制arduino的情况下,足够了,当然还有其他方式,未完待续在GitHub上,搜一下以arduino为关键字进行搜索,选择Python语言的结果,就有很多库可以用.慢慢找一下总有符合自己风格的.可以看到JavaScript的项目也很多啊,前端的福音啊,感觉JavaScript现在都快逆天了.可以看到很多甚至是HTML项目,应该是网页控制arduino,webarduino这种。
(完整word版)ARDUINO入门及其简单实验(7例)

ARDUINO入门及其简单实验(7例) (2)1. Arduino硬件开发平台简介 (2)1.1 Arduino的主要特色 (3)1.2 Arduino的硬件接口功能描述 (3)1.3 Arduino的技术性能参数 (4)1.4 电路原理图 (4)2. Arduino软件开发平台简介 (5)2.1 菜单栏 (6)2.2 工具栏 (6)2.3 Arduino 语言简介 (7)3. Arduino开发实例中所用部分器件 (9)1. LED简介 (9)2. 光敏电阻简介 (10)3. 直流电机简介 (10)4. 电位器简介 (10)4. Arduino平台应用开发实例 (11)4.1【实作项目一】利用LED作光敏电阻采样实验 (11)4.2【实作项目二】利用PWM信号控制LED亮度 (13)4.3【实作项目三】单键控制一只LED的亮灭 (15)4.4【实作项目四】利用PWM控制直流电机转速 (17)4.5【实作项目五】利用电位器手控LED亮度 (20)4.6【实作项目六】控制LED明暗交替 (22)4.7【实作项目七】利用光敏电阻控制LED的亮灭 (24)ARDUINO入门及其简单实验(7例)1. Arduino硬件开发平台简介Arduino硬件是一块带有USB的I/O接口板(其中包括13条数字I/O引脚,6通道模拟输出,6通道模拟输入),并且具有类似于Java、C语言的集成开发环境。
Arduino既可以扩展一些外接的电子元器件,例如开关、传感器、LED、直流马达、步进马达或其他输入、输出装置;Arduino也可以独立运行,成为一个可以跟交互软件沟通的接口装置,例如:Flash、Processing、Max/MSP、VVVV或其他互动软件。
Arduino开发环境IDE全部开放源代码,可以供大家免费下载、利用,还可以开发出更多激发人们制作欲望的互动作品。
如图1和图2所示,分别为Arduino硬件平台的实物图和电路布局图。
arduino教程-----第一课Arduino-概述

Arduino 概述
Arduino是一个基于易用硬件和软件的原型平台(开源)。
它由可编程的电路板(称为微控制器)和称为Arduino IDE(集成开发环境)的现成软件组成,用于将计算机代码写入并上传到物理板。
主要特点是:
∙Arduino板卡能够读取来自不同传感器的模拟或数字输入信号,并将其转换为输出,例如激活电机,打开/关闭LED,连接到云端等多种操作。
∙你可以通过Arduino IDE(简称上传软件)向板上的微控制器发送一组指令来控制板功能。
∙与大多数以前的可编程电路板不同,Arduino不需要额外的硬件(称为编程器)来将新代码加载到板上。
你只需使用USB线即可。
∙此外,Arduino IDE使用C++的简化版本,使其更容易学习编程。
∙最后,Arduino提供了一个标准的外形规格,将微控制器的功能打破成更易于使用的软件包。
Arduino板的类型
根据使用的不同微控制器,可提供各种Arduino板。
然而,所有Arduino板都有一个共同点:它们通过Arduino IDE编程。
差异基于输入和输出的数量(可以在单个板上使用的传感器,LED和按钮的数量),速度,工作电压,外形尺寸等。
一些板被设计为嵌入式,并且没有编程接口(硬件),因此你需要单独购买。
有些可以直接从3.7V电池运行,其他至少需要5V。
以下是可用的不同Arduino板的列表。
基于ATMEGA328微控制器的Arduino板
基于ATMEGA2560微控制器的Arduino板卡
基于AT91SAM3X8E微控制器的Arduino板卡。
Arduino教程
Arduino教程Arduino LWZ 教程V1.0目录一、Arduino编程语言 (4)1、数据类型: (4)2、常量: (4)3、基本语句: (4)(1)if语句 (4)(2)if...else...语句 (5)(3)for语句 (5)(4)break和continue (6)(5)switch case语句 (6)(6)while语句和do...while语句 (7)(7)return语句 (8)(8)运算符 (8)(9)函数 (8)4、结构函数: (8)5、功能函数: (9)(1)数字I/O函数 (9)(2)模拟I/O函数 (9)(3)时间函数 (9)(4)数学函数 (10)(5)数据类型转换函数 (10)(6)三角函数 (10)(7)随机数函数 (10)(8)外部中断函数 (11)(9)中断使能函数 (11)(10)串口收发函数 (11)6、官方库文件: (11)二、Sabertooth电机驱动模块应用实例 (13)1、工作模式 (13)(1)Mode1: Analog Input (13)(2)Mode2:R/C Input (14)(3)Mode3:Simplified serial (14)(4)Mode4:Packetized serial (15)2、应用实例 (17)(1)硬件连接 (17)(2)小车停止函数 (18)(3)小车前进函数 (19)(4)小车后退函数 (19)(5)小车右转函数 (20)(6)小车左转函数 (21)(7)电子积木编程思路 (22)(8)PC软件的编程思路 (25)(1)硬件连接 (25)(2)电子积木运动和初始化函数 (25)(3)电子积木编程思路 (26)4、通过无线模块控制小车 (28)(1)无线通信模块 (28)(2)硬件连接 (28)(3)电子积木编程思路 (28)5、下载程序串口COM和无线数模串口COM2同时控制小车 (30)(1)硬件连接 (31)(2)电子积木编程思路 (31)三、TN901_TEST非接触测温模块应用实例 (34)1、TN901工作原理 (34)2、应用实例 (36)(1)硬件连接 (36)(2)读取温度函数 (36)(3)初始化函数 (38)(4)电子积木编程思路 (38)3、多个TN模块的应用实例 (39)(1)硬件连接 (39)(2)初始化函数 (39)(3)电子积木编程思想:共享函数 (40)(4)电子积木编程思路:独立函数 (42)四、气体传感器模块应用实例 (46)1、应用实例 (46)(1)硬件连接 (46)(2)电子积木编程思路 (46)2、多个气体传感器的应用实例 (47)(1)硬件连接 (47)(2)电子积木编程思路 (47)五、火焰传感器模块应用实例 (48)1、应用实例 (48)(1)硬件连接 (48)(2)电子积木编程思路 (49)2、多个火焰传感器的应用实例 (49)(1)硬件连接 (49)(2)电子积木编程思路 (50)六、DF-miniLTV3寻线模块应用实例 (50)1、DF-miniLTV3寻线工作原理 (50)2、DF-miniLTV3寻线在单黑线的应用实例 (51)(1)硬件连接 (52)(2)Sabertooth模块函数 (52)(3)初始化函数 (52)(4)电子积木编程思路 (52)(1)硬件连接 (54)(2)电子积木编程思路 (54)(2)PC软件的编程思路 (56)七、舵机模块应用实例 (56)1、舵机工作原理 (56)2、应用实例 (57)(1)硬件连接 (57)(2)电子积木编程思路 (57)3、非库形式的应用实例 (59)(1)硬件连接 (59)(2)双舵机驱动函数 (59)八、综合实例 (63)1、驱动2台舵机和电机的应用实例 (63)(1)硬件连接 (63)(2)电子积木编程思路 (64)2、测3个测温度、驱动电机的应用实例 (64)(1)硬件连接 (64)(2)电子积木编程思路 (64)3、测3个测温度、驱动2台舵机和电机的应用实例 (65)(1)硬件连接 (65)(2)电子积木编程思路 (65)4、测2个气体、2个火焰、3个测温度、驱动2台舵机和电机的应用实例 (65)(1)硬件连接 (65)(2)电子积木编程思路 (65)5、寻线、测2个气体、2个火焰、3个测温度、驱动2台舵机和电机的应用实例 (66)(1)硬件连接 (66)(2)电子积木编程思路 (66)一、Arduino编程语言Arduino语言是建立在C/C++基础上的。
Arduino入门版使用教程
Arduino入门版使用教程i目录介绍篇 ........................................................................ . (1)一、Arduino 基础套装介绍 (2)1、什麽是Arduino 基础套装 (2)2、元件清单 ........................................................................ (2)二、Arduino 介绍 ........................................................................ (4)1、什麽是Arduino ................................................................... . (4)2、特色描述 ........................................................................ (4)3、性能描述 ........................................................................ (4)三、Arduino C 语言介绍 ........................................................................ .. 61、关键字和符号 ........................................................................ .. (6)2、结构 ........................................................................ .. (9)3、功能 ........................................................................ (9)四、Arduino 使用介绍 ........................................................................ . (11)1、准备好你的Arduino板 (11)2、下载Arduino 开发环境 (13)3、安装USB 驱动 ........................................................................ . (13)4、连接LED 灯电路 ........................................................................ .. (17)5、打开arduino 开发环境 (18)6、打开已有程式 ........................................................................ . (19)7、编译程式 ........................................................................ . (20)8、下载程式 ........................................................................ . (23)五、面包板使用介绍 ........................................................................ .. (30)1、面包板介绍 ........................................................................ . (30)2、面包板的使用 ........................................................................ (30)ii实验篇 ........................................................................ .. (34)第一节多彩led 灯实验 ........................................................................ .. 35一、发光二极管介绍 ........................................................................ .. (35)二、简单的控制一个led 灯的闪烁实验 (39)三、广告灯效果实验 ........................................................................ .. (41)第二节蜂鸣器实验 ........................................................................ (48)一、蜂鸣器介绍 ........................................................................ .. (48)二、蜂鸣器模拟救护车警笛声音实验 (50)第三节数码管实验 ........................................................................ (54)一、数码管介绍 ........................................................................ (54)二、数码管显示数字的实验 (56)第四节按键实验 ........................................................................ (63)一、按键介绍 ........................................................................ (63)二、按键控制led 等亮灭实验 (65)三、掷骰子实验 ........................................................................ (67)第五节倾斜开关实验 ........................................................................ (74)一、倾斜开关介绍 ........................................................................ (74)二、倾斜开关控制led 灯的亮灭 (75)第六节光控声音实验 ........................................................................ (79)一、光敏电阻介绍 ........................................................................ (79)二、光控声音实验 ........................................................................ (80)第七节火焰报警实验 ........................................................................ (84)一、火焰传感器介绍 ........................................................................ (84)二、火焰报警实验 ........................................................................ (85)第八节抢答器实验 ........................................................................ (90)第九节温度报警实验 ........................................................................ (98)一、温度传感器介绍 ........................................................................ (98)iii二、温度报警实验 ........................................................................ (99)第十节红外遥控 ........................................................................ . (103)一、红外接收头介绍 ........................................................................ . (103)二、红外遥控实验 ........................................................................ . (104)介绍篇一、Arduino 基础套装介绍1、什麽是Arduino基础套装Arduino基础套装是精心为初学者设计的一款学习工具。
Arduino图形编程 ArduBlock零基础教程
ArduBlock 零基础编程套件
---For Arduino
ArduBlock 零基础编程套件是科易互动科技最新推出的一款基于 Arduino 爱好者的图形化编
技 程学习套件,大大降低了爱好者的学习难度,所有编程都可以通过搭积木的方式,把高级的
易 想为您的儿子自制一个《银河战士》手臂炮吗?
想自制一个心率监测器,将每次骑脚踏车的记录存进存储卡吗?
科 想过自制一个能在地面上绘图,能在雪中驰骋的机器人吗?
Arduino 都可以为您实现。
Arduino 真正腾飞的原因是其能够实现将模拟输入转换为数字输入,换言之,您可以将光线, 温度,声音,或者市场上已有的任何低成本的传感器信号输入,Arduino 都能识别。对于数 字传感器,Arduino 支持 SPI( 高速同步串行口)和 I2C 总线。这一功能覆盖市场上 99%的 传感器。使用其他开发平台是不易实现的——想想如果把一块 Beagleboard(伟大的产品) 和 Arduino 绑在一起,仅仅是为了获得传感器的数据,那真是太奇怪了!
那 ArduBlock 究竟怎样使用呢? ArduBlock 模块被分为不同的类别。 “控制”区的功能是一块控制结构。 1.控制
技
科
2.PIN 脚
动
互
易
科
这些模块可以在你的 Arduino 模板作为虚拟引脚。
3.数字,常量和变量
4.运算
4.红色 LED 模块*1
5.黄色 LED 模块*1
6.绿色 LED 模块*1
7.蜂鸣器模块*1
8.LM35 温度传感器*1
9光. 线传感器 *1
10 声音传感器*1
11 旋转电位器模块*1
12.按键模块*1
arduino图形化编程教程
arduino图形化编程教程Arduino是一种开源的硬件平台,用于建立简单电子项目和原型。
使用Arduino时,可以通过编程语言来控制电路和组件,以实现各种功能。
然而,对于初学者来说,编程可能是一项相对困难的任务。
为了帮助那些不熟悉编程的人更容易地使用Arduino,图形化编程工具成为一种非常方便的选择。
在本教程中,我们将介绍如何使用图形化编程来开始Arduino项目。
首先,我们需要准备一些环境。
首先,你需要下载并安装Arduino软件。
这个软件包含了图形化编程工具的基本组件。
然后,你需要连接你的Arduino板到电脑上,并确保他们能够正常通信。
一旦这些准备工作完成,我们可以开始学习图形化编程了。
Arduino图形化编程工具通常被称为“Scratch for Arduino”或者类似的名称。
这些工具提供了一种直观的方式来编写和控制Arduino的代码,而不需要任何的编程经验。
要使用这些工具,你只需要使用鼠标拖拽和连接代码块,就可以实现不同的功能。
首先,让我们了解一些基本的图形编程块。
在大多数图形编程工具中,你会发现以下块:1. 开始:用于开始程序的块。
2. 条件语句:用于根据给定条件的真假执行不同的代码块。
3. 循环语句:用于重复执行一系列代码块,直到满足某个条件。
4. 输入输出:用于读取输入和设置输出的块。
5. 数学运算:用于执行基本的数学运算,如加法、减法等。
6. 变量和列表:用于存储和处理值的块。
7. 事件:用于检测和处理各种事件的块,如鼠标点击、键盘输入等。
在图形化编程工具中,你可以将这些块拖动到编程区域中,并通过连接它们来创建代码。
例如,如果你想让Arduino板上的LED闪烁,你可以使用以下步骤:1. 使用输入输出块来设置LED引脚为输出模式。
2. 使用循环语句来重复执行下面的代码块:a. 使用输入输出块来设置LED引脚为高电压。
b. 使用控制块延迟几秒钟。
c. 使用输入输出块来设置LED引脚为低电压。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 传输距离:开阔地1200m
Arduino与COM模块的连接
• 传感器扩展板 • COM/I2C连接线
COM
动手
• 两台Arduino一组
– 发射组
• APC220一个 • 按钮模块一个
– 接收组
动手
• 观察逆电压——手工发电机
基本控制电路
• 用三极管或者MOS管驱动电机
动手
• 用Arduino控制电机的转动
代码
• 与LED灯控制代码相同
电机速度控制
• 复习PWM
– 高速地开关三极管来实现对电机的控制 – 占空比(打开时间:关闭时间)决定了输出给电机的能量份额 – Arduino的analogWrite函数用来产生PWM信号
• • • • 舵机的控制信号也是一种PWM信号 脉冲周期20毫秒 脉冲高电平持续1毫秒(1000微秒)到2毫秒(2000微秒) 用来控制的脉冲信号必须持续产生,否则很难稳定
注意!
• 舵机对控制脉冲高电平的宽度非常敏感
– 抖动:控制信号每个脉冲的高电平宽度不稳定
• 两个控制脉冲的间隔时间不太敏感
– 只要在可以接受的范围内都可以(14ms到20ms)
动手玩转Arduino ( 四)
运动控制(直流电机/步进电机/舵机) Arduino北京俱乐部
直流电机
• 将电能转换为机械能的一种装置 • 两个电源接头 • 在适当的电压下给予足够的电流时将连续旋转,旋转方向 由电流方向决定 • 普通直流电机转速高力矩小,适用于对力矩要求小的场合
直流减速电机
• 直流减速电机(齿轮减速电机)是在普通直流电机的基础 上,加上配套齿轮减速箱。 • 齿轮减速箱可以提供较低的转速和较大的力矩,不同的减 速比可以提供不同的转速和力矩
双极性步进电机
• 每个线圈都可以两个方向通电 • 四根引线,每个线圈两条 • 使用数字万用表确定线圈分组
– 某两根引线之间能够测量到阻值就属于一组
• 双极性步进电机的步距通常是1.8°
– 转一圈需要200步
工作原理
步进电机驱动器
• 需要不断改变线圈中电流的方向
– 通过H桥式驱动电路完成
• 步进电机驱动模块EasyDriver
• APC220一个 • LED模块一个
• 目标
– 发射组在按钮按下时通过APC220模块发送数据’A’ – 接收组在收到数据’A’时点亮LED
参考代码
发射端代码
接收端代码
APC与PC间的无线连接
• USB转串口适配器
动手
• • • • Arduino作为数据收集器采集传感器数据 通过APC220模块传递给PC机 通过串口监视软件观察数据变化 如何使数据更加可读?
4路RF模块
• 无线发射模块对应于数字输出(Digital Out)
– 将相应引脚设置成高,发出数据
• 无线接收模块对应于数字输入(Digital In)
– 若相应引脚读出为高,接收数据
• 一共4个通道:C1、C2、 C3、 C4
无线发射模块
无线接收模块
动手
• 两台Arduino一组
– 发射组
• RF发射模块一个 • 按钮模块一个
动手
• 用L293D控制电机
Arduino电机驱动扩展板
• 基于L298N,工作原理与L293D一样 • 提供更大工作电流,可以驱动大的直线电机 • 逆电压消除电路
步进电机
• 一种可以精确控制的交流电机 • 由驱动脉冲控制,每个脉冲让电机前进一个固定的角度 (步进角) • 电机速度由单位时间内脉冲的个数决定(脉冲频率) • 功率小,负载能力低,控制相对复杂
线圈A
电机电源和 Arduino 需要共地!
线圈B
地
电机电源
地
步进脉冲
方向
Arduino控制EasyDriver
• 方向控制
– 使用Arduino的数字输出引脚
• 速度控制
– 使用Arduino的数字输出引脚 – 产生脉冲信号
动手
• 用EasyDriver驱动双极性步进电机
升降速曲线
• 步进电机在拖动负载高速移动一定距离并精确定位时一般 来说都应包括五个阶段
SPI SCK,MISO,MOSI,SS (13,12,11,10)
COM RX/TX (0,1)
I2C SDA/SCL (A4,A5)
RF遥控
• 无线射频(Radio Frequency)
– 在空气中传播的电磁波
• 主要包括无线收/发机
– 发射模块 – 接收模块
• 应用场景
– 车辆/家庭防盗 – 遥控玩具
– 接收组
• RF接收模块一个 • 舵机
• 目标
– 多通道无线数据收发 – 模拟遥控汽车,用按钮控制舵机的左右转向
RF数据传输
• 4路RF模块传输的是数字信号
– 简单的开/关、1/0信号
• 无线数传模块可以实现各种数据的传输
– 数字量:开/关 – 模拟量:光线、温度、声音等
APC220
• 通过串口(COM)与Arduino进行沟通 • 数据收发一体,即可以发送数据又可以接收数据
• 只有机械约束,没有电路约束
– 控制脉冲宽度大于920us或者2120us,对电机寿命会有影响 – 驱动电机到达物理上不可能到达的位置
• 千万不能接反电源
– 大部分舵机都可能会烧毁
• 通过实验来找出电机的运动范围
– 大部分舵机的运动区间都在150度左右
Arduino如何控制舵机
• Servo库
– servo.attach(pin)
Arduino 5V
电机电源和 Arduino 需要共地!
Arduino控制L293D
• 速度控制
– 使用Arduino模拟输出引脚 – 将产生的PWM信号连接到L293D的使能引脚
• 方向控制
– – – – – 使用Arduino的数字输出引脚 将产生的数字信号连接到L293D的A、B两个方向引脚 正转:A为高,B为低 反转:A为低,B为高 制动:A、B同时为高或者低
• 在指定的引脚上连接舵机
– servo.write(anlog)
• 将舵机旋转到指定的角度位置
– servo.writeMicroseconds(us)
• 生成指定宽度(微秒)的控制脉冲
动手玩转Arduino ( 五)
RF数据通信 Arduino北京俱乐部
Arduino如何与外界沟通
• • • • Pin COM SPI IIC
– – – – – 启动 加速 高速运行(匀速) 减速 停止
• 不同阶段的脉冲频率应不同
舵机
• 舵机也叫伺服电机(Servo),工作电压一般4.6 – 7.2V • 由直流电机、减速齿轮组、传感器和控制电路组成 • 主要应用在定位控制上
舵机接口
• 标准三线接口
– 电源线 – 地线 – 控制线
控制信号
• 转矩
– 电机的转动力
• 转速
– 每分钟旋转的圈数(转/分,RPM)
注意!
• 电机属于大电流设备,无法用Arduino引脚直接控制
– 区别于LED
• 电机电压高于Arduino的工作电压,注意隔离和接线
– 出错可能导致Arduino烧毁
• 电机在不通电的情况下旋转将产生逆电流(逆电压)
– 发电机的工作原理 – 逆电流的方向与电机工作电流的方向相反 – 逆电流会造成电子设备的损坏
常用参数
• 工作电压(额定电压)
– – – – 驱动电机推荐使用的电压 高于或者低于工作电压时电机也能工作 实际电压 < 额定电压,输出功率变小 实际电压 > 额定电压,会影响电机的寿命
• 工作电流
– 电机工作电流越大,输出功率越大 – 空载运行时,电机的电流最小(空载电流) – 负载增大到使电机停止转动时(堵转电流)
动手
• 用Arduino控制电机转动的速度 • 如何让速度变化更容易观察到?
H桥式驱动电路
• 4个三极管控制一个直流电机 • 只让对角线上的一对三极管导通
– 否则会短路,烧坏三极管
• 能同时控制速度和方向
电机驱动芯片L293D
• 包含两个H桥式驱动电路,可以用来驱动两个直流电机
使能引脚 方向A 电机 方向B 电机电源
– 接收线
• RF接收模块一个 • LED模块一个
• 目标
– 通过按钮来控制对方LED灯的亮灭
参考代码
发之间如何避免冲突
– 可以尝试使用不同的通道 – 为RF模块配置不同的地址
动手
• 两台Arduino一组,交换发射组和接收组
– 发射组
• RF发射模块一个 • 按钮模块两个