找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 679|回复: 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的轮子有问题
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
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 | 只看该作者
电路问题可能性比较大,先搭建测试稳定环境可以了再定位问题
回复

使用道具 举报

5#
ID:255377 发表于 2025-12-9 21:49 | 只看该作者
用万用表检查电路
回复

使用道具 举报

6#
ID:1164708 发表于 2025-12-10 00:46 来自触屏版 | 只看该作者
用示波器测看看有没有pwm波形试试
回复

使用道具 举报

7#
ID:844772 发表于 2025-12-11 15:07 | 只看该作者
用的啥模块,拍个照片,看看怎么接线的。经常看到有的模块跳线弄错。
回复

使用道具 举报

8#
ID:738987 发表于 2025-12-12 12:44 | 只看该作者
检查电机驱动模块
回复

使用道具 举报

9#
ID:1161482 发表于 2025-12-12 16:55 | 只看该作者
会不会是那个轮子的电机需要的电压比较高,换个轮子试试
回复

使用道具 举报

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

使用道具 举报

11#
ID:1164343 发表于 2025-12-24 13:40 | 只看该作者
已经解决了,是单片机控制那个轮子的引脚出了问题
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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