51单片机智能小车开

小车是一个很好玩的玩具,平时视频里那些可以避开障碍物,可以自动寻路的小车更是神奇。

在接下来的教程中,我将揭露他们的神秘面纱,原来这么简单

提示:需要单片机基础和c语言基础

本次,我们设计好小车的外观结构,和电路部分,并且实现跑起来

 1-)外观结构我没有这么做,是以前玩具车裁剪下来的51单片机智能小车开_第1张图片

51单片机智能小车开_第2张图片

外观非常简陋,

下面就是电路部分了

准备材料:

stc89c52芯片,12M晶振,30p的电容,led灯3个,1k电阻,开关一个,

电机驱动模块

51单片机智能小车开_第3张图片

51单片机智能小车开_第4张图片

有了电路之后,我们把所有的元器件都焊接好,下面是焊好的

51单片机智能小车开_第5张图片

51单片机智能小车开_第6张图片

电路焊接好之后,我们开始写代码和编译(编译和烧写我就不说了,有单片机基础,这些都是家常)

下载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秒,后退两秒,这样做只是为了测试各个操作是否正常。

到这里我们已经可以通过代码控制小车了,那么下次我们加上避障模块(超声波)


你可能感兴趣的:(开源项目)