L293D驱动模块的使用详解

 

  该L293D驱动模块是专门为arduino设计的,网上使用arduino驱动该模块的资料很多,但是关于使用其他单片机驱动该模块是资料比较少,本人在学习中也是花了很多时间查找资料和摸索,该模块直接整块插入arduino,然后安装专门的库文件,就可以直接使用,而51单片机则需要自己进行接线和了解模块的原理,所以在此为该模块做个比较详细的介绍。

  模块功能:

  *2个5V伺服电机(舵机)端口联接到的高解析高精度的定时器无抖动!
  *多达4个双向直流电机及4路PMM调速(大约0.5%的解析度)
  *多达2个步进电机正反转控制,单/双步控制,交错或微步及旋转角度控制。
  *4路H-桥:L293D芯片每路桥提供0.6A (峰值1.2A)电流并且带有热断电保护, 4. 5Vto36V。
  *下拉电阻保证在上电时电机保持停止状态。
  *大终端接线端子使接线更容易(10-22AWG)和电源。
  *带有复位按钮。
  *2个大终端外部电源接线端子保证逻辑和电机驱动电源分离
下载方便使用的软件库快速进行项目开发
适用范围:初学者,实验器材平台,互动电子,机器人等。
特点:功能多,操作方便,有强大的驱动库支持及功能更新。
缺点:I/0占用较多在同时驱动四路电机的情况下(相对Arduino1/0少的版本而言),小功率。
可驱动4路直流电机或者2路步进电机的同时还能驱动2路舵机
支持Arduino UNO. Arduino Mega2560
您可以这样搭配
驱动四路直流电机和两路舵机
驱动两路直流电机和一路步进电机和两路舵机
驱动两路步进电机和两路舵机
可以同时控制4个直流电机和2个步进电机和两个伺服电机(舵
机)。有专门的代码库。导入库后,简单使用。

模块接线图:

注意,使用步进电机会占用2个直流电机接口,电机驱动电源需要单独供电给电机,电路驱动电源需要使用51单片机提供的电源,也可以单独供电,但是必须要跟单片机共地,否则会无法将数据写入模块。

模块引脚说明(该模块是为arduino设计的,所以使用51单片机驱动该模块有些引脚是没用的,如:0,1,2,13,ARef):

3:直流电机M2的PWM信号端,与左边的L293D芯片(IC1)的9号脚相连

4:74HC595芯片的数据输入时钟端(上升沿有效),与中间的74HC595芯片(IC3)的11号脚相连

5:直流电机M4的PWM信号端,与右边的L293D芯片(IC2)的1号脚相连

6:直流电机M3的PWM信号端,与右边的L293D芯片(IC2)的9号脚相连

7:74HC595芯片的输出使能端(低电平有效),与中间的74HC595芯片(IC3)的13号脚相连

8:74HC595芯片的串行数据输入端,与中间的74HC595芯片(IC3)的14号脚相连

9:舵机2的PWM信号端

10:舵机1的PWM信号端

11:直流电机M1的PWM信号端,与左边的L293D芯片(IC2)的1号脚相连

12:74HC595芯片的并行数据输出时钟端(上升沿有效),与中间的74HC595芯片(IC3)的12号脚相连

A0~A5可以自行焊接排针作为扩展,可以提供给舵机也可以提供给测速模块,接线柱的电机驱动电源是提供给4个直流电机的,引脚的5V电路驱动电源是提供给芯片和舵机的,以及右下脚的5V电源,黄色的跳线帽将电机驱动电源和9V引脚相连,电机驱动电源提供多少伏的电压,9V接脚就是多少伏的,并不是固定9V,所以请注意,关于电机驱动电源资料上说的是4.5V到36V,建议在12V之内,L293D的芯片是4.5V到36V的,但是该模块上的其他元件不一定能承受,本人就弄坏一个板子,起初是74HC595芯片莫名其妙的烧坏,然后更换芯片后,在20V电压下调压时拧错了反向,导致一个电容爆炸了,但是肯定是没有超过36V的,该模块的电容的击穿电压是16V,20V以下是没有问题的,还要注意的是电流,不能过大,一般12V的电压绝对够用了。

模块上还有一些被焊死的接口,是和直流电机接线柱相邻的(蓝色区域其他引脚是GND),可以自行焊上排针,这样就可以使用杜邦线连接电机了或者串上电阻接上LED做指示灯,我的板子是自己把引脚都焊上来了。

模块原理:

改模块是使用L293D来驱动电机的,中间有一个74HC595芯片,是将串行信号转为并行信号的,因为该模块是为arduino设计的,arduino的I/O口较少,控制4个直流电机需要12个引脚,使用74HC595可以减少4个引脚的使用,也可以取掉74HC595芯片,焊接接线,直接使用51单片机并行控制2个L293D芯片从而控制电机。

  74HC595芯片:

