小车是一个很好玩的玩具,平时视频里那些可以避开障碍物,可以自动寻路的小车更是神奇。
在接下来的教程中,我将揭露他们的神秘面纱,原来这么简单
提示:需要单片机基础和c语言基础
本次,我们设计好小车的外观结构,和电路部分,并且实现跑起来
1-)外观结构我没有这么做,是以前玩具车裁剪下来的
外观非常简陋,
下面就是电路部分了
准备材料:
stc89c52芯片,12M晶振,30p的电容,led灯3个,1k电阻,开关一个,
电机驱动模块
有了电路之后,我们把所有的元器件都焊接好,下面是焊好的
电路焊接好之后,我们开始写代码和编译(编译和烧写我就不说了,有单片机基础,这些都是家常)
下载keil编译软件
链接: https://pan.baidu.com/s/1i5hzITJ 密码: yqcj
下载stc-isp烧写软件
链接: https://pan.baidu.com/s/1dECzLmx 密码: yefp
#include"reg52.h"
sbit led1=P0^0; //led 指示灯
sbit led2=P0^1;
sbit md1_1=P1^0; //前进后退电机
sbit md1_2=P1^1;
sbit md2_1=P1^2; //转弯电机
sbit md2_2=P1^3;
void delay(int n) //延时ms级
{
int z;
while(n--){
for(z=110;z>0;z--);
}
}
void led1_on() //指示灯关闭操作
{
led1=0;
}
void led1_off()
{
led1=1;
}
void led2_on()
{
led2=0;
}
void led2_off()
{
led2=1;
}
void lef() //左转弯
{
md2_1=0;
md2_2=1;
}
void rif() //右转弯
{
md2_1=1;
md2_2=0;
}
void be_move() //前进
{
md1_1=0;
md1_2=1;
}
void ba_move() //后退
{
md1_1=1;
md1_2=0;
}
void stop() //停止
{
md1_1=1;
md1_2=1;
}
void os_init()
{
stop();
led1_off();
led2_off();
}
void main()
{
os_init();
while(1)
{
lef();
be_move();
led1_on();
delay(2000);
rif();
ba_move();
led1_off();
delay(2000);
}
}
代码烧写进去之后接上电源,小车就会向左走2秒,右走2秒,前进2秒,后退两秒,这样做只是为了测试各个操作是否正常。
到这里我们已经可以通过代码控制小车了,那么下次我们加上避障模块(超声波)