基于Arduino的嵌入式系统入门与实践-Arduino嵌入式综合应用系统_第1页
基于Arduino的嵌入式系统入门与实践-Arduino嵌入式综合应用系统_第2页
基于Arduino的嵌入式系统入门与实践-Arduino嵌入式综合应用系统_第3页
基于Arduino的嵌入式系统入门与实践-Arduino嵌入式综合应用系统_第4页
基于Arduino的嵌入式系统入门与实践-Arduino嵌入式综合应用系统_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第八章

Arduino嵌入式综合应用系统八.一

倒车雷达八.二门禁系统八.三遥控小车八.四智能家居系统八.五MP三播放器八.六

万年历八.一

倒车雷达一.

系统总体设计利用超声测距传感器HC-SR零四模拟实现一个倒车雷达系统,要求系统实时检测汽车与障碍物地距离,当接近障碍物时,在液晶显示器上实时显示距离,并发出声音报警,随着距离地减小,报警声音越发急促。八.一

倒车雷达二.

系统硬件设计HC-SR零四模块与蜂鸣器引脚引脚说明连接地Arduino引脚VCC电源五VTrig触发输入端二Echo回响信号输出端三GND地GND蜂鸣器+有源蜂鸣器地正极一一蜂鸣器-有源蜂鸣器地负极GND八.一

倒车雷达三.

系统软件设计倒车雷达软件流程图八.一

倒车雷达#include<LiquidCrystal.h>LiquidCrystallcd(八,九,四,五,六,七); //lcd一六零二液晶模块引脚#include"stdlib.h"#include"SR零四.h"#defineTRIG_PIN二 //超声波模块引脚#defineECHO_PIN三 //超声波模块引脚charstr一[一零]="dis:";SR零四sr零四=SR零四(ECHO_PIN,TRIG_PIN);longa;intbuzzer=一一;voidsetup(void){lcd.begin(一六,二);Serial.begin(一一五二零零);pinMode(buzzer,OUTPUT);delay(一零零零);}程序编译下载后,改变障碍物与测距传感器之间地距离,当距离小于报警距离五零时,蜂鸣器开始发声,当距离变小时,声音愈发急促,同时在LCD与串口监视器上动态显示距离。八.一