简单的说,先将模块的引脚7置0,然后模块的引脚4(74HC595芯片的数据输入时钟端)接受到一个上升沿,就将芯片中的8位数据左移一位,空出低位将引脚8(74HC595芯片的串行数据输入端)的0或1信号写入低位,写入八次就将控制4个电机的8位信

号写入74HC595的芯片中了(M3M4M3M2M1M1M2M4),然后在给引脚12一个上升沿,就将芯片中的数据输出在芯片的引脚上(Q0~Q7)。74HC595芯片详解

  L293D芯片:

 

1号和9号都是使能端,可以输入PWM信号来控制电机,当1脚置1时,2脚置1,则3脚输出高电压,7脚置0,则6脚输出低电压,而3脚和6脚接电机,产生电压带动电机转动,如果2脚置0,7脚置1,则电机反转,右半边也是一样的原理。而2,7,10,15脚接的是74HC595的输出端,所以使用74HC595就控制了2个L293D芯片,然后就可以控制电机的转动。L293D芯片详解

驱动代码:

#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint  unsigned int
sbit SER=P1^0;   //串行数据输入,脚8 
sbit SCK=P1^1;   //数据输入时钟线,脚4 
sbit RCK=P1^2;  //数据输出时钟线,脚12 
sbit EN=P1^3;  //  74hc595的使能输出 要为0,脚7 
sbit PWM_M1=P1^4;  // L293d的MA1使能,电机M1的pwm ,脚11 
sbit PWM_M2=P1^5;	//脚3 
sbit PWM_M3=P1^6;	//脚6 
sbit PWM_M4=P1^7;	//脚5 

void HC595SendData(unsigned char SendVal)//发送一个字节
{  
	unsigned char i;
	for(i=0;i<8;i++)
	{
		if((SendVal<<i)&0x80) SER=1;
		else SER=0;
		SCK=0;//产生上升沿发送数据
		_nop_();
		_nop_();
		SCK=1;
   }
}
void HC595ShowData()//产生上升沿输出数据
{
	RCK=0;
	_nop_();
	_nop_();
	RCK=1;
}
void delay(uint z)
{
	uint  x,y;
	for(x=z;x>0;x--)
        for (y=123;y>0;y--);
}
void main()
{
    PWM_M1=1;
    PWM_M2=1;
    PWM_M3=1;
    PWM_M4=1;
    EN=0;
    HC595SendData(0x95);//M3M4M3M2M1M1M2M4:10010101 
    delay(10);
    HC595ShowData();
    while(1);
}

原理图(该图是网上找的,不太清晰,还有M3和M4它弄错了,我用黑色文字标明了一下):

PS:先给电路驱动电源,写入串行数据信号,再给电机驱动电源驱动电机,也是可以的。

前言: Arduino是一款很好的电子制作入门,有了电机扩展板可以很好的成为机器人开发平台。这里介绍一款能驱动各种简单到稍复杂项目的全功能的电机扩展板。这是一款常用的直流电机驱动模块,采用L293D芯片小电流直流电机驱动芯片。管脚被做成了Arduino兼容的,也方便了爱好者快速的基于Arduino的开发。 L293D电机驱动板概述: 该电机驱动板功能多,操作方便,有强大的驱动库支持及功能更新。适用于Arduino初学者,Arduino实验器材平台,Arduino互动电子,Arduino机器人等。可驱动4路直流电机或者2路步进电机的同时还能驱动2路舵机,支持最新Arduino UNO, Arduino Mega 2560 具体特性如下: 2个5V伺服电机(舵机)端口 联接到Arduino的高解析高精度的定时器-无抖动! 多达4个双向直流电机及4路PWM调速(大约0.5%的解析度) 多达2个步进电机正反转控制,单/双步控制,交错或微步及旋转角度控制。 4路H-桥:L293D 芯片每路桥提供.0.6A(峰值1.2A)电流并且带有热断电保护,4.5V to 36V。 下拉电阻保证在上电时电机保持停止状态。 大终端接线端子使接线更容易(10 - 22AWG)和电源。 带有Arduino复位按钮。 2个大终端外部电源接线端子 保证逻辑和电机驱动电源分离。 兼容Mega, Diecimila, & Duemilanove。 实物连接图如截图: L293D电机驱动板/马达板电路截图: L293D电机驱动板源码截图: 类似实物购买链接:https://s.taobao.com/search?q=motor+shield&commend=all&ssid=s5-e&search_type=item&sourceId=tb.index&spm=a21bo.7724922.8452-taobao-item.1&ie=utf8&initiative_id=tbindexz_20151127
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值