2020-12-08

今日对红外避障小车软件部分进行了调试:

这里主要是编写L298N有关代码实现对小车两电机的控制,其逻辑功能如下

写好代码后我将程序烧录进单片机运行小车,发现同一代码下两电机运行方向相反,我将电平赋值对调才能使两电机同向转动,最终代码如下:

#include <REG52.H>
sbit ENA=P2^2;
sbit IN1=P2^1;
sbit IN2=P2^0;
sbit ENB=P0^0;
sbit IN3=P0^1;
sbit IN4=P0^2;
sbit A1=P1^0;
sbit B2=P1^1;
void delay(int z) 
{
	int x,y;
	for(x=z;x>0;x--)
		for(y=110;y>0;y--);
}
void back()
{
		ENA=1;
		IN1=1;
		IN2=0;
		ENB=1;
		IN3=0;
		IN4=1;
}
void go()
{
		ENA=1;
		IN1=0;
		IN2=1;
		ENB=1;
		IN3=1;
		IN4=0;
}
void left() {
	ENA=1;
	IN1=1;
	IN2=0;
	ENB=1;
	IN3=1;
	IN4=0;
}
void right()
{
	ENA=1;
	IN1=0;
	IN2=1;
	ENB=1;
	IN3=0;
	IN4=1;
}
void main()
{
	while(1)
	{
		go();
		if(B2==0) {
			back();
			delay(500);
			left();
			delay(700);
		}
		if(A1==0) {
			back();
			delay(500);
			right();
			delay(700);
		}
	}
}

io口定义部分我根据自己接线的实际情况进行了调整。

最后小车成功运行,但红外感应的硬件部分灵敏度不是很高,导致其运行有些笨拙。

烧录部分需要下载器,利用串口通信有关原理接线到单片机进行下载。
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值