Arduino单片机毕业设计

石家庄邮电职业技术学院

毕业设计

基于Arduino的急救车音效设计

届 电信工程 系 专业移动通信技术( )

班级 学号 姓名 指导教师 完成日期 2012年12月14日

毕业设计任务书

毕业设计评定书

摘 要

急救车,专指接载病员由伤病现场往医院,或用作载接病情严重者作转院服务的陆上紧急交通工具。急救车的常规配备包括担架、轮椅、呼吸辅助器、氧气筒、药物、警号灯等。而对于警号灯伴随着“嘀嘟嘀嘟”的声音最为我们熟悉,那么这种“嘀嘟嘀嘟”的声音是怎样制作出来的呢?

目前单片机渗透到我们生活的各个领域,人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。

本文设计以ATMEGA328P-PU单片机为核心,以Arduino为平台。把设置好的源代码传到Arduino控制板上,然后把蜂鸣器连接在控制板上,以此发出“嘀嘟嘀嘟”的音效。

目 录

1 前 言 ............................................................................................................................. 1 2 单片机——Arduino的核心器件.................................................................................. 1

2.1 单片机的定义 ....................................................................................................... 1 2.2 单片机与个人计算机的异同 ............................................................................... 1 2.3 单片机的作用 ....................................................................................................... 1 2.4 单片机视图 ........................................................................................................... 2 3 Arduino的基本组成 ...................................................................................................... 2

3.1 Arduino的定义 .................................................................................................... 2 3.2 Arduino的诞生 .................................................................................................... 2 3.3 Arduino语言 ........................................................................................................ 3

3.3.1 关键字 ......................................................................................................... 3

4 本次设计所需的硬件与软件 ......................................................................................... 6

4.1 Arduino UNO ....................................................................................................... 6

4.1.1 Arduino uno基本概要 .............................................................................. 7 4.1.2 通信接口 ..................................................................................................... 7 4.1.3 下载程序 ..................................................................................................... 8 4.1.4 注意要点 ..................................................................................................... 8 4.2 蜂鸣器 ................................................................................................................... 8 4.3 开发环境 ............................................................................................................... 8 5 系统设计与调试 ............................................................................................................. 9

5.1 准备好硬件开发平台 ........................................................................................... 9 5.2 实现原理 ............................................................................................................... 9 5.3 程序代码 ............................................................................................................... 9 5.4 下载程序 ............................................................................................................. 10

5.4.1 打开文件夹 ............................................................................................... 10 5.4.2 编写源代码 ............................................................................................... 11 5.4.3 编译程序 ................................................................................................... 12 5.4.4 下载程序 ................................................................................................... 14

6 总 结 ........................................................................................................................... 19

致 谢 ................................................................................................................................... 20 参考文献 ............................................................................................................................. 21

1 前 言

Arduino是一个开源的电子原型平台,它基于易于使用的硬件和软件而设计。适合于艺术家,设计师和业余爱好者创建交互性的对象和环境。

Arduino通过接收来自各种传感器的输入来感知环境的变化,通过控制灯光,马达和其它驱动器来表现行为。主板微控制器的编程使用Arduino编程语言(基于Wiring)和Arduino开发环境(基于Processing)。Arduino项目可以独立运行,也可以与计算机上运行的软件通信(如Flash、Processing、MaxMSP)。

主板可以通过手工制作,或者购买商业成品,而软件是可以免费下载。硬件参考设计(CAD文件)是开源许可的,可以根据需求自由调整。

2 单片机——Arduino的核心器件

2.1 单片机的定义

单片机,全称单片微型计算机(英语:Single-ChipMicrocomputer),又称微控制器(Microcontroller),是把中央处理器、存储器、定时/计数器(Timer/Counter)、各种输入输出接口等都集成在一块集成电路芯片上的微型计算机。

2.2 单片机与个人计算机的异同

一台能够工作的计算机要有这样几个部份构成:中央处理单元CPU(进行运算、控制)、随机存储器RAM(数据存储)、只读存储器ROM(程序存储)、输入/输出设备I/O(串行口、并行输出口等)。在个人计算机(PC)上这些部份被分成若干块芯片,安装在一个被称之为主板的印刷线路板上。而在单片机中,这些部份全部被做到一块集成电路芯片中了,所以就称为单片(单芯片)机,而且有一些单片机中除了上述部份外,还集成了其它部份如模拟量/数字量转换(A/D)和数字量/模拟量转换(D/A)等。电脑应用于高端,单片机应用于中低端,二者有着各自的生存空间,至少短期内不会出现一种取代另一种的情况。

