我想做个单片机控制的小车,请问怎么做

我想做个单片机控制的小车,请问怎么做,第1张

先买车模,最好是带电机而且能转弯的那种,四五十块钱,然后网上搜一下电机驱动电路。最节约成本的是H桥,全用三极管和二极管就可以实现,网上都有电路。至于单片机的最小系统的电路相信你都会了。然后自己把电路焊好,至于需要再添加其他模块儿(例:超声波,红外,激光,摄像头等等),你可以在自己搜搜电路。弄好后开始写程序,程序的事儿不是三言两语就能说清的,相信楼主既然想到做这个了,程序应该是自己可以搞定了,然后就是下载程序,调试小车了。呵呵,希望微薄的建议能够帮到楼主,祝你成功。

#include<reg52h>

#define uchar unsigned char

#define uint unsigned int

sbit moto1=P1^5;

sbit moto2=P1^6;

sbit moto3=P2^0;

sbit moto4=P2^1;

sbit en1=P1^7;

sbit en2=P2^2;

///////////////

sbit left1=P1^0;//

sbit left2=P1^1;

sbit left3=P1^2;

sbit mid=P1^3;//

sbit right1=P1^4;

sbit right2=P2^3;

sbit right3=P2^4;////////////////

sbit hled=P0^0;

sbit bled=P0^1;

sbit lled=P0^2;

sbit rled=P0^3;

sbit bizhang=P2^5;

uchar pro_head;

uchar pro_back;

uchar i;

uchar j; //前后占空比标志

void delay(uint z)

{

uchar i;

while(z--)

{

for(i=0;i<121;i++);

}

}

void init()

{

TMOD=0x01;

TH0=(65536-100)/256;

TL0=(65536-100)%6;

EA=1;

ET0=1;

TR0=1;

en1=1;

en2=1;

}

void time0(void) interrupt 1

{

i++;

j++;

if(i<=pro_back)

{

en1=1;

}

else

{

en1=0;

}

if(i==40)

{

en1=~en1;

i=0;

}

if(j<=pro_head)

{

en2=1;

}

else

{

en2=0;

}

if(j==40)

{

en2=~en2;

j=0;

}

TH0=(65536-100)/256;

TL0=(65536-100)%6;

}

void qianjin()/////////////////////

{

pro_back=15;

pro_head=5;

moto1=0;

moto2=0;

moto3=1;

moto4=0;

lled=1;

rled=1;

bled=1;

}

void turn_right1()//

{

pro_back=10;

pro_head=15;

moto1=0;

moto2=1;

moto3=1;

moto4=0;

}

。。。。。。。

void xunji() //

{

uchar flag;

if((left1==0)&&(left2==0)&&(left3==1)&&(mid==1)&&(right1==0)&&(right2==0)&&(right3==0))

{

flag=1;

}

else if((left1==0)&&(left2==0)&&(left3==1)&&(mid==0)&&(right1==0)&&(right2==0)&&(right3==0))

{

flag=2;

}

else if((left1==0)&&(left2==1)&&(left3==1)&&(mid==0)&&(right1==0)&&(right2==0)&&(right3==0))

{

flag=3;

}

、。。。。。。。。。。。。。

switch (flag)

{

case 0:qianjin();headled();

break;

case 1:turn_left1();leftled();

break;

case 2:turn_left2();leftled();

、。。。。。。。。。。。。。。。 break; default:backled();

break;

}

}

void main()

{

init();

delay(600);

jiance();

delay(300);

while(1)

{

if(bizhang==1)

{

xunji();

}

else

bz();

}

}、、、、、、、、、后面根据自己的实际情况填写吧!

以上就是关于我想做个单片机控制的小车,请问怎么做全部的内容,包括:我想做个单片机控制的小车,请问怎么做、智能小车避障程序~~~急、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9513201.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存