打印

关于L298N双电源驱动直流电机问题

[复制链接]
7238|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
pdc201|  楼主 | 2010-10-14 18:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 pdc201 于 2010-10-15 12:03 编辑

学校要做个课程设计,要求控制电机正反转,看了L298N的资料觉得挺简单的,就用Protues仿真,但是实物做起来却不运行,怎么回事,请各位大虾帮忙看看~万分感谢。。。。。我的芯片VCC接正12V,VS接负极,单片机接5V,GND接负极,两边的负极想连。我是用单片机直接输入高低电平控制正反转的,是不是还要加些什么元件才能控制L298N呢~?~??~。。。。
还有请问是不是IN1 IN2其中有一个管脚一定要输出PWM信号才可以驱动电机?我的程序如下,因为不会PWM控制,所以只用了高低电平,能否帮忙修改修改。

#include<reg52.h>
int d;
sbit a=P2^0;        //单片机控制芯片的IO口
sbit b=P2^1;
sbit e=P2^2;
#define uchar unsigned char
#define uint  unsigned int

sbit KEY1=P3^2;
sbit KEY2=P3^3;
sbit KEY3 = P3^4;          //独立按键



void delayms(uint);

void main()
{

        while(1)
        {
        
                if(KEY1== 0)
                {        
                        delayms(10);                           // 去抖延时10ms      
                        if(KEY1 == 0)
                        {
                                e=1;                        //电机正转
                                a=1;
                                b=0;
                                while(!KEY1);  //等待按键释放

                        }
                        
                }



                if(KEY2== 0)
                {        
                        delayms(10);                                       
                        if(KEY2 == 0)
                        {                        
                                e=1;                //电机反转
                                a=0;
                                b=1;
                                while(!KEY2);
                        }
                        
                }



                if(KEY3== 0)
                {         
                        delayms(10);
                        if(KEY3 == 0)
                        {
                                e=0;        //电机快速停止
                                a=b;
                                b=a;
                                while(!KEY3);
                        }
                                                   
                }        
            
     }

}


void delayms(uint xms)
{
        uint i,j;
        for(i=xms; i<0; i--)   //i=xms 即延时约xms毫秒
            for(j=110; j<0; j--);
}

2F165)NJ$Q}Z$H{EIN~%7}X.jpg (193.85 KB )

2F165)NJ$Q}Z$H{EIN~%7}X.jpg

相关帖子

沙发
haolyj98| | 2010-10-14 20:26 | 只看该作者
试下这电路吧,其中L298芯片的4脚和9脚再串联一个电容就可以了

画图软件.png (34.6 KB )

画图软件.png

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
pdc201 + 1 给了很好的提示,谢谢。
板凳
pdc201|  楼主 | 2010-10-15 12:08 | 只看该作者
2# haolyj98

4和9脚都接到+12V吗?还有P1^7是不是一定要输出PWM信号?本人不会编写PWM信号,肯请帮忙。谢谢哦。急。。。

使用特权

评论回复
地板
john_light| | 2010-10-15 12:28 | 只看该作者
PWM信号非必须,非全速时可以利用PWM调速。

使用特权

评论回复
5
pdc201|  楼主 | 2010-10-15 15:53 | 只看该作者
4# john_light

明白明白,今天发现应该是L298N烧了,伤心啊,9块的芯片,竟然烧了。。。

使用特权

评论回复
6
pdc201|  楼主 | 2010-10-15 16:01 | 只看该作者
5# pdc201
请问如何才能防止L298N烧片啊?我决定再做一次。

使用特权

评论回复
7
触觉的爱| | 2010-10-16 10:52 | 只看该作者
输出端接续流管呀,严格按照298的文档提供的图来搭

使用特权

评论回复
8
haolyj98| | 2010-10-16 20:57 | 只看该作者
4脚接+12V(或9V也行,具体看电机型号),9脚接逻辑电平+5V,不能接12V。PWM时用来改变电机速度的,如果你只是全速控制电机正反转的话可以不写,但一般都要写的,PWM信号程序不难的,就用个定时计数器中断就能实现,你可以网上找下。

使用特权

评论回复
9
haolyj98| | 2010-10-16 20:58 | 只看该作者
5# pdc201
在2脚,3脚输出端加四个续流二极管,可以防止芯片烧掉,注意二极管极性不要接反

使用特权

评论回复
10
zy19860818| | 2010-10-16 22:03 | 只看该作者
学习 学习:):)

使用特权

评论回复
11
pdc201|  楼主 | 2010-10-17 09:18 | 只看该作者
9# haolyj98

那续流二极管的VCC和地接+5V还是+12V,还有L298N的VCC和VS到底接哪里?

使用特权

评论回复
12
pdc201|  楼主 | 2010-10-17 09:22 | 只看该作者
9# haolyj98

谢谢高手指点啊,我还是初学者,问题问得简单别见怪啊,:) 。

使用特权

评论回复
13
haolyj98| | 2010-10-20 19:23 | 只看该作者
12# pdc201
那续流二极管的VCC和地接+12V,还有L298N的VCC接5V,VS(4脚)接12V

使用特权

评论回复
14
pdc201|  楼主 | 2010-10-20 22:38 | 只看该作者
13# haolyj98

最后是不是要+5V的地和+12V的地,也就是负极是不是要连接在一起?

使用特权

评论回复
15
haolyj98| | 2010-10-25 09:13 | 只看该作者
14# pdc201
要的,+5和+12V的地还有单片机的地都要接一起,这是基本常识

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

10

帖子

1

粉丝