【51单片机实例】智能小车(一)--------小车的前进、后退和停止

本文是关于如何使用51单片机制作智能小车的基础教程,涵盖了小车底盘选择、电机配置、51单片机最小系统板、L298N电机驱动模块、电源以及杜邦线的选用。通过硬件连接和程序编写,实现了小车的红外遥控调速与循迹功能。文章适合初学者,详细介绍了每个部件的作用和连接方法,并提供了简单的程序代码示例,帮助读者理解单片机控制小车的基本原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

51智能小车系列

智能小车(二)-------- 小车的红外遥控调速
智能小车(三)-------- 小车的红外循迹


前言

这篇文章我主要讲的是怎么让基于51单片机下的智能小车动起来,智能小车的项目非常多,比如说循迹避障、蓝牙遥控、视觉控制等等,我将会一步一步带大家走进单片机的项目当中。我也是第一次写文章,可能会有很多不足的地方,还请各位大佬多指教。


一、硬件选择

1.1 小车底盘

底盘的形状,大家可以根据自己的意愿去选择,我在这里选择的是4WD智能小车底盘,组装起来也比较的方便,容易上手。
在这里插入图片描述

在这里插入图片描述

1.2 电机

我采用的是工作电压3-6v直流减速电机TT马达(如果你想要双轮(四轮)驱动的话,那就需要装上两个(四个)直流减速电机,电机接线需要自己焊接)。
在这里插入图片描述

1.3 51单片机最小系统板

对于最小系统板的话,没有什么特殊的要求,用你自己熟悉的芯片就行,这里我采用的是STC89C52芯片。
在这里插入图片描述

1.4 L298N双路电机驱动模块

L298N,是一款接受高电压的电机驱动器,直流电机和步进电机都可以驱动。一片驱动芯片可同时控制两个直流减速电机做不同动作,在6V到46V的电压范围内,提供2安培的电流,并且具有过热自断和反馈检测功能,可对电机进行直接控制,通过主控芯片的I/O输入对其控制电平进行设定,就可为电机进行正转反转驱动,操作简单、稳定性好,可以满足直流电机的大电流驱动条件。
L298N是比较常用的直流电机驱动模块,也是比较适合新手的,本节中A、B使能用跳线帽盖住,具体各引脚的使用在如下图中已做出标注,基本属性也可参照下表。
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

1.5 电源

我用的是18650锂电池3.7V移动电源2500mAh可充电电池,当然也需要对应的电池组进行组合,具体也可根据自己的需求进行选择,选择时要注意电池的电压和电容。
在这里插入图片描述

1.6 杜邦线

分为公对公、公对母、母对母三种线形,主要用于电路实验,在进行电路实验的时候可以和插针进行连接,而且具有非常好的牢靠性,也能够省略焊接的过程,快速的进入电路实验,在电子产品的应用中非常广泛,是必备的辅件。
在这里插入图片描述

二、硬件连接

这里我采用的是双轮驱动,所以硬件部分为:两个直流减速电机、3节3.7v电池及电池组、一个51最小系统板(由于设备缺陷,我用的是STC89C52开发板11.0592MHz)、一个小车底板、四个车轮、一个L298N双路电机驱动模块、若干铜柱螺丝和杜邦线等。
示例(请忽略小车左边的5路红外循迹模块和对应杜邦线的连接):
在这里插入图片描述

三、程序编写

这里我用的是双轮驱动,只需两个电机M1、M2对小车进行驱动,在IN1~IN4的逻辑输入中,由IN1、IN2控制电机M1;IN3、IN4控制 电机M2,再改变电机的电平变化使电机进行正反转,无电平变化即电机停止转动,例如IN1输入高电平1,IN2输入低电平0,对应电机M1正转;IN1输入低电平0,IN2输入高电平1,对应电机M1反转,IN1和IN2都输入低电平0或高电平1,对应电机M1停止转动,IN3和IN4同理可得。

具体代码如下(示例):

#include<reg52.h>

sbit IN1=P2^0;      //使IN1~IN4端通过杜邦线接到不同的P口,这里我接的是P2
sbit IN2=P2^1;      //其中IN1、IN2控制电机M1;IN3、IN4控制电机M2
sbit IN3=P2^2;
sbit IN4=P2^3;
                         
void Delay1000ms()		      //延迟函数,一个延迟函数为1s
{                             //@11.0592MHz
	unsigned char i, j, k;

	i = 43;
	j = 6;
	k = 203;
	do
	{
		do
		{
			while (--k);
		} while (--j);
	} while (--i);
}

int main()
{
    while(1)
    {
      //未调制pwm前小车速度可能比较快
      
        IN1=1;IN2=0;    //两电机正转,小车前进
        IN3=1;IN4=0;
        Delay1000ms();  //延迟1s

        IN1=0;IN2=0;    //两电机停转,小车不动
        IN3=1;IN4=1;
        Delay1000ms();  //延迟1s

        IN1=0;IN2=1;    //两电机反转,小车后退
        IN3=0;IN4=1;
        Delay1000ms();  //延迟1s
    }
    return 0;
}

总结

本节是以STC89C52单片机为CPU,通过一些外围电路和软件编程实现小车前进、后退、停止的功能。整个设计过程中最大的特点是利用简单的原理图将TT电机、L298N驱动模块、51单片机这三个模块有效的结合起来,利用经典的H桥路作为小车前进、后退和停止的编程理论基础,提高了效率,降低了编程的复杂度,具有很强的研究的意义,智能化的发展促使了智能小车往功能更加强大的方向发展。

评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

比特冬哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值