2.3 单片机的作用

实际工作中并不是任何需要计算机的场合都要求计算机有很高的性能,一个控制电冰箱温度的计算机难道要用酷睿处理器吗?应用的关键是看是否够用,是否有很好的性能价格比。如果一台冰箱都需要用酷睿处理起来进行温度控制,那价格就是天价了。单片机通常用于工业生产的控制、生活中与程序和控制有关

(如:电子琴、冰箱、智能空调等)的场合。

2.4 单片机视图

下图就是一个Atmega328P-PU单片机,基于AVR指令集的8位处理器,频率20MHz,存储器空间32KB。

图2-1 Atmega328P-PU单片机

3 Arduino的基本组成

3.1 Arduino的定义

Arduino,是一个开源的单板机控制器,采用了基于开放源代码的软硬件平台,构建于开放源代码 simple I/O介面版,并且具有使用类似Java,C语言的Processing/Wiring开发环境。

3.2 Arduino的诞生

2005年冬天,Massimo Banzi和David Cuartielles讨论学生们抱怨找不到便宜好用的微控制器问题,讨论使两人决定设计自己的电路板,由Banzi的学生 David Mellis为电路板设计编程语言。两天以后,David Mellis就写出了程式码。又过了三天,电路板就完工了。这块电路板被命名为Arduino。随后Banzi,Cuartielles,和Mellis把设计图放到了网上。保持设计的开放源码理念,因为版权法可以监管开源软件,却很难用在硬件上,他们决定采用共享创意许可。在共享创意许可下,任何人都被允许生产电路板的复制品,还能重新设计,甚至销售原设计的复制品。你不需要付版税,甚至不用取得Arduino团队的许可。唯一被保留的只有Arduino这个名字。它被注册成了商标。

3.3 Arduino语言

Arduino语言是建立在C/C++基础上的,其实也就是基础的C语言。 3.3.1 关键字 if  if...else  for  switch case  while  do... while  break  continue  return  goto 3.3.2 语法符号  ;  {}  //  /* */ 3.3.3 运算符  =  +  -  *  /  %  ==  

 >=  &&  ||  !  ++  --  +=  -=  *=  /= 3.3.4 数据类型  boolean  char  byte  int

布尔类型 字符类型 字节类型 整数类型

 unsigned int 无符号整型  long

长整型

 unsigned long 无符号长整型  float  double  string  array  void 3.3.5 常 量

 HIGH | LOW 表示数字IO 口的电平,HIGH 表示高电平(1),LOW 表示低电平(0)。

 INPUT | OUTPUT 表示数字IO口的方向,INPUT 表示输入(高阻态),OUTPUT 表示输出(AVR能提供 5V电压 40mA 电流)。  true | false true 表示真(1),false表示假(0)。

以上为基础C语言的关键字和符号,大家可以了解,具体使用可以结合实验

实数类型

的程序。

3.3.6 结 构

 void setup() 初始化发量,管脚模式,调用库函数等

 void loop() 连续执行函数内的语句

3.3.7 功 能

数字 I/O

 pinMode(pin, mode) 数字IO口输入输出模式定义函数,pin表示为0~13,mode表示为INPUT或OUTPUT。

 digitalWrite(pin, value) 数字IO口辒出电平定义函数,pin表示为0~13,value表示为HIGH或LOW。比如定义HIGH可以驱动LED。

 int digitalRead(pin) 数字IO口读输入电平函数,pin表示为0~13,value表示为HIGH或LOW。比如可以读数字传感器。

模拟I/O