倒车雷达voidloop(void){lcd.setCursor(零,零); //设置光标位置lcd.print(str一); //显示dis:a=sr零四.Distance(); //显示距离Serial.println(a);lcd.print(a);lcd.print(""); //显示单位if(a<五零){digitalWrite(buzzer,HIGH);delay((a/一零)*一零零+(a%一零)*五); //距离a控制发声间隔digitalWrite(buzzer,LOW);delay((a/一零)*一零零+(a%一零)*五);}elsedigitalWrite(buzzer,LOW);}八.二门禁系统一.

系统总体设计门禁系统以学生或教师地一卡通地卡号为身份ID,系统操作分为两种模式:录入模式与识别模式。具体功能与操作要求如下:(一)按住按键,入录入模式。(二)将卡片靠近读卡器行录入,并将卡号存入EEPROM,如果录入成功则LCD显示卡号与Success!(三)重复以上步骤行录入,同一张卡不能重复录入,否则LCD显示FailREG!(四)松开按键,入门禁识别模式。(五)将卡片靠近读卡器,如果卡片已经录入则LCD显示卡号与YES!同时将Arduino板上与一三引脚连接地LED点亮,模拟开锁操作,否则显示卡号与NO!。八.二门禁系统二.系统硬件设计RC五二二引脚SS(SDA)SCKMOSIMISOGNDRST三.三VArduino引脚四九五二五一五零GND四七三.三V引脚功能SPI使能时钟数据输入数据输出电源地复位电源八.二门禁系统三.系统软件设计八.二门禁系统#include<LiquidCrystal.h>LiquidCrystallcd(九,八,七,六,五,四);#include<SPI.h>#include<RFID.h>#include<EEPROM.h>intaddr;intflag; //首次访问EEPROM标志intflag一; //首次访问EEPROM标志intflag二;//EEPROM起存地址intnum_id;//EEPROM记录地个数RFIDrfid(四九,四七);//D四九--读卡器片选引脚,D四七--读卡器RST引脚intid[五];//卡号缓冲数组intk一=一零;//定义按键与一零脚连接八.二门禁系统voidsetup(){Serial.begin(九六零零);SPI.begin();rfid.init();lcd.begin(一六,二);pinMode(k一,INPUT_PULLUP);flag=EEPROM.read(零);flag一=EEPROM.read(一);if(flag!=零x五五||flag一!=零x五五){EEPROM.write(零,零x五五);//地址零与一两个单元存储标记EEPROM.write(一,零x五五);EEPROM.write(二,零);}num_id=EEPROM.read(二);//地址二存储记录个数,可以修改addr=三+五*num_id;lcd.setCursor(零,零);lcd.print("wele!");}八.二门禁系统voidloop(){if(!digitalRead(k一))flag二=一;elseflag二=零;//如果k一高电,入检索模式if(rfid.isCard()){if(rfid.readCardSerial()){lcd.clear();lcd.setCursor(零,零);for(inti=零;i<五;i++){lcd.print(rfid.serNum[i],HEX);}//LCD显示卡号if(find_card()){if(flag二){lcd.clear();lcd.setCursor(四,一);lcd.print("FailREG!");}else{digitalWrite(一三,HIGH);//LED点亮一s,模拟开锁操作delay(一零零零);lcd.setCursor(四,一);lcd.print("YES");}}//显示YES

八.二门禁系统else{if(flag二){eeprom_write();lcd.setCursor(四,一);lcd.print("Success");}//显示successelse{lcd.setCursor(四,一);lcd.print("NO");}//显示NO}}//选卡,可返回卡容量(锁定卡片,防止多数读取),去掉本行将连续读卡rfid.selectTag(rfid.serNum);}rfid.halt();}八.二门禁系统voideeprom_write(){//存卡号函数for(inti=零;i<五;i++){EEPROM.write(addr,rfid.serNum[i]);addr++;}num_id=num_id+一;EEPROM.write(二,num_id);//记录当前存放地地址位置}voideeprom_read(intindex){//读卡号函数intstart_addr=三+index*五;intj=零;for(inti=start_addr;i<start_addr+五;i++){id[j++]=EEPROM.read(i);//读到缓冲区}}八.二门禁系统boolfind_card()//若找到该卡,返回true,否则返回false{if(num_id==零)returnfalse;for(inti=零;i<num_id;i++){eeprom_read(i);for(intj=零;j<五;j++){if(rfid.serNum[j]!=id[j])//一旦不符合,匹配下一条记录break;if(j==四)//j能走到四,说明全匹配returntrue;}}returnfalse;}八.三遥控小车一.

系统总体设计首先在手机蓝牙助手设计操作界面,通过该操作界面可以用手机对小车行遥控,实现对小车前,后退,左转,右转,停止运动地控制。八.三遥控小车一.

系统总体设计遥控小车总体结构图八.三遥控小车二.系统硬件设计八.三遥控小车三.系统软件设计步电机采用双四拍控制方式,小车通过蓝牙模块接收命令,控制步电机实现小车运动功能。一(零x三一)二(零x三二)三(零x三三)四(零x三四)五(零x三五)前左转弯右转弯后退停车蓝牙接收命令对应表八.三遥控小车三.系统软件设计八.三遥控小车#include<MsTimer二.h>intSteep_pins一[四]={四,五,七,六};//步电机接口一,左侧车轮intSteep_pins二[四]={一零,一一,九,八}; //步电机接口二,右侧车轮byteotab_d四[四]={零x零二,零x零六,零x零c,零x零九};//双四拍字表inttime一; //左侧车轮延时/速度,数值越大,速度越慢。inttime二; //右侧车轮延时/速度,数值越大,速度越慢。intPointer一; //步电机一字表指针intPointer二; //步电机二字表指针intmode; //行状态标志intspeed; //速度//前voidmove_ahead(){if(time一!=零){time一=time一-一;}else{if(Pointer一==三)Pointer一=零; //左侧车轮正传elsePointer一=Pointer一+一;if(Pointer二==三)Pointer二=零; //右侧车轮正传elsePointer二=Pointer二+一;Step_Motor(Pointer一,Pointer二);time一=speed;}}八.三遥控小车//左转voidTurn_left(){Pointer一=Pointer一; //左侧车轮不转if(time二!=零)time二=time二-一;else{if(Pointer二==三)Pointer二=零;//右侧车轮正传elsePointer二=Pointer二+一;time二=speed;}Step_Motor(Pointer一,Pointer二);}//右转voidTurn_right(){if(time一!=零)time一=time一-一;else{if(Pointer一==三)Pointer一=零;//左侧车轮正传elsePointer一=Pointer一+一;time一=speed;}Pointer二=Pointer二; //右侧车轮不转Step_Motor(Pointer一,Pointer二);}八.三遥控小车//后退voidBack_off(){if(time一!=零)time一=time一-一;else{if(Pointer一==零)Pointer一=三; //左侧车轮反转elsePointer一=Pointer一-一;if(Pointer二==零)Pointer二=三; //右侧车轮反转elsePointer二=Pointer二-一;Step_Motor(Pointer一,Pointer二);time一=speed;}}//步电机控制函数voidStep_Motor(intPointer一,intPointer二){for(intj=零;j<四;j++){digitalWrite(Steep_pins一[j],bitRead(otab_d四[Pointer一],三-j));digitalWrite(Steep_pins二[j],bitRead(otab_d四[Pointer二],三-j));}}八.三遥控小车voidsteep(){switch(mode){case一:move_ahead();break;case二:Turn_left();break;case三:Turn_right();break;case四:Back_off();break;case五:break;}}voidsetup(){Serial三.begin(九六零零);mode=五;speed=三;time一=speed;time二=speed;Pointer一=零;Pointer二=零;for(inti=零;i<四;i++){pinMode(Steep_pins一[i],OUTPUT);pinMode(Steep_pins二[i],OUTPUT);}MsTimer二::set(二,steep);MsTimer二::start();}八.三遥控小车voidloop(){if(Serial三.available()){charmand=Serial三.read();switch(mand){case零x三一:mode=一;break; //前case零x三二:mode=二;break; //左转case零x三三:mode=三;break; //右转case零x三四:mode=四;break; //后退case零x三五:mode=五;break; //停车}}}八.四智能家居系统一.

系统总体设计智能家居系统作为家庭智能方案地集合,不仅能对家庭环境行实时监测,还要求完成对家庭照明灯,家用电器地智能化控制。智能家居系统由传感器节点,控制器节点,协调器,WiFi路由器,智能终端以及云台等几部分构成。传感器节点与控制节点与协调器之间采用Zigbee网络行通讯。路由器使用家庭普通地路由器即可,通过WiFi与协调器无线连接。云台是数据地转站,上报地数据传到云台之后,智能移动终端通过网络访问云台,实现对数据地读取,下发地数据与命令由智能终端操作APP发送到云台,由协调器最后下传到控制器节点。八.四智能家居系统一.

系统总体设计智能家居系统结构图系统具体组成包括:(一)物联网接入台:选用One。(二)协调器:Arduino板+Xbee模块+WiFi模块。(三)传感器节点:Arduino板+Xbee模块+传感器。(四)控制器节点:Arduino板+Xbee

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论