历史上的今天
今天是:2024年12月03日(星期二)
2019年12月03日 | 新手必看(STC89C52)单片机寻迹避障蓝牙四轮小车的简单实现
2019-12-03 来源:51hei
一、关于材料的选择
1.L289驱动电机x2
2.1.5V电池(可以买充电电池,我用了几十个电池了!!!)我是用8节1.5v构成12v电池单独给4个电机供电,另外3节1.5v给单片机供电,4.5v与 5v差不多。
3.底板加4马达(电机)。
4.有条件可以用电钻(我是在各个店单独购买的,所以底板孔与器件孔不搭配,自己钻的)
5.若干杜邦线,公对公 母对母 公对母都买X3应该足够了,最短就好了不需要那么长,但是有钱可以买X1
6.淘宝上的板子STC89C52,有各种现成的接口,适合新手学习,学习过后可以自己焊板子。
7.4个红外避障模块,2个寻迹模块,一个蓝牙模块。
8.手机商城下个蓝牙串口来操作控制。
二、关于环境
1.我用的 keil4 (能够编译查看代码是否正确。)
2.下载stc-isp来烧程序(先断单片机电 然后烧 再开电,不然烧不起吧。)
3.烧的程序名后缀是.Hex。
4.usb-单片机线一根,我的是淘宝送的。
三、关于一些细节
1.我用的是H桥来控制电机,比较普遍。
2.因为我的小车电机是单独供电的,所以地线(12v的负极)要接在单片机的地线接口上!!
3.杜邦线与线接口要处理好确保通电。
四、部分代码
sbit IN2 = P0^1;
sbit IN3 = P0^2;
sbit IN4 = P0^3;
sbit IN5 = P0^4;
sbit IN6 = P0^5;
sbit IN7 = P0^6;
sbit IN8 = P0^7;
sbit Left_bizhang = P3^0;
sbit Right_bizhang = P3^1;
sbit Left_led=P3^2;
sbit Right_led=P3^3;
unsigned char pwm_val =0;
unsigned char push_val =0;
void delay(unsigned int k)
{
unsigned int x,y;
for(x=0;x for(y=0;y<2000;y++); } } void run(void) { push_val=3; IN1=0; IN2=1; IN3=0; IN4=1; IN5=1; IN6=0; IN7=1; IN8=0; } void backrun(void) { IN1=1; IN2=0; IN3=1; IN4=0; IN5=0; IN6=1; IN7=0; IN8=1; } void leftrun(void) { IN1=0; IN2=0; IN3=1; IN4=0; IN5=0; IN6=1; IN7=0; IN8=0; } void rightrun(void) { IN1=1; IN2=0; IN3=0; IN4=0; IN5=0; IN6=0; IN7=0; IN8=1; } void stop(void) { IN1=0; IN2=0; IN3=0; IN4=0; IN5=0; IN6=0; IN7=0; IN8=0; } void Che_init() { P1=0x00; TMOD=0x01; TH0=0xFC; TH0=0x18; TR0=1; EA=1; } void UART_INIT() { SM0 = 0; SM1 = 1;//串口工作方式1 REN = 1;//允许串口接收 EA = 1;//开总中断 ES = 1;//开串口中断 TMOD = 0x20;//8位自动重装模式 TH1 = 0xfd; TL1 = 0xfd;//9600波特率 TR1 = 1;//启动定时器1 } void xunji(){ while(1){ if(Left_led==1&&Right_led==1) { ET0=1; run(); } else { if(Left_led==0&&Right_led==1) { IN1=0; IN2=0; IN3=0; IN4=1; IN5=1; IN6=0; IN7=0; IN8=0; } if(Right_led==0&&Left_led==1) { IN1=0; IN2=1; IN3=0; IN4=0; IN5=0; IN6=0; IN7=1; IN8=0; } } } } void bizhang(){ while(1) { run(); if(Left_bizhang==1&&Right_bizhang==1) { run(); } else { if(Left_bizhang==1&&Right_bizhang==0) { backrun(); delay(50); leftrun(); delay(100); } if(Left_bizhang==0&&Right_bizhang==1) { backrun(); delay(50); rightrun(); delay(100); } } } }
史海拾趣
|
Windows Driver Model 的源代码 站内有这个资源,但是我这边下不动,谁发一份到我的邮箱ch609@163.com,谢谢先 … 查看全部问答> |
|
最近在stm32f103VE上跑官方移植的ucosII2.88 ,刚开始运行的时候,系统一切正常,各个任务正常调度,大概可以持续5~7小时。但是>14小时连续运行之后,系统就不正常了,现象是:各个中断可以正常进入(通过观察led),但是有些任务已经不运行了 ...… 查看全部问答> |
|
我的107 USB OTG自己开发的,请问各位硬件电路需要什么特别注意的地方吗?板子已经开回来了,USB的V_Bus供电没问题,但是D+,D-,还有ID上面的电压依次是3.7V,1.7V,1.7V,理论上正确的电压好像不是这样的,我打了其他正常的电压,D+,D-,ID上的电 ...… 查看全部问答> |
|
买板送的资料,里面详细介绍寄存器的每位,类似于51,avr和stm32的资料,配合149的中文头文件看,入门不难。请看下面几行,有个印象再看配合看电子书和149的中文头文件。 int main(void) { WDTCTL = WDT ...… 查看全部问答> |
|
请看图片,我问的问题跟差分放大没什么关系了,我是看到这里才想到了这个问题。主要问题是关于戴维南定理等效出来的Vcc’和Rc’。1.红色箭头是我标注的电流方向。如果等效电阻是Rc和RL并联的话,那么电流只能这么流吧,可是这样不合理啊,RL上的电 ...… 查看全部问答> |
|
三防漆固化后的线路板还有可能会返修,这就需要把漆膜去除掉,然后才能更换元件。这里列举几种常见三防漆的去除方法。 一,加热法,不到万不得已不建议采用此方法。加热法的具体操作是,一般采用 ...… 查看全部问答> |




