好好学习,天天向上,一流范文网欢迎您!
当前位置:首页 >> 最新范文 内容页

电子设计竞赛往返变速小车实验报告

电子设计竞赛往返变速小车实验报告 本文关键词:小车,变速,往返,竞赛,实验

电子设计竞赛往返变速小车实验报告 本文简介:重庆邮电大学电子设计竞赛培训智能小车设计报告作者:徐国英(2013211997)曾鹏(2013212009)生物信息学院日期2015年4月5日一方案论证与选择1总体框图选定自动往返小车的题目后,我们决定购买一台符合尺寸要求的玩具遥控小车,通过去掉其遥控部分,并直接利用上面的直流电机的方法实现要求。根

电子设计竞赛往返变速小车实验报告 本文内容:

重庆邮电大学电子设计竞赛培训

智能小车设计报告

作者:

徐国英(2013211997)

鹏(2013212009)

生物信息学院

日期

2015年4月5日

一方案论证与选择

1

总体框图

选定自动往返小车的题目后,我们决定购买一台符合尺寸要求的玩具遥控小车,通过去掉其遥控部分,并直接利用上面的直流电机的方法实现要求。

根据设计任务要求,经过论证选择,最终确定的系统设计框图如下:

外部传感器模块

STC89C51单片机

电机驱动模块

电源模块

系统分为单片机控制模块、外部传感器模块、电机驱动模块、电源模块、显示模块。

2

各模块方案选择

2.1控制模块

控制模块负责接收传感器的信息,并处理接收到的信息。由于我们才接触到电子设计,所以选择了相对容易学会并且普遍应用的单片机作为主控制器。在考虑到本系统无需复杂的逻辑功能,我们选择了**单片机。

2.2电源模块

采用电池作为电源直接输入直流后,用多个稳压器稳压得到理想的不同幅值直流电源。这种方法获取电源方便,且电源输出电流能力大。

2.3外部传感器模块

方案1:

该方案用光敏电阻组成光敏探测器检测黑线,用霍耳传感器进行测速。首先,光敏电阻的阻值可以跟随周围环境光线的变化而变化。当光线照射到白线上面时,光线发射强烈,光线照射到黑线上面时,光线发射较弱。因此光敏电阻在白线和黑线上方时,阻值会发生明显的变化,只要将阻值的变化值经过比较器就可以输出高低电平。其次,使用利用霍耳效应的传感器。当载流导体或半导体出于与电流相垂直的磁场中时,在其两端将产生电位差的这一现象称为霍尔效应。如果在车轮的内侧装上一条细磁铁,把霍耳传感器同样装在车轮的内侧,测量霍尔传感器的输出就可以知道车轮转过的圈数。

方案2

使用光电对管进行检测黑线和测速,这是一种一体化反射型光电探测器,其发射器是一个砷化镓红外发光二极管,而接收器是一个高灵敏度,硅平面光电三极管。该当经过黑线时接收器输出高电平。测速时,在车轮的内侧贴上一个光电码盘,用光电对管对码盘进行检测。光电对管照射到黑色和白色的边界时输出信号会有跳变,将跳变的输出信号送给单片机进行检测就可以得到轮子的转速。

经过论证比较,由于光电对管内置可见光过滤器能减小离散光的影响,同时光电对管调理电路简单,工作性能稳定。因此,外部传感器模块选用方案二

2.4电机驱动模块

二系统硬件设计与实现

1各模块硬件设计

黑线检测,最小系统

电机驱动

1.1程序

#include

sbit

sign

=

P0^0;

sbit

result

=

P0^1;

sbit

base1

=

P3^0;

sbit

base2

=

P3^1;

bit

Index

=

0;

unsigned

char

T0RH

=

0;

unsigned

char

T0RL

=

0;

unsigned

char

RxdByte

=

0;

unsigned

char

RxdBuff

=

0;

unsigned

char

tmr

=

0;

signed

char

BlackLine

=

0;

//初始的时候黑线会自动加1归零

signed

char

Line;

unsigned

char

timer1

=

0;

unsigned

char

flag

=

0;

void

Configms(unsigned

char

ms);

void

Time1Config();

void

delay10ms(unsigned

int

c);

void

seekline();

void

main()

{

EA

=

1;

result

=

1;

RxdByte

=

0x00;

sign

=

0;

base1

=

base2

=

1;

Configms(1);

Time1Config();

while(1)

{

while(1)

{

if(BlackLine

=

6)

{

while(1)

{

if(timer1

>8);

T0RL

=

(unsigned

char)tmp;

TMOD

TMOD

|=

0x01;

TH0

=

T0RH;

TL0

=

T0RL;

ET0

=

1;

TR0

=

1;

}

void

Time1Config()

{

TMOD

TMOD

|=

0x10;

TH1

=

0xFE;

TL1

=

0x0C;

ET1

=

1;

TR1

=

1;

}

void

delay10ms(unsigned

int

c)

//10ms延时器

{

unsigned

char

a,b;

for

(;

c>0;

c--)

{

for

(b=38;

b>0;

b--)

{

for

(a=130;

a>0;

a--);

}

}

}

void

InterruptTimer0()

interrupt

1

{

TH0

=

T0RH;

TL0

=

T0RL;

seekline();

}

void

Time1(void)

interrupt

3

{TH1

=

0xFE;

TL1

=

0x0C;

timer1++;

if(timer1

>

100)

timer1

=

0;

}

三:心得体会

很开心

TAG标签: