爱折腾-创客智造实验室 - Arduino电机及驱动
type: channel
link: https://www.ncnynl.com/category/arduino-motor
description: 通过Arduino电机及驱动学习，了解Arduino电机及驱动原理，使用说明
items: Arduino直流电机驱动-L298P Shield 2A大电流双路直流电机驱动扩展板
items: Arduino直流电机驱动-L298N双路H桥电机驱动
items: Arduino直流电机驱动-L293 Shield 1A双路H桥电机驱动扩展板
items: Arduino直流电机驱动-Veyron 2x25A直流有刷电机驱动器
items: Arduino直流电机驱动-双路15A大功率电机驱动 Lite
items: Arduino直流电机驱动-L298P-Twin 2x2A电机驱动Arduino扩展板
items: Arduino直流电机驱动-Micro DC Motor with Encoder-SJ02 微型直流带编码器L型减速电机
items: Arduino直流电机驱动-Quad Motor Driver Shield for Arduino四路直流电机驱动扩展板
items: Arduino直流电机驱动-Motor driver-HR8833 双路直流电机驱动模块
items: Arduino伺服电机驱动-Veyron Servo Driver 24-Channel

Arduino直流电机驱动-L298P Shield 2A大电流双路直流电机驱动扩展板
type: item
date: 2016-06-06T11:58:00+00:00
description: 外观 简 介 L298 Shield是Arduino兼容的一款大电流电机驱动；控制端口为4个，减少对Arduino数字端口的开销，不但起到节约控制器端口，而且控制程序也更为简单。 电机供电采用跳线选择Arduino VIN供电还是外接电源供电。 L298 Shield大功率直流电机驱动器采用LGS公司优秀大功率电机专用驱动芯片L298P，可直接驱动2个直流电机，驱动电流最大达2A。 该电路线路布线合理、均采用贴元件片、体积小、方便安装，输出端采用高速肖特基二极管作为保护。 注意： IOREF引脚： 由于在V1.2版的设计中，添加了IOREF引脚，该引脚连接在5V口。因此，当DRI0009插在底层主控板上后，如果您的主控板的工作电压不是5V，如3.3V，建议您将DRI0009上的IOREF引脚用剪刀剪断，或者用用硬物划断PCB板上它们之间的接线，否则可能引起工作不正常或主控板烧坏等意外状况。如果主控板操作电压是5V，您可以放心使用。 产品参数 1．逻辑部分输入电压VD：5V 2．驱动部分输入电压VS：4.8～35V 3．逻辑部分工作电流Iss：≤36mA 4．驱动部分工作电流Io：≤2A 5．最大耗散功率：25W（T=75℃） 6．PWM、PLL两种驱动模式 7．控制信号输入电平： 高电平：2.3V≤Vin≤5V 低电平：-0.3V≤Vin≤1.5V 8．工作温度：-25℃～＋130℃ 9．驱动形式：双路大功率H桥驱动 Arduino控制端口：数字口4,5,6,7 11．模块重量：约29g 引脚说明 把L298 Shield插到Arduino控制器上，程序编写也很简单， M1、M2表示2个电机；电源分别使用9V电池和电机动力电池。 注意：控制器的电源地必须和电机驱动共地。 控制方式选择：分PWM模式和PLL模式。2种方式区别在于，PWM模式调速信号控制的是L298的 E1和E2使能端，PLL模式调速信号控制的是L298的M1和M2转向端。如下图所示，PLL和PWM都标注出了对应的控制引脚。出厂默认设置为PWM模式，短路帽在PWM端上。 电机端口：蓝色接线柱M1和M2分别可以接2个电机，插针1,2,3,4和蓝色接线柱功能一致。 外接电源端口：电机额定电压或电流大于Arduino最大输入时，可以使用外接电源单独给电机供电，VIN接电源正，GND接电源地。 控制信号真值表： E1 M1 E2 M2 L X 电机1控制禁止 H H 电机2控制禁止 H H 电机1反转 H H 电机2反转 H L 电机1正转 H L 电机2正转 PWM X 对电机1调速 PWM X 对电机2调速 注：H表示高电平1；L表示低电平0；PWM表示脉宽调制信号；X表示任意电平。 "PWM 模式" 引脚 功能 数字脚 4 电机1转动方向控制 数字脚 5 电机1转速控制 数字脚 6 电机2转速控制 数字脚 7 电机2转动方向控制 "PLL 模式" 引脚 功能 数字脚 4 电机1转动控制 数字脚 5 电机1转动方向控制 数字脚 6 电机2转动方向控制 数字脚 7 电机2转动控制 使用教程 连线图 外接电源与板内VIN电源选择端口：当2个短路帽插到右边时（VIN），电机电源就是使用Arduino板上VIN端输入的电源，如下图。 当2个短路帽插到左边时（PWRIN），就使用外接电源端口输入的电源，如下图。 我们可以控制M1和M2两个直流电机的正转，反转，停止，以及PWM调速。 样例代码 int E1 = 5; int M1 = 4; int E2 = 6; int M2 = 7; void setup() { pinMode(M1, OUTPUT); pinMode(M2, OUTPUT); } void loop() { int value; for(value = 0 ; value <= 255; value+=5) { digitalWrite(M1,HIGH); digitalWrite(M2, HIGH); analogWrite(E1, value); //PWM调速 analogWrite(E2, value); //PWM调速 delay(30); } } 结果 两个电机会同时慢慢地转动起来，而且速度越来越快。到达一定速度又会停下来，然后又会像之前一样。 疑难解答 PWM调速是通过调整空占比来模拟不同电压值，从而控制加到电机两端的电压高低来实现调速。 本文整理于DFRobot wiki

Arduino直流电机驱动-L298N双路H桥电机驱动
type: item
date: 2016-06-06T11:59:00+00:00
description: 外观 简介 这个直流电机驱动模块是为了做ROBOT而开发的东东。当然，如果你有更好的想法，比如用于驱动步进电机也行。 我们做ROBOT的想法是：把大部分功能集成化，使得做机器人更加方便。 DF-MD V1.3是续DF-MD V1.0之后的第3次改版，每一次改版其性能方面有很大的提升，DF-MDV1.3在原来的基础上增加了散热器，可以承受更大的电流；控制端口由原来的6个改为4个，不但可以节约控制器端口，而且控制方式也更为简单。 DF-MD V1.3大功率直流电机驱动器采用LGS公司优秀大功率电机专用驱动芯片L298N，可直接驱动直流电机，驱动电流达2A。 该电路线路布线合理、均采用贴元件片、体积小、方便安装，输出端采用高速肖特基二极管作为保护。 产品参数 1．逻辑部分输入电压VD：6.5～12 V 2．驱动部分输入电压VS：4.8～35V 3．逻辑部分工作电流Iss：≤36mA 4．驱动部分工作电流Io：≤2A 5．最大耗散功率：25W（T=75℃） 6．控制信号输入电平： 高电平：2.3V≤Vin≤5V 低电平：-0.3V≤Vin≤1.5V 7．工作温度：-25℃～＋130℃ 8．驱动形式：双路大功率H桥驱动 9．模块尺寸：47 mm × 53mm 10．模块重量：约29g 引脚说明 引脚说明图 电机接口 M1，M2 可接入两个电机，其中标注了“+”、“-”表示两个电机的正负极。 指示灯 PWR: 电源指示灯 电机指示灯：电机正常工作，指示灯会亮起。 电源说明 VD: 逻辑电源输入，输入电压范围建议为6.5V～12V; VS: 电机驱动电源输入，输入电压范围建议为4.8～46V; GND: 逻辑电源和电机驱动电源的公共地。 电源切换跳帽 电源切换跳冒 当跳冒插上时，逻辑电源和电机驱动电源相通。 如果电机驱动电源(VS)输入小于12V时，就可以将此跳线短接。 如果电机驱动电源(VS)输入大于12V时，不可将此跳冒短接。 电机控制端口 E1,E2: 分别为两个电机控制的使能端(可使用PWM调速)。 M1,M2: 正反转控制信号输入端。比如，M1=0，M1电机正转;M1=1，M1电机反转。 E M 执行 LOW LOW/HIGH 电机禁止 HIGH HIGH 电机反转 HIGH LOW 电机正转 PWM LOW/HIGH 电机调速 注: LOW = 0; HIGH = 1; PWM = 0~255 使用教程 这个简单实例告诉你如何使用L298N双路电机驱动板驱动两个直流电机。 连线图 实例连线图 样例代码 int E1 = 6; int M1 = 7; int E2 = 5; int M2 = 4; void setup() { pinMode(M1, OUTPUT); pinMode(M2, OUTPUT); } void loop() { int value; for(value = 0 ; value <= 255; value+=5) { digitalWrite(M1,HIGH); digitalWrite(M2, HIGH); analogWrite(E1, value); //PWM调速 analogWrite(E2, value); //PWM调速 delay(30); } } PWM调速原理 PWM调速是通过调整空占比来模拟不同电压值，从而控制加到电机两端的电压高低来实现调速。 本文整理于DFRobot wiki

Arduino直流电机驱动-L293 Shield 1A双路H桥电机驱动扩展板
type: item
date: 2016-06-06T11:59:00+00:00
description: 概述 Arduino控制器兼容的电机驱动扩展板,支持双路电机控制,单路最大电流可达1A。 Arduino标准插针设计接口,可与其他扩展板模块叠层配合使用。可应用于小型移动机器人的开发。 技术规格 驱动芯片：L293B 逻辑工作电压：5V DC 电机驱动电压：7-12V DC 最大驱动电流：1A（每路） 电机驱动使用引脚：PIN4/5/6/7（Arduino控制器） 平面尺寸：56x57mm 连线图 引脚分配图 Pin Function Digital 4 Motor 2 转向控制，高电平正转，低电平反转 Digital 5 Motor 2 PWM调速控制，范围0-255,0电机停转，255电机最大速度 Digital 6 Motor 1 PWM调速控制，范围0-255,0电机停转，255电机最大速度 Digital 7 Motor 1 转向控制，高电平正转，低电平反转 示例代码 //This motor shield use Pin 6,5,7,4 to control the motor // Simply connect your motors to M1+,M1-,M2+,M2- // Upload the code to Arduino/Roboduino // Through serial monitor, type 'a','s', 'w','d','x' to control the motor // www.dfrobot.com // Last modified on 24/12/2009 int EN1 = 6; int EN2 = 5; //Roboduino Motor shield uses Pin 9 int IN1 = 7; int IN2 = 4; //Latest version use pin 4 instead of pin 8 void Motor1(int pwm, boolean reverse) { analogWrite(EN1,pwm); //set pwm control, 0 for stop, and 255 for maximum speed if(reverse) { digitalWrite(IN1,HIGH); } else { digitalWrite(IN1,LOW); } } void Motor2(int pwm, boolean reverse) { analogWrite(EN2,pwm); if(reverse) { digitalWrite(IN2,HIGH); } else { digitalWrite(IN2,LOW); } } void setup() { int i; // for(i=6;i<=9;i++) //For Roboduino Motor Shield // pinMode(i, OUTPUT); //set pin 6,7,8,9 to output mode for(i=4;i<=7;i++) //For Arduino Motor Shield pinMode(i, OUTPUT); //set pin 4,5,6,7 to output mode Serial.begin(9600); } void loop() { int x,delay_en; char val; while(1) { val = Serial.read(); if(val!=-1) { switch(val) { case 'w'://Move ahead Motor1(100,true); //You can change the speed, such as Motor(50,true) Motor2(100,true); break; case 'x'://move back Motor1(100,false); Motor2(100,false); break; case 'a'://turn left Motor1(100,false); Motor2(100,true); break; case 'd'://turn right Motor1(100,true); Motor2(100,false); break; case 's'://stop Motor1(0,false); Motor2(0,false); break; } } } } 相关文档 原理图 示例代码 本文整理于DFRobot wiki

Arduino直流电机驱动-Veyron 2x25A直流有刷电机驱动器
type: item
date: 2016-06-06T12:00:00+00:00
description: 外观 概述 Veyron 威龙系列电机驱动器是DFRobot推出的新一代智能电机驱动器，产品线涵盖直流有刷电机驱动器、直流无刷电机驱动器及步进电机驱动器。 其中Veyron 2x25A为直流有刷电机驱动器。 拥有智能的接口方式：包含模拟电压（Analog）、脉宽信号（PPM）及UART接口。 完善的保护功能：欠电压、过电压、过电流、过热、短路、电压反接等保护功能。 简易的操作方式：一键接口选择、开/闭环自动识别、PID参数自整定等功能，极大程度简化了用户的操作。 电气特性 输入电压范围 ：DC 6~36V，极限电压为40V 使用镍氢或镍镉电池组 ：5节-30节 使用锂聚合物电池组 ：2节-8节 单路最大允许连续电流 ：25A 单路最大允许尖峰电流 ：30A 电源端子定义 M1A ：第1路电机引线A M1B ：第1路电机引线B B+ ：外部直流电源输入+ B- ：外部直流电源输入- M2A ：第2路电机引线A M2B ：第2路电机引线B 编码器端子定义 与MxA/MxB同侧的编码器端子为Mx电机编码器接口 A ：编码器A相脉冲信号输入 B ：编码器B相脉冲信号输入 GND ：驱动器逻辑地 VCC ：驱动器DC-5V电源输出 通讯端子定义 GND ：驱动器逻辑地 5V ：驱动器DC-5V/1A电源输出 S1 ： 在Analog接口模式下，为M1模拟电压量输入 在PPM接口模式下，为M1脉宽信号输入 在UART接口模式下，为驱动器Rx S2 ： 在Analog接口模式下，为M2模拟电压量输入 在PPM接口模式下，为M2脉宽信号输入 在UART接口模式下，为驱动器Tx 散热风扇端子定义 散热风扇仅有2PIN，分别为5V电源输出和可控连接的驱动器逻辑地。可直接连接5V的散热风扇（最大提供电流500mA），或通过继电器控制大功率的散热风扇。 指示灯定义 Reverse ：电源反接保护指示灯（红色） Set ：设置模式指示灯（绿色） Analog ：模拟模式指示灯（绿色） PPM ：脉宽模式指示灯（绿色） UART ：UART模式指示灯（绿色） Status1 ：（黄色） 在Analog和PPM模式下，该指示灯的亮度指示M1转速大小 在UART模式下，该指示灯在驱动器接收数据时亮，空闲时灭 Status2 ：（黄色） 在Analog和PPM模式下，该指示灯的亮度指示M2转速大小 在UART模式下，该指示灯在驱动器发送数据时亮，空闲时灭 Error ：故障指示灯（红色），并非只有指示故障的功能，下文将在应用时具体分析 KEY设置按键说明 可通过按该按键来调节驱动器的工作模式，可在Set、Analog、PPM、UART四个模式中切换，相应的指示灯指示将要进入的工作模式。在模式切换过程中，只有当前模式与驱动器内部保存的模式不一致时，驱动器才进行自动复位，进入新的工作模式。 接口类型 Analog（两路模拟电压信号输入）：电压范围0-5V（通常情况下外接电位器，在条件允许的前提下，建议用户在模拟电压输出端加一个电压跟随器；或使用PWM+滤波电路实现电压输出）。 PPM（两路脉宽信号输入）：信号源可由模型遥控接收机直接产生，或自行使用单片机产生。 UART：支持10种常用波特率，同时兼容3.3V及5V系统。 控制模式 速度开环控制模式：该模式适用于无编码器的电机控制，根据控制量定性控制电机的转速。 速度闭环控制模式：该模式适用于带编码器的电机控制，通过UART接口设置编码器及减速器的相关参数，实现速度闭环控制。 保护功能 在UART接口模式下，可通过“GER”获取故障信息指令，查询故障源，详情请参考驱动器指令集。 在PPM与Analog接口模式下，可通过Set、Analog、PPM、UART指示灯的组合判断故障源，如下表所示（注：发生任何一种故障，电机将停止工作，进入故障模式，此时，用户将无法控制电机。在UART接口模式下，可通过“CER”清除所有故障信息指令恢复正常工作模式，在PPM与Analog模式下，只能通过复位驱动器方可消除故障信息）： Set Analog PPM UART Error Error Sources Lower Voltage Over Voltage Over Temperature M1 Over Current M2 Over Current Control Signal Lost 电源反接保护功能，若电源反接，电源反接指示灯（Reverse）亮，以示故障源。 可设定阈值的欠电压和过电压保护，倘若输入电压超出设定范围，故障指示灯（Error）亮，驱动器进入故障模式。 可设定的最大允许连续电流保护功能。实际电流大于最大允许连续电流，且小于最大允许尖峰电流，允许持续时间为2s，大于2s，故障指示灯（Error）亮，驱动器将进…

Arduino直流电机驱动-双路15A大功率电机驱动 Lite
type: item
date: 2016-06-06T12:01:00+00:00
description: 外观 简介 该大功率电机驱动模块除了可用于4WD移动机器人平台，战斗机器人，智能车竞赛等场合还可用于驱动水泵，电风扇，传送带等。有了它，您可以搭建很多与电机相关的项目。 该模块采用了4块高性能大电流的驱动芯片BTS7960，具有短路过温过压保护功能。 只需4个数字IO口便可同时控制2路电机运转。经实测单路最大输出电流可达15A@13.8V，响应性好，制动性能强。 同时两路电机都具有正反转指示灯， 方便您在不接电机的情况下进行调试。 该大功率电机驱动模块直接兼容Arduino。 产品参数 驱动部分输入电压：4.8-35V 最大输出电流：单路15A@13.8V 单路峰值电流：20A@13.8V PWM最高输出频率：25KHZ 驱动输出接口：5.08mm间距接线柱 控制接口：4路数字信号（其中2路PWM信号） 驱动形式：双路大功率H桥驱动 尺寸:73x68x14mm 保护功能： 电流隔离功能，保护单片机 双路电流检测诊断功能 短路，过热，过压保护 使用教程 连线图 LA_IS,LB_IS,RA_IS和RB_IS这几个引脚是用于电流检测的。正常情况下，IS引脚输出是一个低电平。非正常情况下，输出的高电平。下面的样例代码会详细指出如何操作。 样例代码 PWM 模式 /* # 这个样例代码用来测试DC Motor Driver 2x15A_lite module. # Editor : Phoebe # Date : 2012.11.6 # Ver : 0.1 # Product: DC Motor Driver 2x15A_lite # SKU : DRI0018 # 描述: # 用DC Motor Driver module驱动2个电机 # 硬件: 1. Arduino UNO 2. DC Motor Driver 2x15A_lite 3. DC motors x2 步骤: 1.M1_PWM & M2_PWM --> digital 5 & 6 2.M1_EN & M2_EN --> digital 4 & 7 3.+5V --> 5V 4.GND --> GND 下面代码中注释掉的部分是用来电流检测的，如需检测连接： 1.LA_IS 和 RA_IS 同时连接 数字口2 2.LB_IS 和 RB_IS 同时连接 数字口3 */ int E1 = 5; //M1 速度控制 int E2 = 6; //M2 速度控制 int M1 = 4; //M1 方向控制 int M2 = 7; //M1 方向控制 int counter=0; void stop(void) { //停止 digitalWrite(E1,0); digitalWrite(M1,LOW); digitalWrite(E2,0); digitalWrite(M2,LOW); } void advance(char a,char b) //前进 { analogWrite (E1,a); //PWM 速度控制 digitalWrite(M1,HIGH); analogWrite (E2,b); digitalWrite(M2,HIGH); } void back_off (char a,char b) //后退 { analogWrite (E1,a); digitalWrite(M1,LOW); analogWrite (E2,b); digitalWrite(M2,LOW); } void turn_L (char a,char b) //左转 { analogWrite (E1,a); digitalWrite(M1,LOW); analogWrite (E2,b); digitalWrite(M2,HIGH); } void turn_R (char a,char b) //右转 { analogWrite (E1,a); digitalWrite(M1,HIGH); analogWrite (E2,b); digitalWrite(M2,LOW); } void current_sense() // 电流检测 { int val1=digitalRead(2); int val2=digitalRead(3); if(val1==HIGH || val2==HIGH){ counter++; if(counter==3){ counter=0; Serial.println("Warning"); } } } void setup(void) { int i; for(i=4;i<=7;i++) pinMode(i, OUTPUT); Serial.begin(19200); //Set Baud Rate设置波特率 Serial.println("Run k…

Arduino直流电机驱动-L298P-Twin 2x2A电机驱动Arduino扩展板
type: item
date: 2016-06-06T12:01:00+00:00
description: 外观 简介 这是一款基于L298芯片的Arduino平台双路电机驱动扩展板，可以直接插入Arudino控制板使用。 控制端口为4个，减少了对Arduino数字端口的开销，而且控制程序也更为简单。 扩展板采用跳线选择Arduino VIN供电还是外接电源供电。 产品参数 驱动工作电压：4.8 ～ 35V 最大输出电流：单路2A 最大耗散功率：25W（T=75℃） 驱动形式：双路H桥驱动 驱动电源接口：一路外部电源端子 / Arduino-VIN 驱动输出接口：两路电机接线端子 / 排针 Arduino控制端口：数字口10,11,12,13 工作温度：-25℃ ～ 130℃ 模块尺寸：56x57mm 应用 电动小车 引脚说明 驱动电源选择跳线：用于选择驱动电源，一路是外部驱动电源（PWMIN），一路是来自于母板（比如使用Arduino UNO）的VIN；根据驱动电机的电压和电流要求选择使用。默认是选择VIN，即图示的方式。 注意：这里的两组跳线是并联的，两个跳线帽需要同步使用以满足大电流通过的要求。 外部电源端子（PWMIN）：用于连接外部电源给驱动供电。 驱动输出接口：用于连接2路直流电机；提供接线端子和排针两种连接方式，接线端子（M1- M1+ M2- M2+）和排针（1 2 3 4）相对应，根据实际情况选择使用。 模拟3PIN接口：用于连接3PIN接口的传感器、执行器等模块。 注意：这里线序是(+ - S)。 Mn指示灯：Mn+为正时红色灯亮，反之绿色灯亮，用于调试。注意：电机工作时有反电动势，因此存在两个灯同时亮的情况。 控制端口：用于控制电机的转速和方向。在模块上印刷有“控制表”方便查看端口功能，其中En用于控制电机转速(PWM调速)，Mn用于控制电机旋转方向。控制端口的真值表为： En Mn 状态 L X Mn禁止 H L Mn正转（Mn+为正） H H Mn反转（Mn+为负） 注1：n=1,2。 注2：H表示高电平1；L表示低电平0；X表示任意电平。 使用教程 控制直流电机 目标：对直流电机进行调速和方向控制 步骤一：硬件清单 UNO 1 直流电机 2 稳压电源 1 本模块 1 导线 步骤二：软件清单 Arduino IDE 步骤三：连线图 步骤四：操作步骤 打开Arduino IDE 将下面的代码上传到UNO 库安装 /**set control port**/ const int E1Pin = 10; const int M1Pin = 12; const int E2Pin = 11; const int M2Pin = 13; /**inner definition**/ typedef struct { byte enPin; byte directionPin; }MotorContrl; const int M1 = 0; const int M2 = 1; const int MotorNum = 2; const MotorContrl MotorPin[] ={ {E1Pin,M1Pin}, {E2Pin,M2Pin} } ; const int Forward = LOW; const int Backward = HIGH; /**program**/ void setup() { initMotor(); } void loop() { int value; /**test M1 **/ setMotorDirection( M1, Forward ); setMotorSpeed( M1, 100 ); delay(1000); setMotorSpeed( M1, 0 ); delay(100); setMotorDirection( M1, Backward ); setMotorSpeed( M1, 50 ); delay(1000); setMotorSpeed( M1, 0 ); delay(100); /**test M2**/ setMotorDirection( M2, Backward ); for(value = 0 ; value <= 100; value+=5) { setMotorSpeed( M2, value ); delay(100); } setMotorSpeed( M2, 0 ); setMotorDirection( M2, Forward ); for(value = 0 ; value <= 100; value+=5) { setMotorSpeed( M2, value ); delay(100); } setMotorSpeed( M2, 0 ); } /**functions**/ void initMotor( ) { int i;…

Arduino直流电机驱动-Micro DC Motor with Encoder-SJ02 微型直流带编码器L型减速电机
type: item
date: 2016-06-06T12:01:00+00:00
description: 外观 简介 DFRobot新款微型直流减速电机，专为机器人DIY爱好者设计，减速比高达120:1。 带两相正交霍尔编码器输出，单圈可输出16个脉冲信号。配合减速箱，单圈可输出高达1920个脉冲信号。 配合Arduino控制器和电机驱动器或者直接使用RoMeo主控器就能够完成闭环PID控制、测速、PWM调速等功能。 电机采用纯铜输出轴，内嵌螺纹，加强的连接接头，极大的延长电机的使用寿命，连接也更加方便。 搭配我们的移动平台，您可以非常方便的实现速度和方向的精确控制。 产品参数 齿轮齿数比：120:1 无负载转速(6V)：160rpm 无负载转速(3V)：90rpm 电机最大无负载电流（6V）：170mA 电机最大无负载电流（3V）：140mA 最大堵转电流：2.8A 最大输出力矩(6V)：0.8kgf.cm 编码器电压：4.5~7.5V 电机工作电压：3~7.5V（额定电压6V） 额定力矩：0.2kgf.cm 操作环境温度：-10~+60℃ 引脚说明 标号 名称 功能描述 1 电机电源引脚+ 3-7.5V，额定电压6V 2 电机电源引脚- 3 编码器A相输出 随电机转速的变化输出频率变化的方波 4 编码器B相输出 随电机转速的变化输出频率变化的方波(接中断口) 5 编码器电源GND 6 编码器电源正极 4.5-7.5V 使用教程 所需硬件 DFRduino UNO x1 直流电源 x1 L298电机驱动板 x1 所需软件 Arduino IDE 点击下载Arduino IDE 接线图 本次教程意在编码器的使用上，选用D2和D3两个管脚，其中D2作为了中端口，D3作为信号输入引脚。在实际应用中只需要确保两个管脚中有一个必须是中断管脚即可，另一个可自行定义（参见下图主控的中断管脚） Interrupt Port with Different Board Notcie:attachInterrupt() 举个例子，当你想在UNO上面使用中断管脚0（中断0），你可以连接2号数字管脚（D2）;使用中断管脚1（中断1），你可以连接3号数字管脚（D3） 详细情况请查看 http://arduino.cc/en/Reference/AttachInterrupt 样例代码 示例代码1： //The sample code for driving one way motor encoder const byte encoder0pinA = 2;//A pin -> the interrupt pin 0 const byte encoder0pinB = 3;//B pin -> the digital pin 3 byte encoder0PinALast; int duration;//the number of the pulses boolean Direction;//the rotation direction void setup() { Serial.begin(57600);//Initialize the serial port EncoderInit();//Initialize the module } void loop() { Serial.print("Pulse:"); Serial.println(duration); duration = 0; delay(100); } void EncoderInit() { Direction = true;//default -> Forward pinMode(encoder0pinB,INPUT); attachInterrupt(0, wheelSpeed, CHANGE); } void wheelSpeed() { int Lstate = digitalRead(encoder0pinA); if((encoder0PinALast == LOW) && Lstate==HIGH) { int val = digitalRead(encoder0pinB); if(val == LOW && Direction) { Direction = false; //Reverse } else if(val == HIGH && !Direction) { Direction = true; //Forward } } encoder0PinALast = Lstate; if(!Direction) duration++; else duration--; } 代码1运行现象: 说明：数据不断的从串口输出，当电机正转时，输出的数值>0, 电机反向转时，输出数字<0。并且电机速度越快，数字的绝对值越大，反之越小。 示例代码2(PID控制)： 通过L298P直流电…

Arduino直流电机驱动-Quad Motor Driver Shield for Arduino四路直流电机驱动扩展板
type: item
date: 2016-06-06T12:02:00+00:00
description: 简介 Quad Motor Shield for Arduino是Arduino兼容的一款直流电机驱动，最多可以同时驱动4个直流电机。 控制端口为8个，控制程序很简单。该电路线路布线合理、均采用贴元件片、体积小、方便安装，即插即用。 Quad Motor Shield for Arduino采用TB6612FNG电机驱动芯片。 TB6612FNG是东芝半导体公司生产的一款直流电机驱动器件，它具有大电流MOSFET-H桥结构，双通道电路输出，可同时驱动2个电机。 TB6612FNG每通道输出最高1.2 A的连续驱动电流，启动峰值电流达2A/3.2 A(连续脉冲/单脉冲);PWM支持频率高达100 kHz; 片内低压检测电路与热停机保护电路;工作温度：-20～85℃;SSOP24小型贴片封装。 产品参数 工作电压 2.5V-13.5V 工作电流 每通道最高1.2 A的连续驱动电流，启动峰值电流达2A/3.2 A(连续脉冲/单脉冲) Arduino控制端口：数字口3,4,5,6,7,8,11,12 尺寸 52mm X 53mm 引脚说明 使用教程 简单编程实现电机的控制。 控制电机对应的IO口 电机 方向控制脚 正转 反转 速度控制脚 速度范围 M1 4 LOW HIGH 3 0-255 M2 12 HIGH LOW 11 0-255 M3 8 LOW HIGH 5 0-255 M4 7 HIGH LOW 6 0-255 所需硬件 UNO x1 Quad Motor Shield for Arduino x1 直流电机 x 4 杜邦线 若干 所需软件 Arduino IDE点击下载Arduino IDE 连线图 样例代码 /*! * @file QuadMotorDriverShield.ino * @brief QuadMotorDriverShield.ino Motor control program * * Every 2 seconds to control motor positive inversion * * @author linfeng(490289303@qq.com) * @version V1.0 * @date 2016-4-5 */ const int E1 = 3; ///<Motor1 Speed const int E2 = 11;///<Motor2 Speed const int E3 = 5; ///<Motor3 Speed const int E4 = 6; ///<Motor4 Speed const int M1 = 4; ///<Motor1 Direction const int M2 = 12;///<Motor2 Direction const int M3 = 8; ///<Motor3 Direction const int M4 = 7; ///<Motor4 Direction void M1_advance(char Speed) ///<Motor1 Advance { digitalWrite(M1,LOW); analogWrite(E1,Speed); } void M2_advance(char Speed) ///<Motor2 Advance { digitalWrite(M2,HIGH); analogWrite(E2,Speed); } void M3_advance(char Speed) ///<Motor3 Advance { digitalWrite(M3,LOW); analogWrite(E3,Speed); } void M4_advance(char Speed) ///<Motor4 Advance { digitalWrite(M4,HIGH); analogWrite(E4,Speed); } void M1_back(char Speed) ///<Motor1 Back off { digitalWrite(M1,HIGH); analogWrite(E1,Speed); } void M2_back(char Speed) ///<Motor2 Back off { digitalWrite(M2,LOW); analogWrite(E2,Speed); } void M3_back(char Speed) ///<Motor3 Back off { digitalWrite(M3,HIGH); analogWrite(E3,Speed); } void M4_back(char Speed) ///<Motor4 Back off { digitalWrite(M4,LOW); analogWrite(E4,Speed…

Arduino直流电机驱动-Motor driver-HR8833 双路直流电机驱动模块
type: item
date: 2016-06-06T12:03:00+00:00
description: 简介 Motor driver-HR8833 双路直流电机驱动模块，体积小，可以在面包板上使用，对于空间上有要求的的DIY作品也是个不错的选择。 产品参数 工作电压VCC：3.3V – 5V（或者单片机IO输出高电平） 工作电压VM：3.3V – 10V 最大持续工作电流：1500mA（单路） 尺寸：18mm*13mm 引脚说明 标号 名称 功能描述 1 VCC 电源3.3V-5V或者IO口输出高电平 2 GND 电源负极 3 IB2 B路逻辑输入端2 4 IB1 B路逻辑输入端1 5 IA2 A路逻辑输入端2 6 IA1 A路逻辑输入端1 7 VM 电机驱动电源3.3V-10V 8 GND 电源负极 9 MB1 B路输出1 10 MB2 B路输出2 11 MA2 A路输出2 12 MA1 A路输出1 使用教程 IA1接数字口10；IA2接数字口12；IB1接数字口11；IB2接数字口13。 所需硬件 UNO x1 Motor driver-HR8833 x1 杜邦线 若干 所需软件 Arduino IDE 版本1.6.8 点击下载Arduino IDE 接线图 样例代码 /* * @file Motor driver HR8833-Test.ino * @brief HR8833-Test.ino Motor control program * * control motor positive inversion * * @author lei.wu@dfrobot.com * @version V1.0 * @date 2016-4-13 */ const int IA1=10; const int IA2=12; const int IB1=11; const int IB2=13; void setup() { pinMode(IA1, OUTPUT); pinMode(IA2, OUTPUT); pinMode(IB1, OUTPUT); pinMode(IB2, OUTPUT); } void loop() { MA1_Forward(200); delay(1000); MA2_Backward(200); delay(1000); } void MA1_Forward(int Speed1) { analogWrite(IA1,Speed1); digitalWrite(IA2,LOW); } void MA2_Backward(int Speed1) { int Speed2=255-Speed1; analogWrite(IA1,Speed2); digitalWrite(IA2,HIGH); } void MB1_Forward(int Speed1) { analogWrite(IB1,Speed1); digitalWrite(IB2,LOW); } void MB2_Backward(int Speed1) { int Speed2=255-Speed1; analogWrite(IB1,Speed2); digitalWrite(IB2,HIGH); } 结果 电机正反转 本文整理于 DFRobot wiki

Arduino伺服电机驱动-Veyron Servo Driver 24-Channel
type: item
date: 2016-06-06T12:03:00+00:00
description: 简介 注意： 1.在没有认真阅读本说明之前，请勿给模块加电！错误接线将导致模块永久性损坏或烧毁微控制器； 2.请认真查看引脚功能说明，正确接线！请勿将电源反接，否则将导致模块永久性损坏； 3.请勿使用超出额定电压的电源！保证电源的稳定，如果出现高压脉冲，可能会导致微控制器永久性损坏； 4.本产品无防水防潮功能，请在干燥环境下保存或使用！不可将重物堆积在上面； 5.请勿给Maple RET6芯片烧写任何程序，否则预装的程序将会丢失，无法读取任何指令。 Veyron Servo Driver 24-Channel是专为人形机器人、蜘蛛机器人、机械手等多舵机使用而量身定做的多路舵机控制器。 控制器还增加了无线数传接口，兼容DFRobot出品的蓝牙模块和APC220无线数传以及Xbee模块，可实现无线远程控制。 Veyron Servo Driver 24-Channel控制方式包括实时、定时、定速控制等。 技术参数 输出通道：24路（脉冲调制输出或TTL电平输出）； 舵机供电：DC4.8V~6V； 逻辑供电：DC6V~12V或USB供电（具有自恢复保险丝，调试时使用）； 驱动分辨率：1uS, 0.09°； 驱动速度分辨率：1uS/秒，0.09°/秒； 通讯接口：MicroUSB/TTL串口接口； 串口波特率：2400、9600、38.4k、115.2k可设置； 电路板尺寸：57.3 x 72.3mm； 重量：26g 性能描述 目前市面上功能最强、可靠性最高的MicroUSB版Veyron Servo Driver 24-Channel舵机控制器，核心控制部件采用了高性能、低功耗的STM32F103单片机，具有功能强大、命令执行速度快、控制精度极高、I/O 端口驱动能力强等特点； 电路布局紧凑合理，采用贴片式设计使电路板体积大大缩小，同时具有很强的抗干扰性能； 目前市面上的电脑都很少提供串口，而较多的是USB接口，所以本产品采用了USB接口，方便没有串口的台式电脑和笔记本使用； 使用2位DIP拨码开关设置波特率； 提供蓝牙模块、Xbee模块和APC220无线数传接口，可实现远程控制； 支持Futaba、Hitec、辉盛以及大部分常见舵机； 舵机可控范围：0~180°（360° 连续旋转需对舵机进行改装）； 舵机模式：单舵机控制，群舵机控制，群控制中，被编入同一群的舵机可以在旋转角度大小不同的时候能做到自动协调速度，同启同止，此功能在设计多自由度仿生机器人时非常实用，可使动作平滑、流畅； 控制方式包括：即时、定时、定速控制等。 引脚定义 控制器测试的基本示例 这一个章节注重于Veyron Servo Driver 24-Channel的基本功能。通过这个示例，你可以很方便的搭建你自己的舵机控制应用. 准备材料 Veyron Servo Driver 24-Channel ×1 Micro USB 线 ×1 TowerPro SG90舵机 ×3 5V舵机供电电源 ×1 串口工具软件 ×1 详细教程 1.初次使用Veyron Servo Driver 24-Channel，都需要为其安装DFU和虚拟串口两个驱动程序。首先按照如下步骤安装DFU驱动程序： 在windos环境下安装： 1） 将Veyron Servo Driver 24-Channel连接到计算机的USB接口。 2） 按下左下角的复位键（印有“RET”的按键），这时蓝色指示灯会快速闪烁6次，然后慢闪烁几次。 3） 再次按下复位键，这次在蓝色指示灯快速闪烁6次期间按下另一个键（右上角，印有“BOOT0”）并保持不放，直到指示灯开始慢闪烁时放开。蓝色指示灯会一直闪烁，使你有机会安装DFU驱动程序。 4） Windows会提示你需要驱动程序，人工指定驱动程序所在目录位置，选择DFservo文件夹中的mapleDrv\dfu。下一步安装虚拟串口驱动程序： 5） 复位Veyron Servo Driver 24-Channel的RET按键，等待蓝色指示灯停止闪烁。此时Windows会提示安装驱动程序，同样，人工指定驱动程序所在目录为DFservo文件夹中的mapleDrv\serial。 在Linux环境下安装步骤如下： 1）首先确认是否已经安装了JRE，如果没有，可以通过如下命令安装： sudo aptitude install openjdk-6-jre 2）解压压缩文件到合适的位置（例如桌面）。 3）打开解压压缩文件得到的文件夹，运行其中的install-udev-rules.sh，出现要求输入用于获得管理员权限的密码的提示。 4）用“sudo restart udev”命令重启udev即可。 在Mac环境下安装步骤如下： 1）双击你所下载的DMG文件使该镜像被加载即可。 2.连接…