查看: 1612|回复: 0

[经验] 大神亲授单片机做智能小车图文并茂

[复制链接]

该用户从未签到

发表于 2019-10-29 09:27:16 | 显示全部楼层 |阅读模式
分享到:
大神亲授单片机做智能小车图文并茂以下这个版本为例,其实买四个TT马达用木板当底盘也一样。也可以散卖,价格自己淘宝找去,下面图片随几选,

第一步,装好车架子就OK啦,接下来装L298N,L298N模块一个可以驱动2个电机,一块驱动左上左下电机(轮子),一块驱动右上右下电机,所以需要2个模块。下面讲解下298驱动模块
这样够直接了吧。M接电机,一个模块可以接2个,12V端为电源端,用2节18650即可,GND不用讲了吧,5V端指的是驱动芯片需要的电源,但是12V处2节18650串联后。通过中间的贴片7805就会得到5V电压了。所以逻辑电压就有了,。不需要外供,并且还可以取逻辑电压5V供给单片机。记得共地。AB处总共有4个引脚,接单片机下面会讲到。
装L298n
这个焊接应该都知道。左上左下接驱动模块等四个电机焊接上电线完毕后。按照我说的,第一模块接左上左下,第二模块接右上右下后。接下来测速模块:拿2条杜邦线测试第一个模块。+5V连IN1,GND连IN2,电机正转(2个电机要同一方向转动,如果没有。把反转的那个电机2个导线对调即可)。GND连IN1,+5V连IN2,电机反转。
同理测试另一个模块。(5V等于高电平相当于1,GND等于低电平相当于0,IN1.2.3.4都要接单片机IO口,程序控制就是用高低电平,不懂补充数电去。)完毕后。记得把2个模块的中间GND相连,12V相连,5V相连。这样可以用同一个电源2节18650电池串联。5V为什么相连下面会讲到。接下来装单片机控制电路。嫌麻烦的可以淘宝。
懂51系统的,动手能力不错的。可以自己焊接,如下自己焊接的板子




记得要留蓝牙端口单片机固定好后。从那儿接5V电源什么的就不用我多说了吧。直接接298N的5V即可,不懂就自己做功课去了。接好后。就是2个驱动模块IN口接单片机IO口了
P1_0 P1_1 接IN1 IN2 当 P1_0=1,P1_1=0; 时左上电机正转左上电机接驱动板子输出端(蓝色端子OUT1 OUT2)
P1_0 P1_1 接IN1 IN2 当 P1_0=0,P1_1=1; 时左上电机反转
P1_0 P1_1 接IN1 IN2 当 P1_0=0,P1_1=0; 时左上电机停转
P1_2 P1_3 接IN3 IN4 当 P1_2=1,P1_3=0; 时左下电机正转左下电机接驱动板子输出端(蓝色端子OUT3 OUT4)
P1_2 P1_3 接IN3 IN4 当 P1_2=0,P1_3=1; 时左下电机反转
P1_2 P1_3 接IN3 IN4 当 P1_2=0,P1_3=0; 时左下电机停转
P1_4 P1_5 接IN5 IN6 当 P1_4=1,P1_5=0; 时右上电机正转右上电机接驱动板子输出端(蓝色端子OUT5 OUT6)
P1_4 P1_5 接IN5 IN6 当 P1_4=0,P1_5=1; 时右上电机反转
P1_4 P1_5 接IN5 IN6 当 P1_4=0,P1_5=0; 时右上电机停转
P1_6 P1_7 接IN7 IN8 当 P1_6=1,P1_7=0; 时右下电机正转右下电机接驱动板子输出端(蓝色端子OUT7 OUT8)
P1_6 P1_7 接IN7 IN8 当 P1_6=0,P1_7=1; 时右下电机反转
P1_6 P1_7 接IN7 IN8 当 P1_6=0,P1_7=0; 时右下电机停转
怎么接应该能看懂吧。当后面的指的是程序控制,可以先不管。
东单片机的应该都直接P0口和P1口在哪儿,图片为网上乱找。用杜邦线链接接好了电源,驱动模块。单片机电路板,基本可以测试前进后退左转右转来看看以上步骤有没有成功。以下我贴出测试源程序:
#include<AT89x51.H>
#define Left_moto_go {P1_0=1,P1_1=0,P1_2=1,P1_3=0;} //左边两个电机向前走
#define Left_moto_back {P1_0=0,P1_1=1,P1_2=0,P1_3=1;} //左边两个电机向后转
#define Left_moto_Stop {P1_0=0,P1_1=0,P1_2=0,P1_3=0;} //左边两个电机停转
#define Right_moto_go {P1_4=1,P1_5=0,P1_6=1,P1_7=0;}//右边两个电机向前走
#define Right_moto_back {P1_4=0,P1_5=1,P1_6=0,P1_7=1;}//右边两个电机向前走
#define Right_moto_Stop {P1_4=0,P1_5=0,P1_6=0,P1_7=0;}//右边两个电机停转
//延时函数
void delay(unsigned int k)
{
unsigned int x,y;
for(x=0;x<k;x++)
for(y=0;y<2000;y++);
}
/************************************************************************/
//前进
void run(void)
{
Left_moto_go ; //左电机往前走
Right_moto_go ; //右电机往前走
}
//后退
void backrun(void)
{
Left_moto_back ; //左电机往前走
Right_moto_back ; //右电机往前走
}
//左转
void leftrun(void)
{

Left_moto_back ; //左电机往前走
Right_moto_go ; //右电机往前走
}
//右转
void rightrun(void)
{
Left_moto_go ; //左电机往前走
Right_moto_back ; //右电机往前走
}

/*********************************************************************/
/*--主函数--*/
void main(void)
{
delay(100);
run(); //前进函数
while(1)/*无限循环*/
{
run();
}
}

在最后run();//前进函数中,大家改为
backrun() ;//后退
leftrun() ;//左拐
rightrun();//右拐
即可,这样就得到四个测试程序,大家自己测试。哦对了。IN1-4为左边2电机模块,5-8为右边2电机模块
把四个电机焊接电池盒也固定好。2节18650.是7.4V,3节将近11-12V,速度飞快,2也跑得慢点。

经过测试,4个TT电机一块298完全可以带动。把2边2个电机并在一起接一个out即可,右边2个也如此,还有个三个端子的接口。第一根红色的接18650正极(2节18650串联),中间黑色和蓝色的接地和负极,第三孔灰色的是输出5V,接单片机,记得要共地(所有传感器,控制器,驱动器的接地一定要连在一起

固定好控制板,自己焊接哟
一辆最基本的小车就装好了。其他传感器可以自己家,舵机,超声波循迹模块等等。
需要注意的是蓝牙模块一般2中。4针的为HC-06,6针的为HC-05,不管几针,大家只要记住,只要接4个接口就行,VCC,GND ,TXD ,RXD,其他不用接,悬空就行。
还有,蓝牙TXD要接单片机的RXD,蓝牙的RXD要接单片机的TXD,否则无法通信
手机端。


































回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /2 下一条



手机版|小黑屋|与非网

GMT+8, 2024-4-27 22:58 , Processed in 0.124396 second(s), 18 queries , MemCache On.

ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

苏公网安备 32059002001037号

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.