动手玩转Arduino(第四期)

合集下载

ARDUINO教程第四讲

ARDUINO教程第四讲

2、红外寻线传感器组件

由三个寻线传感器组成。背面L、C、R分别 为左中右的信号输出。

int L=7; //左边传感器接第7脚 int C=8; //中间传感器接第8脚 int R=9; //右边传感器接第9脚 void setup() {pinMode(L,INPUT); //均设置为输入 pinMode(C,INPUT); pinMode(R,INPUT); Serial.begin(9600); //串口波特率为9600 } void loop() { if(digitalRead(L)==HIGH) Serial.print(“Left is White |”); //若测到高电平则输出白色 else Serial.print(“Left is Black |”); //否则输出黑色 if(digitalRead(C)==HIGH) Serial.print("Center is White |"); else Serial.print("Center is Black |"); if(digitalRead(R)==HIGH) Serial.println("Right is White"); else Serial.println("Right is Black"); delay(200); //延时200MS方便观察效果 }

detch(pin); 该函数用于释放舵机引脚,可以作为其 他用途。

read(pin); 该函数用于返回当前舵机的角度,范围 0~180度

readMicrosends(pin); 该函数用于返回当前舵机的脉冲值,单 位us,范围在最大脉冲宽度和最小脉冲 宽度之间。

Arduino手把手入门教程Arduino入门教程

Arduino手把手入门教程Arduino入门教程

Arduino⼿把⼿⼊门教程Arduino⼊门教程简单说,Arduino是⼀块AtmegaX8的开发板,带BootLoader,通过USB转串⼝和电脑通信。

Arduino把AtmegaX8的功能做了简化,以⽅便开发,并提供完整的IDE开发环境。

Arduino在国外⾮常⽕,主要⽤来做【互动多媒体】,因为从事【互动多媒体】多半是⽂科⽣,所以功能尽可能的简化。

⼯程师级别的对Arduino不感冒,认为Arduino侮辱了他们的智商。

实际上Arduino对最⼤的强项是提供了丰富的库资源,⼏乎任何外设,是要在google上敲⼊关键字 + Arduino,就可以得到你想要的。

例如:google输⼊:PCF8574 ArduinoArduino是⼀块简单、⽅便使⽤的通⽤GPIO接⼝板,并可以通过USB接⼝和电脑通信。

作为⼀块通⽤IO接⼝板,Arduino提供丰富的资源,包括:13个数字IO⼝(DIO数字输⼊输出⼝);6个PWM输出(AOUT可做模拟输出⼝使⽤);5个模拟输⼊⼝(AIN模拟输⼊)。

Arduino开发使⽤java开发的编程环境,使⽤类c语⾔编程,并提供丰富的库函数。

Arduino可以和下列软件结合创作丰富多彩的互动作品:Flash,Processing,Max/MSP,VVVV…等。

Arduino也可以⽤独⽴的⽅式运作,开发电⼦互动作品,例如:开关控制Switch、传感器sensors输⼊、LED等显⽰器件、各种马达或其它输出装置。

Arduino特⾊1. Arduino的IDE是免费、开源的。

2. Arduino的硬件也是开源的,包括原理图和PCB图。

3. Arduino的所有资源都可以免费下载,并且可依需求⾃⼰修改!4. Arduino的附件只需1根USB线,编程、烧写⼀键搞定。

5. Arduino使⽤低价格、容易购买的微处理控制器ATMEGA168。

6. ⽀持多种互动软件:Flash,Max/Msp,VVVV,PD,Processing等。

Arduino入门版使用教程

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是一款开源电子平台,将硬件和软件相结合,用于创建各种电子项目。

它基于开放式软、硬件设计,非常适合初学者和专业人士。

Arduino的优势在于其易用性、可扩展性和灵活性,使其成为学习和实践电路控制的理想工具。

第二章:Arduino基础知识2.1 Arduino硬件组成Arduino主板包括一个微控制器,具有多个数字和模拟输入/输出引脚。

此外,还有一个USB接口用于与计算机通信,以及用于供电和编程的连接器。

2.2 Arduino编程语言Arduino使用C/C++编程语言,开发者可以使用Arduino IDE (集成开发环境)进行编码。

Arduino语言基于Wiring语言,具有简单易学的特点,适合初学者。

第三章:Arduino基本操作3.1 安装Arduino IDE下载Arduino IDE并根据安装向导进行安装。

启动IDE后,用户可以选择Arduino板型及端口。

3.2 第一个Arduino项目编写一个简单的程序来控制Arduino上的LED灯。

使用digitalWrite函数控制引脚的电平,通过设置为HIGH或LOW来打开或关闭LED灯。

第四章:数字输入与输出4.1 数字输入使用digitalRead函数读取数字输入引脚上的状态。

