栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

2021-10-03

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

2021-10-03

                                                          51智能小车前进后退左右旋  首先了解电机驱动模块,为双H桥驱动;p1^2,p1^3,p1^4控制小车左电机p1^5,p1^6,P1^7控制小车右电机;将单片机上的P1^2~P1^6和PCB板上的P1^2~P1^6用杜邦线分别对应连接好,然后进行对电机驱动IO口定义;用宏定义对小车电机的使能,^正转,反转进行定义,方便以后写main函数,下面为QXA51.h函数
#ifndef __QXA51_H__
#define __QXA51_H__


sbit IN1=P1^2; //为1 左电机反转
sbit IN2=P1^3; //为1 左电机正转
sbit IN3=P1^6; //为1 右电机正转
sbit IN4=P1^7; //为1 右电机反转
sbit EN1=P1^4; //为1 左电机使能
sbit EN2=P1^5; //为1 右电机使能

#define left_motor_en		    EN1=1 //左电机使能
#define left_motor_stops		EN1=0 //左电机停止
#define right_motor_en		  EN2=1 //右电机使能
#define right_motor_stops		EN2=0 //右电机停止

#define left_motor_go		    IN1=0,IN2=1 //左电机正转
#define left_motor_back		  IN1=1,IN2=0 //左电机反转
#define right_motor_go		  IN3=1,IN4=0 //右电机正转
#define right_motor_back		IN3=0,IN4=1 //右电机反转

#endif

 

  以下为控制小车运动的main函数,用delay函数将小车的运动区分开,如果小车想右转则左轮正转,如果小车想左转则右轮正转

 

#include 
#include 

void delay(unsigned int z)//毫秒级延时
{
	unsigned int x,y;
	for(x = z; x > 0; x--)
		for(y = 114; y > 0 ; y--);
}	



void	forward()
{
		left_motor_en;//左电机使能
	  right_motor_en;//右电机使能
		left_motor_go;//左电机正转
	  right_motor_go;//右电机正转
}


void	backward()
{
		left_motor_en;//左电机使能
	  right_motor_en;//右电机使能
		left_motor_back;//左电机反转
	  right_motor_back;//右电机反转
}


void left()
{
		left_motor_stops;//左电机停止
		right_motor_en;//右电机使能
		right_motor_go;//右电机正转
}


void right()
{
		right_motor_stops;//右电机停止
		left_motor_en;//左电机使能
		left_motor_go;//左电机正转
}


void stop()
{
		left_motor_stops;//左电机停止
	  right_motor_stops;//右电机停止
}


void left_rapidly()
{
    left_motor_en;//左电机使能
	  right_motor_en;//右电机使能
		right_motor_go;//右电机正转
		left_motor_back;//左电机反转
}


void right_rapidly()
{
		left_motor_en;//左电机使能
	  right_motor_en;//右电机使能
		left_motor_go;//左电机正转
		right_motor_back;//右电机反转
}
void main()
{
		forward();//小车前进
	  delay(3000);//毫秒级延迟
	  stop();//小车停止
	  delay(3000);//毫秒级延迟
	  backward();//小车后退
	  delay(3000);//毫秒级延迟
	  left();//小车左转
	  delay(3000);//毫秒级延迟
	  stop();//小车停止
	  delay(3000);//毫秒级延迟
	  right();//小车右转
	  delay(3000);//毫秒级延迟
	  left_rapidly();//小车左旋转
		delay(3000);//毫秒级延迟
	  right_rapidly();//小车右旋转
		delay(3000);//毫秒级延迟
	  stop();//小车停止
    while(1);
	  
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/291246.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号