找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

关于L293D扩展板控制4个直流电机的问题,实物小车中电机不转

查看数: 5628 | 评论数: 15 | 收藏 1
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2020-4-16 19:01

正文摘要:

电池是9v的,板子工作电压好像是4.5-36v,我经过LM7805三端稳压后(万能表测输出电压为4.75v,不知道为什么不是5v),接到手中那两根线上,同时给单片机供电,不知道电机为什么不转,电机使能端(就是左右两排蓝色的 ...

回复

ID:703117 发表于 2020-4-23 21:48
已解决,谢谢各位大哥解答
ID:736378 发表于 2020-4-23 19:47
可以看看电压问题,仿真软件里没有电压的硬性要求
ID:703117 发表于 2020-4-23 19:11
上善若水001 发表于 2020-4-19 16:30
你给驱动板单独供电,再把驱动板的 负极 和单片机的 负极 相接,试试

弄好了,但是PWM又出问题。。
ID:228467 发表于 2020-4-19 16:30
brad1111 发表于 2020-4-17 19:45
驱动板的地是哪一个,不是只有电源出来的线一个正负极吗?

你给驱动板单独供电,再把驱动板的 负极 和单片机的 负极 相接,试试
ID:703117 发表于 2020-4-17 19:45
上善若水001 发表于 2020-4-17 10:13
不是必须要用PWM的,你直接给 使能端 高电平,INT1 INT2 一个高电平一个低电平,电机就能转动了。
还有 ...

驱动板的地是哪一个,不是只有电源出来的线一个正负极吗?
ID:729982 发表于 2020-4-17 10:19
pwm是步进电机
ID:228467 发表于 2020-4-17 10:13
brad1111 发表于 2020-4-17 09:31
大神们,这个电机会不会动,和PWM有关系吗,我程序没有弄pwm,如果需要的话能不能大概教一下怎么弄

不是必须要用PWM的,你直接给 使能端 高电平,INT1 INT2 一个高电平一个低电平,电机就能转动了。
还有,我怀疑你是不是没有把驱动板和单片机共地
ID:703117 发表于 2020-4-17 09:31
大神们,这个电机会不会动,和PWM有关系吗,我程序没有弄pwm,如果需要的话能不能大概教一下怎么弄
ID:703117 发表于 2020-4-17 08:53
我未曾来过 发表于 2020-4-16 23:48
你这个电机使能是0,到底是驱动芯片那里,还是单片机io口那里,讲道理好像没什么问题。但凡是仿真能实现, ...

不接电源转动轮子,驱动芯片的led会亮,算是电磁吗?
ID:729982 发表于 2020-4-16 23:48
你这个电机使能是0,到底是驱动芯片那里,还是单片机io口那里,讲道理好像没什么问题。但凡是仿真能实现,但是现实做不到的简单程序,绝大部分可能都是接线问题或者电磁干扰。你先搞明白io口那里有没有问题,但是你主函数一开始就使能了应该没啥问题。当然也有可能是电源问题
ID:703117 发表于 2020-4-16 22:29
我拿了两节5号干电池去测试每一个电机,电机和轮子是会转的,所以我感觉问题还是出在L293D上,具体是什么问题不太懂,希望大神能指导一下
ID:703117 发表于 2020-4-16 19:08
然后这是我的程序,大佬们也帮忙看一看
#include<reg51.h>
#include<intrins.h>
typedef unsigned char u8;
typedef unsigned int u16;
sbit PWM2A=P1^4;//定义M1电机为P1.4的I/O口,即为小车右边第一个电机
sbit PWM2B=P1^5;//定义M2电机为P1.5的I/O口,即为小车左边第一个电机
sbit PWM0B=P1^6;//定义M3电机为P1.6的I/O口,即为小车左边第二个电机
sbit PWM0A=P1^7;//定义M4电机为P1.7的I/O口,即为小车右边第二个电机
sbit SER  =P3^4;//定义74hc595芯片 DS脚数据线
sbit RCK  =P3^5;//定义 LATCH脚 输出存储器锁存时钟线
sbit SCK  =P3^6;//定义输入时钟线
void delay(void)//延迟500ms
{
  unsigned char a,b,c;
  for(c=23;c>0;c--)
   for(b=152;b>0;b--)
    for(a=70;a>0;a--);
}
void HC595SendData(u8 SendVal)
{
  u8 i;
  for(i=0;i<8;i=i++)
  {
   SER=SendVal&0x80;//1000 0000 1000 0000
   SendVal=SendVal<<1;//0000 0000 0000 0000          每次取1位左移
   SCK=0; //先将串行时钟输入端SH_CP置成低电平
   _nop_();
   _nop_();        //两个时钟周期
   SCK=1;        //数据在串行时钟输入端SH_CP的上升沿输入到移位寄存器
  }
   RCK=0; //锁存
   _nop_();
   _nop_();       
   RCK=1; //移位寄存器上升沿时,数据进入存储寄存器
}
void main()
{
PWM2A=1; //M1电机使能
PWM2B=1; //M2电机使能
PWM0B=1; //M3电机使能
PWM0A=1; //M4电机使能
HC595SendData(0x6a);//01101010 全部电机正转,小车前进
delay();
while(1);
}

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表