智能车用PWM控制,设置前行,程序没有错误,为什么车子两个轮的转速不同,有什么解决办法没有呀

你好,先给个程序,下面这个程序肯定是没问题的,你看看拷进去能不能同速运行,如果还不能的话,看一下你的车子是不是那种传动结构很多的(一个轮子与电机之间3个齿轮以上就算是了),是的话,调整一下齿轮等的结合让两个轮子的摩擦力什么的相同就行了,一般情况下这种车很难调整的。肯定有效的解决方法是买个码盘,也不贵呗,加个自动调速系统(简单的比较一下转速,然后用if语句调整PWM占空比就好了)可以保证走直线。程序如下:

#include<reg51.h>

/*定义按键和L298N引脚*/
sbit BZ1=P0^0; sbit IN1=P2^0;
sbit BZ2=P0^1; sbit IN2=P2^1;
sbit BF1=P0^2; sbit IN3=P2^2;
sbit BF2=P0^3; sbit IN4=P2^3;
sbit BJIA1=P0^4;
sbit BJIA2=P0^5;
sbit BJIAN1=P0^6;
sbit BJIAN2=P0^7;
/*函数声明*/
void delay(t);
void Z1();
void Z2();
void F1();
void F2();
void JIA1();
void JIA2();
void JIAN1();
void JIAN2();
void change();
char W=0;//W用来在调速状态下选择电机;
int t1=80,t2=80;

/*延时函数*/
void delay(int t)
{while(t--);}
/*正转函数1*/
void Z1()
{IN1=1;IN2=0;W=1;}
/*正转函数2*/
void Z2()
{IN3=1;IN4=0;W=1;}
/*反转函数1*/
void F1()
{IN1=0;IN2=1;W=2;}
/*反转函数2*/
void F2()
{IN3=0;IN4=1;W=2;}
/*加速函数1*/
void JIA1()
{t1+=10;}
/*加速函数2*/
void JIA2()
{t2+=10;}
/*减速函数1*/
void JIAN1()
{t1-=10;}
/*减速函数2*/
void JIAN2()
{t2-=10;}
/*停止*/
void TING()
{IN1=IN2=IN3=IN4=0;}
/*制动函数*/
void ZHI()
{IN1=IN2=IN3=IN4=1;}
/*按键信号*/
void change()
{
if(BZ1==0){Z1();delay(t1);TING();delay(255-t1);}
if(BZ2==0){Z2();delay(t2);TING();delay(255-t2);}
if(BF1==0){F1();delay(t1);TING();delay(255-t1);}
if(BF2==0){F2();delay(t2);TING();delay(255-t2);}
if(BJIA1==0&&t1<235){delay(5);JIA1();}
if(BJIA2==0&&t2<235){delay(5);JIA2();}
if(BJIAN1==0&&t1>80){delay(5);JIAN1();}
if(BJIAN2==0&&t2>80){delay(5);JIAN2();}

if(BZ1==0&&(BZ2!=0&&BF1!=0&&BF2!=0)){delay(255);}
if(BZ2==0&&(BZ1!=0&&BF1!=0&&BF2!=0)){delay(255);}
if(BF1==0&&(BZ1!=0&&BZ2!=0&&BF2!=0)){delay(255);}
if(BF2==0&&(BZ1!=0&&BZ2!=0&&BF1!=0)){delay(255);}

}
/*主程序*/
void main()
{
P0=0xff;
while(1)
{change();}
}

如果可以可以将程序发看一下。个人认为还是程序存在问题
670642033 qq

驱动芯片的问题吧,用同一个口控制。

智能小车速度太快,没法控制怎么办?用PWM调整转速也没反应~

控制电机时,可以延时长一点,把速度降下来。

增加电机驱动的驱动能力,即提高电压。
一般两个电机的阻力不同,电压小的情况下容易造成堵转,电流会很大,造成驱动模块分压增加,电机两端电压就更小了,转不起来的那个轮子就启动不起来了。。。。
这种情况驱动模块发热很厉害,很容易烧驱动芯片的。
希望对你有所帮助

#15958933965# 如何使机器人小车的两侧轮子PWM控制 - ******
#唐帝# 你这说的也太简单了,能不能具体点.机器人小车两侧的轮子用两个PWM控制,就得做两个电机的驱动电路,然后输出PWM信号就可以调整两个电机各自的速度了

#15958933965# 增量式PID算法控制小车速度 ******
#唐帝# 首先声明一下,你的是多变量输入和输出,运用简单的单回路控制系统估计效果不太好. 如果你确实要用PID,下面是建议: 1,直线运动,两个输出是一样的,所以公用一个函数,(若有直线纠正的话,你懂怎么办的).由于你的电机还有传...

#15958933965# STC12C5A60S2单片机的P1.3 P1.4怎么输出PWM控制电机调速? ******
#唐帝# <p>这是软件模拟的 PWM 仿真实例,STC系列单片机有带硬件 PWM 控制器,在数据手册是有例程.</p>

#15958933965# 做单片机小车的实验,用PWM的输出控制小车 - ******
#唐帝# 第一种可能:PWM控制频率太低了.因为PWM是开关量信号,如果你的频率太低了,那么电机就会抖出现你刚才说的情况.第二种可能:你的占空比给的太低.我想问你一句,你用的单片机是有内部PWM模块,还是自己用I/O口模拟的PWM信号?