通过判断引脚为HIGH还是LOW,可以实现不同的应用,如按键检测或传感器数据获取。

4.2 数字输出使用digitalWrite函数控制数字输出引脚的状态。

通过设置引脚为HIGH或LOW,可以控制外部电路的开关状态,实现各种控制任务。

第五章:模拟输入与输出5.1 模拟输入Arduino具有一些模拟输入引脚,可以通过analogRead函数读取引脚上的模拟电压值。

这对于读取传感器数据或监测环境变量非常有用。

5.2 模拟输出Arduino可以通过PWM(脉宽调制)方式在数字输出引脚上生成模拟电压。

analogWrite函数可以设置引脚上的占空比,从而控制输出电平的变化。

(完整word版)ARDUINO入门及其简单实验(7例)

(完整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系列------硬件篇----- 张林锋/文2012-5-24目录1.Arduino 硬件简介 (3)2.Arduino 主控芯片介绍 (3)2.1 A Tmega 系列芯片 (3)2.2 A Tmega芯片引脚 (4)3.Arduino 主板介绍 (6)3.1 Arduino Duemilanove (主控芯片A Tmega168/328 2种) (6)3.2 Arduino Nano (主控芯片A Tmega168/328 2种贴片式) (7)3.3 Arduino Uno(主控芯片A Tmega328) (7)3.4 Arduino Mega2560(主控芯片A Tmega2560) (8)4.Arduino 扩展板介绍 (9)4.1 Arduino Sensor Shield V5.0 传感器扩展板 (9)4.2 Arduino MEGA Sensor Shield V1.0 专用传感器扩展板 (11)5.Arduino 功能模块 (12)5.1 L298N电机驱动板模块 (12)5.2 红外接收模块 (13)5.3 蓝牙模块 (13)5.4无线模块 (13)5.5 WI-FI 模块 (14)5.6 GPRS模块 (14)6.Arduino 传感器 (15)6.1温湿传感器 (15)6.2光线传感器 (15)6.3数字震动传感器 (16)6.4倾角传感器 (16)6.7三轴加速度传感器 (17)6.8超声波测距传感器 (17)6.9红外测距传感器 (17)6.10红外数字避障传感器 (18)6.12 寻线防跌落传感器 (18)说明写这系列文章主要目的是和读者一同分享下自己的学习过程,也希望能给读者带来一些帮助,文章部分内容剪裁网络文章,部分自己撰写。

文章内容用于爱好者之间学习,不得用于商业目的。

当然笔者才疏学浅,所书内容难免有缺点和漏洞,还请读者多多海涵,希望能和广大电子爱好者交流心得。

Arduino教程Arduino图形化编程软件ArduBlock

Arduino教程:Arduino图形化编程软件-ArduBlock一款为Arduino设计的图形化编程软件,由上海新车间创客开发。

ArduBlock软件是Arduino官方编程环境的第三方软件,目前必须依附于Arduino软件下运行,区别于Arduino 文本式编程环境,ArduBlock是以图形化积木搭建的方式编程的,这样的方式会使编程的可视化和交互性加强,编程门槛降低,即使没有编程经验的人也可以尝试给Arduino控制器编写程序。

右图是图像编程,左图是生成的C语言,如果你不懂C语言,图形和中文你应该懂吧!上图是一个led闪烁程序下面分析一下程序主程序do ->循环{设定1引脚输出高电平->延时1秒-> 设定1引脚输出低电平-> 延时1秒.}如果你是高手请回避:图形对应的C语言void setup(){pinMode( 1 , OUTPUT);}void loop(){digitalWrite( 1 , HIGH );delay( 1000 );digitalWrite( 1 , LOW );delay( 1000 );}兴致来了吧,马上安装。

下载地址:先下载,打开Arduino1.0,点击File,再点击Perferences(如图)我们可以看到弹出的框,记住下面这个路径(如图)D:\我的文档\Arduino\tools\ArduBlockTool\tool进入看看你的文件夹有没有这个路径,如果没有就一直创建文件夹,然后把你下载回来的压缩包(其实是JAVA软件)复制在最后的文件夹里面,就安装完成了。

打开Arduino 1.0开发环境,Tools->ArduBlock这个选项就是(原来没有的)。

Arduino使用详细分类教程【图文】

Arduino使用详细分类教程【图文】Arduino教程一: 数字输出Arduino的数字I/O被分成两个部分,其中每个部分都包含有6个可用的I/O 管脚,即管脚2到管脚7和管脚8到管脚13。

除了管脚13上接了一个1K的电阻之外,其他各个管脚都直接连接到ATmega上。

我们可以利用一个6位的数字跑马灯,来对Arduino数字I/O的输出功能进行验证,以下是相应的原理图:电路中在每个I/O管脚上加的那个1K电阻被称为限流电阻,由于发光二极管在电路中没有等效电阻值,使用限流电阻可以使元件上通过的电流不至于过大,能够起到保护的作用。

该工程对应的代码为:int BASE = 2;int NUM = 6;int index = 0;void setup(){for (int i = BASE; i < BASE + NUM; i ++){pinMode(i, OUTPUT);}}void loop(){for (int i = BASE; i < BASE + NUM; i ++) {digitalWrite(i, LOW);}digitalWrite(BASE + index, HIGH);index = (index + 1) % NUM;delay(100);}下载并运行该工程,连接在Arduino数字I/O管脚2到管脚7上的发光二极管会依次点亮0.1秒,然后再熄灭:这个实验可以用来验证数字I/O输出的正确性。

Arduino上一共有十二个数字I/O管脚,我们可以用同样的办法验证其他六个管脚的正确性,而这只需要对上述工程的第一行做相应的修改就可以了: int BASE = 8;01Arduino教程二: 数字输入在数字电路中开关(switch)是一种基本的输入形式,它的作用是保持电路的连接或者断开。

Arduino从数字I/O管脚上只能读出高电平(5V)或者低电平(0V),因此我们首先面临到的一个问题就是如何将开关的开/断状态转变成Arduino能够读取的高/低电平。

Arduino入门教程

Arduino入门教程引言Arduino作为一种开源电子平台,已经广泛应用于各种领域,无论是学习电子基础知识还是 DIY 制作小玩具,Arduino 都是一个不错的选择。

本文将从硬件选购、开发环境搭建、基础编程语言以及实例应用等方面为读者介绍 Arduino 的入门知识。

一、硬件选购对于初学者来说,选择一款合适的 Arduino 开发板是至关重要的。

在市面上有各式各样的 Arduino 开发板可供选择,如 Arduino Uno、Arduino Nano、Arduino Mega等。

首先要考虑的是项目需求,确定所需的输入输出接口、处理器性能和存储容量等因素,然后再选择合适的开发板。

此外,应该选择正版的 Arduino 开发板,以确保质量和稳定性。

二、开发环境搭建在开始编程之前,需要搭建一个 Arduino 集成开发环境(IDE)。

首先,从Arduino 官网上下载最新版本的Arduino IDE,并根据操作系统进行安装。

搭建好开发环境后,可以将 Arduino开发板连接到电脑上,并选择正确的开发板和端口。

通过该IDE,可以编写、上传和调试 Arduino 的代码。

三、基础编程语言Arduino 的编程语言基于C/C++,但相对于传统的C/C++ 语言,Arduino 提供了更为简洁的函数库和接口,使得编程变得更加容易上手。

以下是一些基本语法和函数的介绍:1. 串口通信Arduino 通过串行通信口(Serial)与电脑进行通信。

通过使用Serial.begin() 函数来初始化串口,Serial.print() 和 Serial.println() 函数可用于向串口输出数据。

2. 控制结构Arduino 支持常见的控制结构,如 if 语句、for 循环和 while 循环等,这些控制结构可以用于条件判断和循环控制。

3. 数组和字符串Arduino 支持数组和字符串操作。

可以通过声明数组变量和使用 strcpy()、strcat() 等字符串函数进行操作。

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++基础上的。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

• 两个控制脉冲的间隔时间不太敏感
– 只要在可以接受的范围内都可以(14ms到20ms)
• 只有机械约束,没有电路约束
– 控制脉冲宽度大于920us或者2120us,对电机寿命会有影响 – 驱动电机到达物理上不可能到达的位置
• 千万不能接反电源
– 大部分舵机都可能会烧毁
• 通过实验来找出电机的运动范围
双极性步进电机
• 每个线圈都可以两个方向通电 • 四根引线,每个线圈两条 • 使用数字万用表确定线圈分组
– 某两根引线之间能够测量到阻值就属于一组
• 双极性步进电机的步距通常是1.8°
– 转一圈需要200步
工作原理
步进电机驱动器
• 需要不断改变线圈中电流的方向
– 通过H桥式驱动电路完成
• 步进电机驱动模块EasyDriver
线圈A 线圈A 电机电源和 Arduino 需要共地! 需要共地! 地
线圈B 线圈B

电机电源
步进脉冲
方向
Arduino控制EasyDriver Arduino控制EasyDriver 控制
• 方向控制
– 使用Arduino的数字输出引脚
• 速度控制
– 使用Arduino的数字输出引脚 – 产生脉冲信号
直流减速电机
• 直流减速电机(齿轮减速电机)是在普通直流电机的基础 上,加上配套齿轮减速箱。 • 齿轮减速箱可以提供较低的转速和较大的力矩,不同的减 速比可以提供不同的转速和力矩
常用参数
• 工作电压(额定电压)
– – – – 驱动电机推荐使用的电压 高于或者低于工作电压时电机也能工作 实际电压 < 额定电压,输出功率变小 实际电压 > 额定电压,会影响电机的寿命
– 大部分舵机的运动区间都在150度左右
Arduino如何控制舵机 Arduino如何控制舵机
• Servo库
– servo.attach(pin)
• 在指定的引脚上连接舵机
– servo.write(anlog)
• 将舵机旋转到指定的角度位置
– servo.writeMicroseconds(us)
动手
• 用L293D控制电机
Arduino电机驱动扩展板 Arduino电机驱动扩展板
• 基于L298N,工作原理与L293D一样 • 提供更大工作电流,可以驱动大的直线电机 • 逆电压消除电路
步进电机
• 一种可以精确控制的交流电机 • 由驱动脉冲控制,每个脉冲让电机前进一个固定的角度 (步进角) • 电机速度由单位时间内脉冲的个数决定(脉冲频率) • 功率小,负载能力低,控制相对复杂
动手玩转Arduino 动手玩转Arduino ( 四)
运动控制(直流电机/步进电机/舵机) 运动控制(直流电机/步进电机/舵机) Arduino北京俱乐部
直流电机
• 将电能转换为机械能的一种装置 • 两个电源接头 • 在适当的电压下给予足够的电流时将连续旋转,旋转方向 由电流方向决定 • 普通直流电机转速高力矩小,适用于对力矩要求小的场合
– 出错可能导致Arduino烧毁
• 电机在不通电的情况下旋转将产生逆电流(逆电压)
– 发电机的工作原理 – 逆电流的方向与电机工作电流的方向相反 – 逆电流会造成电子设备的损坏
动手
• 观察逆电压——手工发电机
基本控制电路
• 用三极管或者MOS管驱动电机
动手
• 用Arduino控制电机的转动
代码
舵机接口
• 标准三线接口
– – – 电源线 地线 控制线
控制信号
• • • • 舵机的控制信号也是一种PWM信号 脉冲周期20毫秒 脉冲高电平持续1毫秒(1000微秒)到2毫秒(2000微秒) 用来控制的脉冲信号必须持续产生,否则很难稳定
注意! 注意!
• 舵机对控制脉冲高电平的宽度非常敏感
– 抖动:控制信号每个脉冲的高电平宽度不稳定
• 与LED灯控制代码相同
电机速度控制
• 复习PWM
– 高速地开关三极管来实现对电机的控制 – 占空比(打开时间:关闭时间)决定了输出给电机的能量份额 – Arduino的analogWrite函数用来产生PWM信号
动手
• 用Arduino控制电机转动的速度 • 如何让速度变化更容易观察到?

H桥式驱动电路
• 4个三极管控制一个直流电机 • 只让对角线上的一对三极管导通
– 否则会短路,烧坏三极管
• 能同时控制速度和方向
电机驱动芯片L293D 电机驱动芯片L293D
• 包含两个H桥式驱动电路,可以用来驱动两个直流电机
使能引脚 方向A 方向A 电机 方向B 方向B 电机电源
Arduino 5V
电机电源和 Arduino 需要共地! 需要共地!
• 生成指定宽度(微秒)的控制脉冲
动手
• 利用Arduino为舵机找到中心位置 • 以中心位置左右摆动
谢谢!
参考
• /blog/static/129014 0362010431238402/ • /article/5292
动手
• 用EasyDriver驱动双极性步进电机
升降速曲线
• 步进电机在拖动负载高速移动一定距离并精确定位时一般 来说都应包括五个阶段
– – – – – 启动 加速 高速运行(匀速) 减速 停止
• 不同阶段的脉冲频率应不同
舵机
• 舵机也叫伺服电机(Servo),工作电压一般4.6 – 7.2V • 由直流电机、减速齿轮组、传感器和控制电路组成 • 主要应用在定位控制上
Arduino控制L293D Arduino控制L293D 控制
• 速度控制
– 使用Arduino模拟输出引脚 – 将产生的PWM信号连接到L293D的使能引脚
• 方向控制
– – – – – 使用Arduino的数字输出引脚 将产生的数字信号连接到L293D的A、B两个方向引脚 正转:A为高,B为低 反转:A为低,B为高 制动:A、B同时为高或者低
• 工作电流
– 电机工作电流越大,输出功率越大 – 空载运行时,电机的电流最小(空载电流) – 负载增大到使电机停止转动时(堵转电流)
• 转矩
– 电机的转动力
• 转速
– 每分钟旋转的圈数(转/分,RPM)
注意! 注意!
• 电机属于大电流设备,无法用Arduino引脚直接控制
– 区别于LED
• 电机电压高于Arduino的工作电压,注意隔离和接线
相关文档
最新文档