找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 883|回复: 10
收起左侧

51单片机小车只有3个轮子能动,有一个动不了

[复制链接]
ID:1164343 发表于 2025-12-5 21:21 | 显示全部楼层 |阅读模式
代码如下
#include <REGX52.H>


sbit PWML = P1^0;   
sbit AIN1 = P1^1;   
sbit AIN2 = P1^2;   
sbit PWMR = P1^3;   
sbit BIN1 = P1^4;   
sbit BIN2 = P1^5;   
sbit IR = P3^0;      


sbit BPWMA = P0^0;   
sbit BAIN2 = P0^1;   
sbit BAIN1 = P0^2;   
sbit BBIN1 = P0^3;   
sbit BBIN2 = P0^4;   
sbit BPWMB = P0^5;   


void pwm_set(unsigned char dutyL, unsigned char dutyR)
{
    unsigned char i;
    for(i = 0; i < 100; i++)
    {
        
        PWML = (i < dutyL);   
        PWMR = (i < dutyR);   
        
        
        BPWMA = (i < dutyL);
        BPWMB = (i < dutyR);   
    }
}


void forward(unsigned char speed)
{
   
    AIN1 = 1;   
    AIN2 = 0;
    BIN1 = 1;   
    BIN2 = 0;
   
    BAIN1 = 1;  
    BAIN2 = 0;
    BBIN1 = 1;  
    BBIN2 = 0;
   
   
    pwm_set(speed, speed);
}


void stop(void)
{
   
    AIN1 = 0;
    AIN2 = 0;
    BIN1 = 0;
    BIN2 = 0;
   
    BAIN1 = 0;
    BAIN2 = 0;
    BBIN1 = 0;
    BBIN2 = 0;
   
   
    PWML = 0;
    PWMR = 0;
    BPWMA = 0;
    BPWMB = 0;
}


void main()
{
   
    stop();
   
    while(1)
    {
        
        if(IR == 0)   
        {
            stop();  
        }
        else         
        {
            forward(70);  
        }
    }
}
只有那个BAIN1和BAIN2的轮子有问题
回复

使用道具 举报

ID:235200 发表于 2025-12-6 14:22 | 显示全部楼层
应该是电路的问题,跟程序没有关系,一般电机驱动模块能驱动两个电机,你能有3个轮子动,估计驱动模块问题不大,最有可能的是虚焊和断线
回复

使用道具 举报

ID:1164343 发表于 2025-12-6 19:03 | 显示全部楼层
csmyldl 发表于 2025-12-6 14:22
应该是电路的问题,跟程序没有关系,一般电机驱动模块能驱动两个电机,你能有3个轮子动,估计驱动模块问题不大, ...

电机驱动模块换了一个,那上面的所有线我都换了,那个轮子的电机我也测试了,他在直接接电源时可以转动,但接到电机驱动模块使,他不转
回复

使用道具 举报

ID:327265 发表于 2025-12-7 18:11 | 显示全部楼层
电路问题可能性比较大,先搭建测试稳定环境可以了再定位问题
回复

使用道具 举报

ID:255377 发表于 2025-12-9 21:49 | 显示全部楼层
用万用表检查电路
回复

使用道具 举报

ID:1164708 发表于 2025-12-10 00:46 来自触屏版 | 显示全部楼层
用示波器测看看有没有pwm波形试试
回复

使用道具 举报

ID:844772 发表于 2025-12-11 15:07 | 显示全部楼层
用的啥模块,拍个照片,看看怎么接线的。经常看到有的模块跳线弄错。
回复

使用道具 举报

ID:738987 发表于 2025-12-12 12:44 | 显示全部楼层
检查电机驱动模块
回复

使用道具 举报

ID:1161482 发表于 2025-12-12 16:55 | 显示全部楼层
会不会是那个轮子的电机需要的电压比较高,换个轮子试试
回复

使用道具 举报

ID:92781 发表于 2025-12-22 10:14 | 显示全部楼层
程序没有明显问题,检测一下电路,另外关注一下P0口的几个输出是不是有问题,P0默认是开漏输出,看看上拉电路。
回复

使用道具 举报

ID:1164343 发表于 2025-12-24 13:40 | 显示全部楼层
已经解决了,是单片机控制那个轮子的引脚出了问题
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

Powered by 单片机教程网

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