#15958933965# 寻迹感光智能车使用手册 - ******
#唐帝# 摘要 基于HCSl2单片机设计一种智能车系统.在该系统中,由红外光电传感器实现路径识别,通过对小车速度的控制,使小车能按照任意给定的黑色引导线平稳地寻迹.实验证明:系统能很好地满足智能车对路径识别性能和抗干扰能力的要求,...

#15958933965# 飞思卡尔智能车求助,电机反转PWM的初始化 - ******
#唐帝# PWMDTY23是控制电机上的电压占空比的,进而控制电压 ,速度和电压有关啊 要是换向的话,无非就是把电机里相线的通电顺序改为相反啊,实现的话 我觉得不是添加什么程序,而是改一下,将相线的通电顺序改为相反.

#15958933965# pwm 应用在控制汽车中的哪个电机 - ******
#唐帝# 1、所有无刷电机的控制器都用到了PWM调制技术,主要是控制电机3相6路的开断,调制6路MOS的通断2、部分转换器和充电器也有用PWM技术,都是调整电压输出的

#15958933965# 用STC89C52单片机通过调试PWM来控制小车循迹走直线,其中利用定时器是怎么控制pwm的,谢谢 - ******
#唐帝# PWM那款单片机如果带这个功能 的,可以去查查相关手册,STC的很多型号的都有PWM功能,不过,不知道您是怎么来控制小车,我看最多也就能给电机调一下速罢了.没有PWM功能的单片机,可以模拟出PWM,这个网上有很多程序下载

#15958933965# 飞思卡尔智能车控制舵机时,PWM为什么要级联? - ******
#唐帝# 举个夸张的例子:不级联的时候,舵机可以转0,30,60,90,120,150,180.级联后或许就可以转1,2,3,4,5,6,7,8,9,10,11,12,13,...............170,171,172,173,174,175,176,177,178,179,180.这就是影响车稳定性的一个重要因素了.

  • 书51单片机智能小汽车前进后退可变速及带显示功能的电机驱动系统的设计...
  • 答:你先把电机驱动电路搞出来,然后用pid控制小车上的传感器,来实现前进后退和变速的功能。至于显示就简单了,只要在小车上装一个数码管就可以了。如果你想做的话,可以找我,我可以给你提供一些资料。我的邮箱是124503768@qq....

  • 如何实现对智能车的电机调速以及舵机的控制?谢谢!!!
  • 答:用PWM调速,单片机输出PWM控制信号,控制电机的驱动电路,就可以实现调速了,原理是用的调节平均电压调速。舵机也是用PWM,舵机信号线直接连接单片机就行,不用中间电路,舵机的摆动角度理论上和脉冲宽度成一次关系 ...

  • 电动车控制器作用及详解
  • 答:电动车控制器的基本原理是通过PWM控制方式来调整电机的转速和转向,PWM即脉宽调制技术,就是将一个固定频率的方形波从“高”电平向“低”电平转变的时间占总周期的百分比表示成脉冲宽度,通过不断调整脉冲宽度来改变电机输出的...

  • 小车为什么要用到PWM控制
  • 答:PWM主要是用来改变输出电压,进而控制电机转速,这是一种调压式的电机调速方法。。。如果不用PWM,前进和后退是没有问题的,因为这二者只涉及电极两端电压极性问题,而与电压大小无关。。不知道你是靠什么转向,如果是控制...

  • PWM电路的原理
  • 答:数字控制 通过以数字方式控制模拟电路,可以大幅度降低系统的成本和功耗。此外,许多微控制器和DSP已经在芯片上包含了PWM控制器,这使数字控制的实现变得更加容易了。 简而言之,PWM是一种对模拟信号电平进行数字编码的方法。通...

  • PWM程序控制电机的转速
  • 答:PWM波是控制直流电机的 通俗的说,5V直流电机在5V的情况下肯定速度最快,在0V的情况下肯定不转了 这样电源0~5V就对应了不同的速度。用PWM波控制mos管来给直流电机供电。PWM就是一个矩形波,通过控制高电平和低电平的...

  • 用C语言写一个AT89S52的PWM控制程序.
  • 答:if(PWM!=0x01)//判断是否到达下限 {PWM-- ;delayms(10);} else Lamp() ;} while(K2==0);//减少脉宽 } } void T0X() interrupt 1 // 定时器0中断服务程序.{ TR1=0 ;TH0=0xfc ;//赋初值 TL0=0x66 ;...

  • 飞思卡尔智能车电磁组k60程序中,为什么初始化2个ftm_pwm波去控制电机的...
  • 答:51也有这种方式做pwm输出,同样,一个是用定时器0做载频,定时器1做pwm调制,我不知道飞思卡尔单片机有没有专用的pwm口输出,好果没有专用的pwm口输出,那就是我前面说的这样,主要用与调节电机的快慢,...

  • 智能车中舵机的功能和用法?
  • 答:回答:舵机就相当于汽车的方向盘,用于控制小车的行驶方向。智能车中的舵机一般有模拟和数字两种舵机。控制方面非常简单,舵机有三根线两根用于给舵机提供6V的电源正负极,中间一根线提供PWM波,根据PWM波的占空比变化,舵机会做出相应...

  • 智能小车步进电机转弯,两电机转速不同,单片机控制,程序怎么写_百度知 ...
  • 答:你自己先建一个函数,其中的参数传递用的就是两边电机想要的转速。而在函数内容中,你根据传递过来的参数值,去调整控制各个电机的脉冲频率就OK了。例如,如果你是用定时器+普通IO口做的脉冲输出,那么你可以调整定时时间,...

    为传递更多家电数码信息,若有事情请联系
    数码大全网