int analogRead(pin) 模拟IO口读函数,pin表示为0~5(Arduino

Diecimila 为 0~5(Arduino nano为0~7)。比如,可以读模拟传感器(10位AD,0~5V表示为0~1023)。

 analogWrite(pin, value)-PWM 数字IO口PWM输出函数,Arduino数字IO口标注了PWM的IO口可使用该函数。pin表示3,5,6,9,10,11,value 表示为0~255。比如,可用于电机PWM调速或音乐播放。

时间函数

 delay(ms) 延时函数(单位ms)。

 delayMicroseconds(us) 延时函数(单位 us)。

数学函数

 min(x,y) 求最小值

 max(x,y) 求最大值

 abs(x) 计算绝对值

 constrain(x,a,b) 约束函数,下限a,上限b,x必须在ab之间才能返回。  map(value,fromLow,fromHigh,toLow,toHigh) 约束函数,value必须在fromLow与toLow之间和fromHigh与toHigh之间。

 pow(base,exponent) 开方函数,base的exponent次方。

 sq(x) 平方

 sqrt(x) 开根号

4 本次设计所需的硬件与软件

表4-1 实验器件

4.1 Arduino UNO

Arduino UNO是Arduino USB接口系列的最新版本,作为Arduino平台的参考标准模板。UNO的处理器核心是ATmega328,同时具有14路数字输入/输出口(其中6路可作为PWM输出),6路模拟输入,一个16MHz晶体振荡器,一个USB口,一个电源插座,一个ICSP header和一个复位按钮。UNO已经发布到第三版,与前两版相比有以下新的特点:

在AREF处增加了两个管脚SDA和SCL,支持I2C接口;增加IOREF和一个预留管脚,将来扩展板将能兼容5V和3.3V核心板。 这样改进了复位电路设计 ,USB接口芯片由ATmega16U2替代了ATmega8U2 。如图4-1为改进后的Arduino UNO。

图4-1 Arduino UNO

4.1.1 Arduino uno基本概要

 处理器 ATmega328

 工作电压 5V

 输入电压(推荐) 7-12V

 输入电压(范围) 6-20V

 数字IO脚 14 (其中6路作为PWM输出)

 模拟输入脚 6

 IO脚直流电流 40 mA

 3.3V脚直流电流 50 mA

 Flash Memory 32 KB (ATmega328,其中0.5 KB用于bootloader)  SRAM 2 KB (ATmega328)

 EEPROM 1 KB (ATmega328)

 工作时钟 16 MHz

4.1.2 通信接口

串口:ATmega328内置的UART可以通过数字口0(RX)和1(TX)与外

部实现串口通信;ATmega16U2可以访问数字口实现USB上的虚拟串口。

TWI(兼容I2C)接口。

SPI 接口。

4.1.3 下载程序

Arduino UNO上的ATmega328已经预置了bootloader程序,因此可以通过Arduino软件直接下载程序到UNO中。

也可以直接通过UNO上ICSP header直接下载程序到ATmega328。

ATmega16U2的Firmware(固件)也可以通过DFU工具升级。

4.1.4 注意要点

Arduino UNO上USB口附近有一个自恢复的保险丝,对电路起到保护作用。当电流超过500mA时会断开USB连接。

Arduino UNO提供了自动复位设计,可以通过PC主机复位。这样通过Arduino软件下在程序到UNO中,软件可以自动复位,不需要手动复位按钮。在印制板上丝印“RESET EN”处可以使能和禁止该功能。

4.2 蜂鸣器

蜂鸣器是一种一体化结极的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。

按其驱动方式的不同,可分为:有源蜂鸣器(内含驱动线路)和无源蜂鸣器(外部驱动)。本设计使用无源蜂鸣器。

4.3 开发环境

本次设计使用的软件为Arduino开发环境Arduino-0022,如图4-2所示。

图4-2 开发环境

5 系统设计与调试

5.1 准备好硬件开发平台

把Arduino控制板与其他器件连接好,再把Arduino与微机USB口连接好。

5.2 实现原理

蜂鸣器发出声音的时间间隔不同,频率就不同,所以发出的声音就不同。根据这一原理我们通过改变蜂鸣器发出声音的时间间隔,来发出不同种声音,来模拟各种声音。

本程序首先让蜂鸣器间隔1ms发出一种频率的声音,循环80次;接着让蜂鸣器间隔2ms发出另一种频率的声音,循环100次。

5.3 程序代码

int buzzer = 7;//设置控制蜂鸣器的数字IO脚

void setup()

{

pinMode(buzzer,OUTPUT);//设置数字IO脚模式,OUTPUT为输出 }

void loop()

{

unsigned char i,j;//定义发量

while(1)

{

for(i=0;i

{

digitalWrite(buzzer,HIGH);//发声音

delay(1);//延时1ms

digitalWrite(buzzer,LOW);//不发声音

delay(1);//延时 1ms

}

for(i=0;i

{

digitalWrite(buzzer,HIGH);//发声音

delay(2);//延时2ms

digitalWrite(buzzer,LOW);//不发声音

delay(2);//延时2ms

}

}

}

5.4 下载程序

5.4.1 打开文件夹

打开arduino0022文件夹里面有一个标有arduino.exe 图标,双击打开会出现如图5-1的界面。

图5-1 工作界面

5.4.2 编写源代码

File→new然后编写蜂鸣器实验源代码,如图5-2所示。

图5-2 源代码

5.4.3 编译程序

点击编译按钮,这时编译按钮会发成黄色,下面出现英文 compiling.....,这表示软件正在对你所写癿程序进行编译,如图5-3所示。

图5-3 编译程序

等待一会,会看到编译按钮恢复原来的状态,下面出现Done compiling,最下面一段文字说明编写的程序共有896字节数。这表明,程序编译成功,并且没有语法上的错误。如图5-4所示。

图5-4 编译成功

5.4.4 下载程序

下载程序前先将板子型号和com口选好。点击Tools->Board选择开发板型号,如图5-5所示。

图5-5 选择板型

查看串口,然后选择正确的串口,如图5-6所示。

图5-6 选择串口

点击采后下载按钮发成橙色,软件下方出现Uploading to I/O Board,同时板子上标有TX和RX的灯会亮,如图5-7所示。

图5-7 下载程序

程序下载完毕后,下载按钮恢复原来的颜色,下面出现Done Uploading,如图5-8所示。

图5-8 下载成功

显示Done Uploading,表示程序下载成功了。

程序下载成功后及本设计完成,完成后的实物图如图5-9所示。

图5-9 实物图

6 总 结

现当今,单片机的应用无处不在,利用单片机控制音乐播放也多不胜举,音乐芯片也相当之多,而利用单片机存储音乐,控制播放最为广泛。本次设计以Arduino为平台,利用在Atmega328P-PU单片机中编写程序,通过改变程序内的参数来使蜂鸣器发出急救车的音效,来实现本次设计的效果。

致 谢

本次设计从开始的选题到最后的完稿都是在指导老师的细心指导下完成的,尤其是在设计元器件的挑选与购买上,老师耐心的在网络上给我们挑选价格便宜但是性能高的电路板,为我们以后的设计与写稿方面节省了宝贵的时间,在电路板与蜂鸣器的连接上,老师又给予了帮助。开始我用了一个小喇叭,通过导线直接连接到了电路板上,老师看到后给我讲解了我设计的错误所在,并给我画出了电路原理图,通过老师的讲解我明白了自己在设计中的错误,我把小喇叭换成了无源蜂鸣器。在编写论文过程中,李老师又给予了很多帮助,当我把论文初稿交给李老师审阅时,李老师仔细的查找文中的不足,并把不足处一一指出,使我在修改时容易了一些,当我再一次提交论文时,老师没有批评由于我粗心造成的错误,而是用其他颜色的字体给我标出了错误。在这个过程中我受益匪浅,李学海老师渊博的专业知识,严谨的教学态度,精益求精的工作作风,诲人不倦的高尚师德,严以律己,宽以待人的崇高风范,朴实无华的人格魅力对我有深远影响。在此,对李老师致以深深的敬意和由衷的感谢。

参考文献

[1] 李学海,经典80C51单片机轻松入门与上手,清华大学出版社,2009 [2] 程晨,Arduino开发实战指南,机械工业出版社,2012 [3] 班兹,爱上Arduino,人民邮电出版社,2011 [4] 网络资料搜集

石家庄邮电职业技术学院

毕业设计

基于Arduino的急救车音效设计

届 电信工程 系 专业移动通信技术( )

班级 学号 姓名 指导教师 完成日期 2012年12月14日

毕业设计任务书

毕业设计评定书

摘 要

急救车,专指接载病员由伤病现场往医院,或用作载接病情严重者作转院服务的陆上紧急交通工具。急救车的常规配备包括担架、轮椅、呼吸辅助器、氧气筒、药物、警号灯等。而对于警号灯伴随着“嘀嘟嘀嘟”的声音最为我们熟悉,那么这种“嘀嘟嘀嘟”的声音是怎样制作出来的呢?

目前单片机渗透到我们生活的各个领域,人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。

本文设计以ATMEGA328P-PU单片机为核心,以Arduino为平台。把设置好的源代码传到Arduino控制板上,然后把蜂鸣器连接在控制板上,以此发出“嘀嘟嘀嘟”的音效。

目 录

1 前 言 ............................................................................................................................. 1 2 单片机——Arduino的核心器件.................................................................................. 1

2.1 单片机的定义 ....................................................................................................... 1 2.2 单片机与个人计算机的异同 ............................................................................... 1 2.3 单片机的作用 ....................................................................................................... 1 2.4 单片机视图 ........................................................................................................... 2 3 Arduino的基本组成 ...................................................................................................... 2

3.1 Arduino的定义 .................................................................................................... 2 3.2 Arduino的诞生 .................................................................................................... 2 3.3 Arduino语言 ........................................................................................................ 3

3.3.1 关键字 ......................................................................................................... 3

4 本次设计所需的硬件与软件 ......................................................................................... 6

4.1 Arduino UNO ....................................................................................................... 6

4.1.1 Arduino uno基本概要 .............................................................................. 7 4.1.2 通信接口 ..................................................................................................... 7 4.1.3 下载程序 ..................................................................................................... 8 4.1.4 注意要点 ..................................................................................................... 8 4.2 蜂鸣器 ................................................................................................................... 8 4.3 开发环境 ............................................................................................................... 8 5 系统设计与调试 ............................................................................................................. 9

5.1 准备好硬件开发平台 ........................................................................................... 9 5.2 实现原理 ............................................................................................................... 9 5.3 程序代码 ............................................................................................................... 9 5.4 下载程序 ............................................................................................................. 10

5.4.1 打开文件夹 ............................................................................................... 10 5.4.2 编写源代码 ............................................................................................... 11 5.4.3 编译程序 ................................................................................................... 12 5.4.4 下载程序 ................................................................................................... 14

6 总 结 ........................................................................................................................... 19

致 谢 ................................................................................................................................... 20 参考文献 ............................................................................................................................. 21

1 前 言

Arduino是一个开源的电子原型平台,它基于易于使用的硬件和软件而设计。适合于艺术家,设计师和业余爱好者创建交互性的对象和环境。

Arduino通过接收来自各种传感器的输入来感知环境的变化,通过控制灯光,马达和其它驱动器来表现行为。主板微控制器的编程使用Arduino编程语言(基于Wiring)和Arduino开发环境(基于Processing)。Arduino项目可以独立运行,也可以与计算机上运行的软件通信(如Flash、Processing、MaxMSP)。

主板可以通过手工制作,或者购买商业成品,而软件是可以免费下载。硬件参考设计(CAD文件)是开源许可的,可以根据需求自由调整。

2 单片机——Arduino的核心器件

2.1 单片机的定义

单片机,全称单片微型计算机(英语:Single-ChipMicrocomputer),又称微控制器(Microcontroller),是把中央处理器、存储器、定时/计数器(Timer/Counter)、各种输入输出接口等都集成在一块集成电路芯片上的微型计算机。

2.2 单片机与个人计算机的异同

一台能够工作的计算机要有这样几个部份构成:中央处理单元CPU(进行运算、控制)、随机存储器RAM(数据存储)、只读存储器ROM(程序存储)、输入/输出设备I/O(串行口、并行输出口等)。在个人计算机(PC)上这些部份被分成若干块芯片,安装在一个被称之为主板的印刷线路板上。而在单片机中,这些部份全部被做到一块集成电路芯片中了,所以就称为单片(单芯片)机,而且有一些单片机中除了上述部份外,还集成了其它部份如模拟量/数字量转换(A/D)和数字量/模拟量转换(D/A)等。电脑应用于高端,单片机应用于中低端,二者有着各自的生存空间,至少短期内不会出现一种取代另一种的情况。

2.3 单片机的作用

实际工作中并不是任何需要计算机的场合都要求计算机有很高的性能,一个控制电冰箱温度的计算机难道要用酷睿处理器吗?应用的关键是看是否够用,是否有很好的性能价格比。如果一台冰箱都需要用酷睿处理起来进行温度控制,那价格就是天价了。单片机通常用于工业生产的控制、生活中与程序和控制有关

(如:电子琴、冰箱、智能空调等)的场合。

2.4 单片机视图

下图就是一个Atmega328P-PU单片机,基于AVR指令集的8位处理器,频率20MHz,存储器空间32KB。

图2-1 Atmega328P-PU单片机

3 Arduino的基本组成

3.1 Arduino的定义

Arduino,是一个开源的单板机控制器,采用了基于开放源代码的软硬件平台,构建于开放源代码 simple I/O介面版,并且具有使用类似Java,C语言的Processing/Wiring开发环境。

3.2 Arduino的诞生

2005年冬天,Massimo Banzi和David Cuartielles讨论学生们抱怨找不到便宜好用的微控制器问题,讨论使两人决定设计自己的电路板,由Banzi的学生 David Mellis为电路板设计编程语言。两天以后,David Mellis就写出了程式码。又过了三天,电路板就完工了。这块电路板被命名为Arduino。随后Banzi,Cuartielles,和Mellis把设计图放到了网上。保持设计的开放源码理念,因为版权法可以监管开源软件,却很难用在硬件上,他们决定采用共享创意许可。在共享创意许可下,任何人都被允许生产电路板的复制品,还能重新设计,甚至销售原设计的复制品。你不需要付版税,甚至不用取得Arduino团队的许可。唯一被保留的只有Arduino这个名字。它被注册成了商标。

3.3 Arduino语言

Arduino语言是建立在C/C++基础上的,其实也就是基础的C语言。 3.3.1 关键字 if  if...else  for  switch case  while  do... while  break  continue  return  goto 3.3.2 语法符号  ;  {}  //  /* */ 3.3.3 运算符  =  +  -  *  /  %  ==  

 >=  &&  ||  !  ++  --  +=  -=  *=  /= 3.3.4 数据类型  boolean  char  byte  int

布尔类型 字符类型 字节类型 整数类型

 unsigned int 无符号整型  long

长整型

 unsigned long 无符号长整型  float  double  string  array  void 3.3.5 常 量

 HIGH | LOW 表示数字IO 口的电平,HIGH 表示高电平(1),LOW 表示低电平(0)。

 INPUT | OUTPUT 表示数字IO口的方向,INPUT 表示输入(高阻态),OUTPUT 表示输出(AVR能提供 5V电压 40mA 电流)。  true | false true 表示真(1),false表示假(0)。

以上为基础C语言的关键字和符号,大家可以了解,具体使用可以结合实验

实数类型

的程序。

3.3.6 结 构

 void setup() 初始化发量,管脚模式,调用库函数等

 void loop() 连续执行函数内的语句

3.3.7 功 能

数字 I/O

 pinMode(pin, mode) 数字IO口输入输出模式定义函数,pin表示为0~13,mode表示为INPUT或OUTPUT。

 digitalWrite(pin, value) 数字IO口辒出电平定义函数,pin表示为0~13,value表示为HIGH或LOW。比如定义HIGH可以驱动LED。

 int digitalRead(pin) 数字IO口读输入电平函数,pin表示为0~13,value表示为HIGH或LOW。比如可以读数字传感器。

模拟I/O

int analogRead(pin) 模拟IO口读函数,pin表示为0~5(Arduino

Diecimila 为 0~5(Arduino nano为0~7)。比如,可以读模拟传感器(10位AD,0~5V表示为0~1023)。

 analogWrite(pin, value)-PWM 数字IO口PWM输出函数,Arduino数字IO口标注了PWM的IO口可使用该函数。pin表示3,5,6,9,10,11,value 表示为0~255。比如,可用于电机PWM调速或音乐播放。

时间函数

 delay(ms) 延时函数(单位ms)。

 delayMicroseconds(us) 延时函数(单位 us)。

数学函数

 min(x,y) 求最小值

 max(x,y) 求最大值

 abs(x) 计算绝对值

 constrain(x,a,b) 约束函数,下限a,上限b,x必须在ab之间才能返回。  map(value,fromLow,fromHigh,toLow,toHigh) 约束函数,value必须在fromLow与toLow之间和fromHigh与toHigh之间。

 pow(base,exponent) 开方函数,base的exponent次方。

 sq(x) 平方

 sqrt(x) 开根号

4 本次设计所需的硬件与软件

表4-1 实验器件

4.1 Arduino UNO

Arduino UNO是Arduino USB接口系列的最新版本,作为Arduino平台的参考标准模板。UNO的处理器核心是ATmega328,同时具有14路数字输入/输出口(其中6路可作为PWM输出),6路模拟输入,一个16MHz晶体振荡器,一个USB口,一个电源插座,一个ICSP header和一个复位按钮。UNO已经发布到第三版,与前两版相比有以下新的特点:

在AREF处增加了两个管脚SDA和SCL,支持I2C接口;增加IOREF和一个预留管脚,将来扩展板将能兼容5V和3.3V核心板。 这样改进了复位电路设计 ,USB接口芯片由ATmega16U2替代了ATmega8U2 。如图4-1为改进后的Arduino UNO。

图4-1 Arduino UNO

4.1.1 Arduino uno基本概要

 处理器 ATmega328

 工作电压 5V

 输入电压(推荐) 7-12V

 输入电压(范围) 6-20V

 数字IO脚 14 (其中6路作为PWM输出)

 模拟输入脚 6

 IO脚直流电流 40 mA

 3.3V脚直流电流 50 mA

 Flash Memory 32 KB (ATmega328,其中0.5 KB用于bootloader)  SRAM 2 KB (ATmega328)

 EEPROM 1 KB (ATmega328)

 工作时钟 16 MHz

4.1.2 通信接口

串口:ATmega328内置的UART可以通过数字口0(RX)和1(TX)与外

部实现串口通信;ATmega16U2可以访问数字口实现USB上的虚拟串口。

TWI(兼容I2C)接口。

SPI 接口。

4.1.3 下载程序

Arduino UNO上的ATmega328已经预置了bootloader程序,因此可以通过Arduino软件直接下载程序到UNO中。

也可以直接通过UNO上ICSP header直接下载程序到ATmega328。

ATmega16U2的Firmware(固件)也可以通过DFU工具升级。

4.1.4 注意要点

Arduino UNO上USB口附近有一个自恢复的保险丝,对电路起到保护作用。当电流超过500mA时会断开USB连接。

Arduino UNO提供了自动复位设计,可以通过PC主机复位。这样通过Arduino软件下在程序到UNO中,软件可以自动复位,不需要手动复位按钮。在印制板上丝印“RESET EN”处可以使能和禁止该功能。

4.2 蜂鸣器

蜂鸣器是一种一体化结极的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。

按其驱动方式的不同,可分为:有源蜂鸣器(内含驱动线路)和无源蜂鸣器(外部驱动)。本设计使用无源蜂鸣器。

4.3 开发环境

本次设计使用的软件为Arduino开发环境Arduino-0022,如图4-2所示。

图4-2 开发环境

5 系统设计与调试

5.1 准备好硬件开发平台

把Arduino控制板与其他器件连接好,再把Arduino与微机USB口连接好。

5.2 实现原理

蜂鸣器发出声音的时间间隔不同,频率就不同,所以发出的声音就不同。根据这一原理我们通过改变蜂鸣器发出声音的时间间隔,来发出不同种声音,来模拟各种声音。

本程序首先让蜂鸣器间隔1ms发出一种频率的声音,循环80次;接着让蜂鸣器间隔2ms发出另一种频率的声音,循环100次。

5.3 程序代码

int buzzer = 7;//设置控制蜂鸣器的数字IO脚

void setup()

{

pinMode(buzzer,OUTPUT);//设置数字IO脚模式,OUTPUT为输出 }

void loop()

{

unsigned char i,j;//定义发量

while(1)

{

for(i=0;i

{

digitalWrite(buzzer,HIGH);//发声音

delay(1);//延时1ms

digitalWrite(buzzer,LOW);//不发声音

delay(1);//延时 1ms

}

for(i=0;i

{

digitalWrite(buzzer,HIGH);//发声音

delay(2);//延时2ms

digitalWrite(buzzer,LOW);//不发声音

delay(2);//延时2ms

}

}

}

5.4 下载程序

5.4.1 打开文件夹

打开arduino0022文件夹里面有一个标有arduino.exe 图标,双击打开会出现如图5-1的界面。

图5-1 工作界面

5.4.2 编写源代码

File→new然后编写蜂鸣器实验源代码,如图5-2所示。

图5-2 源代码

5.4.3 编译程序

点击编译按钮,这时编译按钮会发成黄色,下面出现英文 compiling.....,这表示软件正在对你所写癿程序进行编译,如图5-3所示。

图5-3 编译程序

等待一会,会看到编译按钮恢复原来的状态,下面出现Done compiling,最下面一段文字说明编写的程序共有896字节数。这表明,程序编译成功,并且没有语法上的错误。如图5-4所示。

图5-4 编译成功

5.4.4 下载程序

下载程序前先将板子型号和com口选好。点击Tools->Board选择开发板型号,如图5-5所示。

图5-5 选择板型

查看串口,然后选择正确的串口,如图5-6所示。

图5-6 选择串口

点击采后下载按钮发成橙色,软件下方出现Uploading to I/O Board,同时板子上标有TX和RX的灯会亮,如图5-7所示。

图5-7 下载程序

程序下载完毕后,下载按钮恢复原来的颜色,下面出现Done Uploading,如图5-8所示。

图5-8 下载成功

显示Done Uploading,表示程序下载成功了。

程序下载成功后及本设计完成,完成后的实物图如图5-9所示。

图5-9 实物图

6 总 结

现当今,单片机的应用无处不在,利用单片机控制音乐播放也多不胜举,音乐芯片也相当之多,而利用单片机存储音乐,控制播放最为广泛。本次设计以Arduino为平台,利用在Atmega328P-PU单片机中编写程序,通过改变程序内的参数来使蜂鸣器发出急救车的音效,来实现本次设计的效果。

致 谢

本次设计从开始的选题到最后的完稿都是在指导老师的细心指导下完成的,尤其是在设计元器件的挑选与购买上,老师耐心的在网络上给我们挑选价格便宜但是性能高的电路板,为我们以后的设计与写稿方面节省了宝贵的时间,在电路板与蜂鸣器的连接上,老师又给予了帮助。开始我用了一个小喇叭,通过导线直接连接到了电路板上,老师看到后给我讲解了我设计的错误所在,并给我画出了电路原理图,通过老师的讲解我明白了自己在设计中的错误,我把小喇叭换成了无源蜂鸣器。在编写论文过程中,李老师又给予了很多帮助,当我把论文初稿交给李老师审阅时,李老师仔细的查找文中的不足,并把不足处一一指出,使我在修改时容易了一些,当我再一次提交论文时,老师没有批评由于我粗心造成的错误,而是用其他颜色的字体给我标出了错误。在这个过程中我受益匪浅,李学海老师渊博的专业知识,严谨的教学态度,精益求精的工作作风,诲人不倦的高尚师德,严以律己,宽以待人的崇高风范,朴实无华的人格魅力对我有深远影响。在此,对李老师致以深深的敬意和由衷的感谢。

参考文献

[1] 李学海,经典80C51单片机轻松入门与上手,清华大学出版社,2009 [2] 程晨,Arduino开发实战指南,机械工业出版社,2012 [3] 班兹,爱上Arduino,人民邮电出版社,2011 [4] 网络资料搜集


相关文章

  • 自制超声波跟随小车,实现自动跟随!
  • 跟随小车基本原理:[小车]向[发射源]发送使能超声波发射的信息,[发射源]接收到后,使能发射模块发射超 折腾了一天,基本车架就完成了.图中主控NXP的ARM单片机. PS:加上蓝牙变成遥控车 小车底座原型做好啦.铝合金效果不错吧. 随后,制 ...查看


  • 外文翻译-基于Android智能家居系统
  • 通信工程学院 毕业设计外文翻译 毕业设计题目基于ANDRIO的智能家居系统的设计与实现 外文题目UBIQUITOUS SMART HOME SYSTEM USING ANDROID APPLICATION 专业:通信工程 学号: 学生姓名: ...查看


  • 消防机器人设计报告
  • 基于ATmega2560单片机的智能避障灭火小车 一. 设计方案: 1.控制系统: Arduino Mega2560是采用USB接口的核心电路板,具有54路数字输入输出,适合需要大量IO接口的设计.处理器核心是ATmega2560, 同时具 ...查看


  • 单片机课程设计
  • 黄山学院 课程设计说明书 专 业: 自 动 化 班 级: 12自动化 卓越班.2班 学生姓名:周 振 刘东风 卢雄建 指导教师:钱 庆 文 成 绩: 2014年 12 月 日 18 课 程 设 计 任 务 书 2014年12月18 日 第一 ...查看


  • 机器人小车
  • 浙江大学第十二届"中控杯"机器人竞赛 技术报告 一.方案总述 我们通过红外传感器计算距离,当小车前端并排三个红外线传感器中的左右红外线传感器同时接收到反射回来的信号的时,记作移动一格,同时通过前后总共四个传感器使小车在白 ...查看


  • 数字信号处理算法研究
  • 毕 业论文 论文题目(中文)数字信号处理算法研究--基于人体脉搏信号 论文题目(外文)Research on Digital Signal Processing Algorithm-- based 数字信号处理算法研究 --基于人体脉搏信号 ...查看


  • 智慧生活,琳琅满目的智能家居设计,总有一款适合你!
  • 随着智能家居平民化,我们身边的智能设备也越来越多,智能手环,智能插座,智能机器人让大家的生活变得更便捷,更高效,更健康,分享一些智能家居方面的电路设计,一起来看看吧! 1.基于QQ TCP/IP网络传输,智能家居远程监控.报警系统 本系统主 ...查看


  • 机电一体化实训报告
  • 机电控制实 训 总 结 学 号:2013035105 姓 名:华锦辉 院 系:成教学院 专 业:机械设计制造及其自动化 年 级:2013级 指导教师:陈成坤 一.实训目的 1.通过实习,学生应对机电工程学科有一定的感性和理性认识,对机械设计 ...查看


  • 基于RaspberryPi实现的智能家居
  • 摘 要 本文以树莓派为载体进行智能家居控制器的设计.在对现在三种市面上的网络电视的比较中引出毕设的主角--树莓派.首先是LINUX 系统常识性的介绍:然后是在ARM/LINUX平台上面开发应用的两种方法:调用系统已有资源.做程序(C 经典法 ...查看


热门内容