1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 简单的手机蓝牙遥控智能小车

简单的手机蓝牙遥控智能小车

时间:2021-11-11 14:54:51

相关推荐

简单的手机蓝牙遥控智能小车

蓝牙驱动基本原理

辆小车的基本功能就是让它能动起来,能通过手机蓝牙进行遥控,所以就需要用到L298N电机驱动模块,和HC-06蓝牙模块。下面就简单介绍一下这两个模块。

一个L298N电机驱动模块能驱动2个马达,小车是四驱驱动,我们可以把两个L298N模块并联,并用12V电压供电,如果你的小车不需要调速,就不用考虑PWM问题,也就无需把使能端ENA、ENB的跳线帽拔掉,直接将IN1、IN2、IN3、IN4与单片机的端口相连,把OUT1、OUT2、OUT3、OUT4与马达相连即可。

电机驱动模块弄好后,离它能动就只有一步之遥了,我们需要用到HC-06蓝牙模块对小车进行控制。

蓝牙模块的TXD,RXD要分别与单片机的RXD、TXD相连,这样串口通信才能收发正常,然后软件设置串口。利用switch 函数,对蓝牙接收的数据进行处理,执行相应的运动。(串口调试我推荐正点原子的Xcom都行啊,能有就行了)。

下面是引脚控制98N的驱动,主要是原理双H桥路理解了就差不多了,你马达接反了转向就会不一样,哈哈小爷我就是这样马达接反了,所以要灵活运用。

主要程序

#include<reg52.h>#define uchar unsigned char#define uint unsigned intsbit IN1=P1^0; // sbit IN2=P1^1; // sbit IN3=P1^2; // sbit IN4=P1^3; // sbit IN5=P1^4; //sbit IN6=P1^5; // sbit IN7=P1^6; // sbit IN8=P1^7; // void stop(){IN1=0;IN2=0; IN3=0; IN4=0; IN5=0; IN6=0; IN7=0; IN8=0;}void forward(){IN1=0; IN2=1; IN3=0; IN4=1; IN5=1; IN6=0; IN7=0; IN8=1; }void back(){IN1=1; IN2=0;// IN3=1; IN4=0;// IN5=0; IN6=1;// IN7=1; // IN8=0;}void left(){IN1=0; IN2=0; IN3=0; IN4=0; IN5=0; IN6=0; IN7=0; IN8=1;}void right(){IN1=0; IN2=0; IN3=1; IN4=0; IN5=1; IN6=0; IN7=0; IN8=0;}void Com_Int(void) interrupt 4{uchar receive_data;EA = 0;if(RI == 1) { RI=0; IN2=0; IN3=0; IN4=0; IN5=0; IN6=0; IN7=0; IN8=0;receive_data = SBUF;switch(receive_data){case ('1'):forward();break;case ('2'):back();break;case ('3'):left();break;case ('4'):right();break;case ('0'):stop();break;}}EA = 1;}void UsartConfiguration(){SCON=0X50;//TMOD=0X20;PCON=0X00;TH1=0Xfd; TL1=0Xfd; //TR1= 1;ES = 1; EA = 1; }void main(){UsartConfiguration();while(1);}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。