佚名通过本文主要向大家介绍了智能小车为什么前进的时候一直在原地打转等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 智能小车为什么前进的时候一直在原地打转
描述:
程序在这里
#include "reg52.h"
sbit IN1=P1^2;
sbit IN2=P1^3;
sbit ENA=P1^4;
sbit ENB=P1^5;
sbit IN3=P1^6;
sbit IN4=P1^7;
unsigned char sudu=10;
unsigned char time=0;
void delay(unsigned int m)
{
while(--m);
}
void delays(unsigned int t)
{
while(t--)
{
delay(245);
delay(245);
}
}
void zuoqian()//左轮前进转动
{
ENA=1;
IN1=0;
IN2=1;
}
void zuohou()//左轮后退转动
{
ENA=1;
IN1=1;
IN2=0;
}
void youqian()//右轮前进转动
{
ENB=1;
IN3=1;
IN4=0;
}
void youhou()//右轮后退转动
{
ENB=1;
IN3=0;
IN4=1;
}
void zuozhidong()//左轮制动
{
ENA=1;
IN1=0;//IN1=1;
IN2=0;//IN2=1;
}
void youzhidong()//右轮制动
{
ENB=1;
IN3=0;//IN3=1;
IN4=0;//IN4=1;
}
void qianjin()
{
IN1=0;
IN2=1;
IN3=1;
IN4=0;
ENA=1;
ENB=1;
}
void houtui()
{
zuohou();
youhou();
}
void tingzhi()
{
zuozhidong();
youzhidong();
}
void turnleft()
{
zuozhidong();
youqian();
}
void turnright()
{
youzhidong();
zuoqian();
}
void time_0()interrupt 1
{
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;
time++;
}
void main()
{
unsigned char speed=5;
TMOD=0x00;
EA=1;
TR0=1;
ET0=1;
while(1)
{
IN1=0;
IN2=1;
IN3=1;
IN4=0;
if(time==0)
{
ENA=ENB=1;
}
if(time==speed)
{
ENA=ENB=0;
}
if(time==30)
time=0;
speed++;
if(speed==30)
speed=0;
delays(200);
}
}
还有就是怎么让他不打转,一直走直线呢
描述:
单机片
我知道这是因为电动机的转速不一样引起的,但是我不知道为什么会引起转速不同,求指教,程序在这里
#include "reg52.h"
sbit IN1=P1^2;
sbit IN2=P1^3;
sbit ENA=P1^4;
sbit ENB=P1^5;
sbit IN3=P1^6;
sbit IN4=P1^7;
unsigned char sudu=10;
unsigned char time=0;
void delay(unsigned int m)
{
while(--m);
}
void delays(unsigned int t)
{
while(t--)
{
delay(245);
delay(245);
}
}
void zuoqian()//左轮前进转动
{
ENA=1;
IN1=0;
IN2=1;
}
void zuohou()//左轮后退转动
{
ENA=1;
IN1=1;
IN2=0;
}
void youqian()//右轮前进转动
{
ENB=1;
IN3=1;
IN4=0;
}
void youhou()//右轮后退转动
{
ENB=1;
IN3=0;
IN4=1;
}
void zuozhidong()//左轮制动
{
ENA=1;
IN1=0;//IN1=1;
IN2=0;//IN2=1;
}
void youzhidong()//右轮制动
{
ENB=1;
IN3=0;//IN3=1;
IN4=0;//IN4=1;
}
void qianjin()
{
IN1=0;
IN2=1;
IN3=1;
IN4=0;
ENA=1;
ENB=1;
}
void houtui()
{
zuohou();
youhou();
}
void tingzhi()
{
zuozhidong();
youzhidong();
}
void turnleft()
{
zuozhidong();
youqian();
}
void turnright()
{
youzhidong();
zuoqian();
}
void time_0()interrupt 1
{
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;
time++;
}
void main()
{
unsigned char speed=5;
TMOD=0x00;
EA=1;
TR0=1;
ET0=1;
while(1)
{
IN1=0;
IN2=1;
IN3=1;
IN4=0;
if(time==0)
{
ENA=ENB=1;
}
if(time==speed)
{
ENA=ENB=0;
}
if(time==30)
time=0;
speed++;
if(speed==30)
speed=0;
delays(200);
}
}
还有就是怎么让他不打转,一直走直线呢