产品机器人基于arduino互动电子套件使用手册_第1页
产品机器人基于arduino互动电子套件使用手册_第2页
产品机器人基于arduino互动电子套件使用手册_第3页
产品机器人基于arduino互动电子套件使用手册_第4页
产品机器人基于arduino互动电子套件使用手册_第5页
已阅读5页,还剩75页未读 继续免费阅读

下载本文档

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

文档简介

基于Arduino互动 使用手册v3.0公司 淘宝店公 公司邮箱机器人技术博播客机器:技术社区商标RobotBase与为哈尔滨奥松机器人科技 商标。基于对产品的持续完善与升级,本公司随时更改本资料或其中所提及的产品概不另行通知。本公司同意或 ,不可擅自盗用、 、 本产品说明中局部或全部内容免责使用者在使用本产品所做的任何应用(如实验、竞赛、二次开发),使用者须自行承担风险。公司对于因使用本产品所产生的直接、间接或附带(包括人身安全损失、利润信誉损失等)8岁儿童须在成人陪同下方可使用本产品进行相关实验。勘误说为了能够正确的传达产品的使用信息,我们花费很多时间和精力在这本手册上,者认其容然有之在册发,欢迎利用电子邮件 与我们联络。为了使手册更加完善,提供最详实的资讯,我们会持续改善增补手册中内容。任何相关资讯更新皆会发布在相上请经常览我的、播客及。使用帮为了能够帮助广大者更好地学习、使用本款套件,在本套件使用过程中遇到任何问题,欢迎到技术社区奥松机器人专区技术支持服务版块发帖询问。有关本套件任何相关资讯及更新皆会发布在相关上,请经常浏览我们的官网、播客以及了解资。相关公司技术社区 Arduino教学博客 奥松机器人 一、基于Arduino互动电子套件介 二、产品组件................................................................................................................三、Arduino技术参 四、ArduinoIDE软件使用介 1、IDE软 2、安装驱 3、设置 4、程序................................................................................................................五、Arduino基本语言概 1、Arduino程序基本架 2、Arduino常用编程语 六、Arduino控制器特 七、实验例 1、“串口通信控制LED灯”实 2、智能实 3、火焰传感器实 4、干簧管控制继电器实 5、数字传感器控制流水灯实 6、智能门铃实 7 控制LED灯亮度实 8、全彩LED模拟呼吸灯实 9 控制电机转速实 10、检测实 11、温度器实 12、电子琴实 13、看谁摇得快实 14、指针亮度计试 15、大考验实 16、串行转并行实 17、游戏实 八、拓展实验例 1、 oWorld!”实 2、交通灯设计实 3、抢答器设计实 4、模拟值实 5、伺服舵机控制实 6、红外线通信实 九、修改....................................................................................................................十、质保.....................................................................................................................十一、技术支 十二、硬件推荐及说 一、基于Arduino互动电子套件介基于Aduin互动电子套件是哈尔滨奥松机器人科技专门为Aino电子者精心打造的一款适合电子类专业学生学习的套件。即使你没有学过电子电路相关知识,也可以按照手册讲解一步步完成每个设计实验,在整个实验的过程中,你只需在面包板上通过跳线插拔连接元件,无须使用电烙铁焊接,避免了初学者焊接元件浪费原料不环保的习惯。本套件除基本操作讲解外,还附带实验课程,这部分课程完全考虑初学者学习,由易到难,循序渐进,精心编排,每个实验均配有实物图、元件插接图、电路图,实验详细说明和具有功能注释的例子程序。打好学习基础,启发创新思维,领Aui电子世界的必备之选。二、产品组件三、Arduino技术参微处理器尺寸工作电输入电压:接上USB时无须外部供电或外部7V~12VDC输输出电压:5VDC输出和3.3VDC输出和外部电源输时钟频率:16输入电压:7-12V(推荐输入电压:6-20V(限制支持USB接口协议及供电(不需外接电源数字I/O端口:14(6 输出口模拟输入端口直流电流:40mA(I/O端口直流电流:50mA(3.3V端口Flash内存:32KBATmega3280.5KB用于引导程序SRAM:2KBEEPROM:1KB四、ArduinoIDE软件使下面介绍的是如何在Windows上IDE、安装驱动,配置IDE和程序的使用,若您已在使用ArduinoIDE可越过此步。注意事项:在未认真阅读本用户手册之前给ArduinoUNOR3控制器加电!以免因错误接线造成ArduinoUNOR3控制器永久损坏。注意控制器上简明标识符,正确接线!切勿将电源线接反,造成电子器件烧毁1、IDE软当然您也可以直接使用光盘中为您提供的ArduinoIDE软件。图4.1.1Arduino官网界点击WindowsInstaller(我们主要介绍的是Windows下的使用方法,若您的个人电脑是Mac或者Linux对应即可),出现如图4.1.2所示的框。设置保存路径,然后点击,文件就会开始自动。图4.1.2ArduinoIDE设文件完成后,在刚刚设置好的保存路径中找到完成文件,双击完成文件,就会出现如图4.1.3所示的窗口,点击IAgree、点击Next,设置保存路径,Install,显示完成后,点击CloseArduinoIDE就已安装完毕。4.1.3ArduinoIDE按照第3部我们设置的安装路径,找到Arduinoarduino应用图标,如图4.1.4所示,这里您可以创建一个快捷方式放到电脑桌面上,方便4.1.4ArduinoIDE2、安装驱使用USB线把ArduinoUNOR3控制器连到C上,稍等一会儿,若驱动没有正常更新就会出现一个错误信息,提示“设备驱动软件没有成功安装”,我们直接关打开Windows控制面板--设备管理器--其他设备,点开找到带有黄色叹号图标ArduinoUNO,如图4.2.1所示4.2.1Windows选择AduinoUNOAduinoUNO个框里选择浏览计算机以查找驱动软件的选项。点oes4.2.2所示4.2.2ArduinoUNO告诉您驱动已经安装好了,并告诉我们Arduino所连接的COM端码,如图4.2.3所示,点击关闭,至此ArduinoUNOR3控制器驱动已经安装完毕4.2.3ArduinoUNO3置打开AduinoD,ArduinoDE默认为英文界面,AduinoID1.0以上版本才开始支持中文界面,如何设置中文界面呢?点击ie--eeences--ditorlanguage,OKAduinoD,再重新打开软在程序前,您需要告诉IDE连接着Arduino的串,选择工具--串口,然后选择在驱动软件更新窗口里出现过的那个COM端口编号。如图4.3.1所示。4.3.1ArduinoUNO然后是告诉IDE所用的Arduino板的型号。这很关键,因为Arduino有多种不同板卡的控制器。比如,如果您用的是ArduinoUNOR3控制器,就选择工具--板卡--ArduinoUNO。如图4.3.2所示4.3.2ArduinoUNOR34、程序选择文件--打开,找到您要打开的程序,如图4.4.1所示,点击打4.4.1点击按钮,如图4.4.2所示,程序会先编译,再4.4.2Arduino4.4.3Arduino五、Arduino基本语Arduino使用起来要比其他微处理器更易懂,与BasicStamp有些相似,Arduino的编程语言更为简单和人性化。Arduino编程语言基于C语言,但其实用性要远高于C1Arduino序基本架一个Arduino程序分为两部分voidsetup:在这个函数里放置初始Arduino的程序,使主循环程序在开始之前设voidloop():这是Arduino的主函数。这套程序会一直重复执行,直到电源被断2Arduino用编程语pinMode(pin,mode)——将一个引脚配置成INPUT或者OUTPUTdigalWtein,ale必须是前面定义过的输入或者输出模式,否则digtalWrie不生效。digitalRead(pin)——一个输入状态的引脚值。当引脚处于高电平状态时返HIGH,否则返回LOWogWrite(pin,value)——改变该引脚 输出数值,引脚可以是数字I/O、、、、、 值的改变范围是0~255,对应的电压输出值是0~5V ogRead(pin)——模拟输入引脚的值,并将其表示为0~1023之间的数值,对应0~5V的电压值。delay(ms)——延迟一定毫秒的时间Serial.begin(speed)Arduino串口通信做准备,我们可以通过Arduino的上位机软件检测返回值,这里设置通信的波特率,我们通常使用9600,我们也可以使用其他的通信波特率,但是最大值是115200。Serial.read()——一个字节的串行数据Serial.print(data,encoding)——将数据通过串口传回,encoding指明数据传回类Serial.println(data,encoding)——与Serial.print(data)相同,只是在传回数据的末尾多(bytes函式,如果回传值是0代表所有序列埠上资料都已经被read()函式random(min,max)——随机数函数,返回数据大于等于min,小于max六、Arduino控制器特色Aduino/OAduino语言与lash和Pocessing等软件制作出互动作品。它具有较好的电路设计,人性化的排座颜色指示,为您带来更加便捷的产品体验。AduinoUNOR3的AREF边缘增加了DA和CL端口。此外,RSTORF,它能UNOR3能够兼容传感器扩展板v5.0并且能用它额外的端口适应新的扩展板。Aduino可以用于做项目开发的控制也可以与C进行直接的USB连接完成与电脑间的互动,运行于开的DE发境软可在Aduino官网直接(支持Window,inux以及Max。我们所提供的例程均使用ArduinoUNO控制器进行实验七、实验例程1串口通信控制LED灯”实ASCII码是一种电脑编码系统,本例使用ArduinoUNOR3控制器与计算机进行串口通信,利用计算机ArduinoIDE软件的串口监视器向ArduinoUNOR3控制器发送英文字母,对应点亮不同颜色的LED灯。这是一个ArduinoPC机通信的实验,这也是一个试验,希望可以带领大家进入Arduino的世界。LED灯:是一种发光二极管,分为三种颜色红、黄、绿,长引脚为阳极,短引脚为阴按上面所示的面包板接插图接好电路,然后将下面的程序到ArduinoUNO控制“串口通信控制LED灯”实验程序:奥松机器人目的:目:说明

ArduinoUNOR3控制器ArduinoIDE1.7.7 #defineR_LED2#defineY_LED3//led2、3、4,#defineG_LED4//分别连接红色、黄色和绿色发光二极管inttemp=0;//定义一个串口输入数值的变量void{ }void{if(Serial.available()>0){temp=Serial.read();// switchcase114) {digitalWrite(R_LED,HIGH);digitalWrite(Y_LED,LOW);digitalWrite(G_LED,LOW); }case121) {digitalWrite(R_LED,LOW);digitalWrite(Y_LED,HIGH);digitalWrite(G_LED,LOW); }case103) {digitalWrite(R_LED,LOW);digitalWrite(Y_LED,LOW);digitalWrite(G_LED,HIGH);//设定只点亮绿灯}case97) {digitalWrite(G_LED,digitalWrite(G_LED,HIGH);//}case110) {digitalWrite(G_LED,LOW); }}}通过输入不同的字母,观察三个小灯的亮灭情况,在串口监视器中输入“r”时,只2、智能实数码管是由多个发光LED封装到一起组成的“8.”字型输出器件,每一个笔画为一个发光LED本例中通过按键触发random(min,max)函数产生一个随ArduinoUNOR3控制器控制八段数码管显示出1~6的随机数字,模拟的效果。数码管:内LED灯的连接方法不同,可分为共阳极数码管和共阴极数码管,在此实7.2.18按上面所示的面包板接插图接好电路,然后将下面的程序到ArduinoUNO控制智 实验程序奥松机器人目的:目:说明

ArduinoUNOR3ArduinoIDE intswitchPin=2;//定义switchPin引脚为2#defineA_LED#defineB_LED#defineC_LED#defineD_LED#defineE_LED#defineF_LED#defineG_LED inttemp;{pinMode(G_LED,OUTPUT);//设置2为输入引脚;3~9为输出引}void{if(LOW==digitalRead(switchPin))//{temp=random(1,7);//产生一个1~6(temp){case(1){Serial.println(1);//通过串口监视器可以同步查看产生的随机数digitalWrite(A_LED,LOW);digitalWrite(B_LED,HIGH);digitalWrite(C_LED,HIGH);digitalWrite(D_LED,LOW);digitalWrite(E_LED,LOW);digitalWrite(F_LED,LOW);digitalWrite(G_LEDLOW);//数码管显}case(2){digitalWrite(A_LED,HIGH);digitalWrite(B_LED,HIGH);digitalWrite(C_LED,LOW);digitalWrite(D_LED,HIGH);digitalWrite(E_LED,HIGH);digitalWrite(F_LED,LOW);digitalWrite(G_LEDHIGH数码管显示}case(3){digitalWrite(A_LED,HIGH);digitalWrite(B_LED,HIGH);digitalWrite(C_LED,HIGH);digitalWrite(D_LED,HIGH);digitalWrite(E_LED,LOW);digitalWrite(F_LED,LOW);digitalWrite(G_LEDHIGH);//数码管显示“3”}case(4){digitalWrite(A_LED,LOW);digitalWrite(B_LED,HIGH);digitalWrite(C_LED,HIGH);digitalWrite(D_LED,LOW);digitalWrite(E_LED,LOW);digitalWrite(F_LED,HIGHdigitalWrite(G_LEDHIGH);//数码管显示“4”}case(5){digitalWrite(A_LED,HIGH);digitalWrite(B_LED,LOW);digitalWrite(C_LED,HIGH);digitalWrite(D_LED,HIGH);digitalWrite(E_LED,LOW);digitalWrite(F_LED,HIGHdigitalWrite(G_LEDHIGH);//数码管显示“5”}case(6){{digitalWrite(A_LED,HIGH);digitalWrite(B_LED,LOW);digitalWrite(C_LED,HIGH);digitalWrite(D_LED,HIGH);digitalWrite(E_LED,HIGH);digitalWrite(F_LED,HIGH);digitalWrite(G_LEDHIGH数码管显示“6”}}}}按下按键,数码管显示会随机出现1-6任意3、火焰传感器实验远红外火焰传感器是一种对火焰等热源敏感的传感器,本例中利用远红外火焰传焰上AduinoDE的串1、蜂鸣器:蜂鸣器是一种结构电子讯响器,采用直流电压供电,应用于计算机、、复印机、器、电子玩具、设备、机、定时器2、远红外火焰传感器:远红外火焰传感器能够探测到波长在700纳米~1000纳米范围内的红外光,探测角度为60,其中红外光波长在880纳米附近时,其灵敏度达到按上面所示的面包板接插图接好电路,然后将下面的程序到ArduinoUNO火焰传感器实验程序奥松机器人 的 火焰传感器实 ArduinoUNOR3控制器 ArduinoIDE1.7.7 voidsetup(){ //串口pinMode(9,OUTPUT); //定义输出引脚9,用于控制红色LED灯闪烁pinMode(10,OUTPUT); //定义输出引脚10,用于控制蜂鸣器pinMode(14,INPUT); //定义输入引脚14,作为远红外火焰传感器输入}void{int //当无火焰时i=0,但考虑到日光灯及其他可能的远红{delay(500) ;红色LED高低亮度闪 }{ }}火源离传感器越近,返回数值越大,同时D闪烁,蜂鸣器高低声。4、干簧管控制继电器实验干簧管是一种磁敏的特殊开关,当磁铁靠近时干簧管导通,本例中使用ArduinoUNOR3控制器检测干簧管是否导通,并且控制继电器开关动作,从而点亮不同的LED。1、继电器:是一种电控制器件,是当输入量(激励量)的变化达到规定要求时,在电气输出电路中使被控量发生预定的阶跃变化的一种电器。它具有控制系统(又称输入回路)和被控制系统(又称输出回路)之间的互动关系。通常应用于自动化的控制电路中,它实际上是用小电流去控制大电流运作的一种“自动开关”。故在电路中起着自动调节、安全保护、转换电路等作用。2、干簧管:是一种磁敏的特殊开关。它的两个触点由特殊材料制成,被封装在真空的7.4.1按上面所示的面包板接插图接好电路,然后将下面的程序到ArduinoUNO控制干簧管控制继电器实验程序:目的:标系统:用软件: 明ArduinoUNOR3ArduinoIDEvoidsetup(){Serial.begin(9600);//pinMode(3,INPUT);//定义引脚3}void{switch(digitalRead(3)){ case(1): {{}case0) {}}}当磁铁靠近干簧管时,观察红绿LD的亮灭情况和继电器的导通情况。当有磁铁靠近时,干簧管导通,继电器导通,红D亮,当无磁铁靠近时,干簧管断开,继电器开路,绿ED亮。5、数字传感器控制流水灯实验单向倾角开关是一个可以检测倾斜、晃动的特殊开关,本例中使用倾角开关和干6个D按上面所示的面包板接插图接好电路,然后将下面的程序到ArduinoUNO控制数字传感器控制流水灯实验程序: 的: 目标系统:ArduinoUNOR3控制器应用软件 ArduinoIDE inti,j; //定义变量ivoid{}void{if(LOW==(digitalRead(2)&&digitalRead(3)){ }}}当用磁铁靠近干簧管或给倾角传感器角度,观察六个小灯的亮灭情况。可以观到流6、智能门铃实—脉冲宽度调制,是在一定时间内接通、断开电源,通过调整接通、断开时间控制“占空比”,从而调节输出的电压,本例中使用开关触发ArduinoUNOR3控制器,利用驱动蜂鸣器发出不同。按上面所示的面包板接插图接好电路,然后将下面的程序到AarDuinoUNOR3控制器中。智能门铃实验程序:目的:目: 明ArduinoUNOR3ArduinoIDE void{ pinMode(9,OUTPUT); //定义输出引脚9,用于控制蜂鸣器pinMode(2,INPUT); }void{if(LOW==digitalRead(2))if(LOW==digitalRead(2))//蜂鸣器按照高声-低声-{delay(500);}}通过按按键,观察蜂鸣器的响声的高低。按一下按键,会发现蜂鸣器按照高声-声-无声的顺序响一次。如果一直按,蜂鸣器会按高声-低声-无声的顺序循环7、控制LED灯亮度实ulseWidhModulation就是通常所说的 。脉冲宽度调制()是一种对模拟号电平进行数字编码的方法,由于机不能出0或5V的的数字电压值,我们就通过使用高分辨率计数器,用方的占空被调的方来对一具体拟信号电平行编。信号仍然是数字的,因为在给定的任何时刻,满幅值的直流供电要么是5VON,要么是0VOF。电压或电流是以一种通或断OF的重复脉冲序列被加到负载上去的。通的时候即是直流供电被加载上的时候,断的时候即是供电被的时候只要带宽足够,任何模拟值都可以使用进行编码。输出电压=(脉冲时间)被用在许多地方,调光灯具、电机调速、声音的制作等等。下面介绍一下的三个基本参数:脉冲宽度变化幅度(最小值/最大值脉冲周期(1秒内脉冲频率个数的倒数电压高度(例如:0V-按上面所示的面包板接插图接好电路,然后将下面的程序到ArduinoUNO控制控制控制LED灯亮度实验程序:奥松机器人目的:目调控灯光亮度实验标系统:应ArduinoUNOR3控制器用软件:ArduinoIDE1.7.7:2015-11- 明 int //switchPin1int int int 速void{ //打开串口并设置通信波特率为9600pinMode(switchPin1,INPUT);//设定switchPin1引脚为输入状态pinMode(switchPin2,INPUT);//设定switchPin2引脚为输入状态 //设定LED引脚为输出状态}void{if(LOW==digitalRead(switchPin1))//如果switchPin1为低电平则执行下面的语{ }if(LOW==digitalRead(switchPin2))//如果switchPin2为低电平则执行下面的语{ }}通过按两个按键,观察LED的亮度变化。连续按增亮按键,LED小灯变亮,连续按减亮按键,LED小灯变暗。8LED模拟呼吸灯实验全彩LED是一种集成了红、绿、蓝三种颜色的LED,可以组合出万千种颜色变化,本例使用3路 一种是3个RGB设计到同一一种是3个RGB设计到同一块铝基板上,一种是3个 绑定到一个LED封装中全彩LED灯工作时,按三色加法合成所需要的色彩,红和绿合成黄色,红和蓝合成洋按上面所示的面包板接插图接好电路,然后将下面的程序到ArduinoUNO控制全彩LED模拟呼吸灯实验程序:奥松机器人目的:标系统:用软件: 明ArduinoUNOR3ArduinoIDEintR_Pin= intG_Pin=10intB_Pin=9 void{ pinMode(R_Pin,OUTPUT);pinMode(G_Pin,OUTPUT);pinMode(B_Pin,OUTPUT);}void{int //红灯{ //绿灯逐渐变{ 逐渐变for(k=6;k>=2;k Color(i,j,k);// 逐渐变}for(j=6;j>=2;j //绿灯{ }}for(i=6;i>=2;i //红灯逐渐变{{ }for(j=6;j>=2;j--{ }}}}}voidColor(intrintgint {ogWrite(R_Pin,36*r);ogWrite(G_Pin,36*g);ogWrite(B_Pin,//////Serial.println(b);观察全彩LED的颜色变化。会发现全彩LED小灯呈现彩色呼吸灯效果9、控制电机转速实电压有关,本例中通过两个按键开关调节ArduinoUNOR3控制器输出的 按上面所示的面包板接插图接好电路,然后将下面的程序到ArduinoUNO控制奥松机器人控制电机转速实验程序:奥松机器人目的: 目标系统:ArduinoUNOR3控制器应用软件:ArduinoIDE1.7.7:2015-11- intswitchPin1=7;//定义switchPin1引脚为7 inta=0;//变量a用来 void{Serial.begin(9600);//打开串口并设置通信波特率为9600pinMode(switchPin1,INPUT);//设定switchPin1引脚为输入状态pinMode(switchPin2,INPUT);//设定switchPin2引脚为输入状态}void{={ //延时1秒}={ }}按按键时,会发现电机转速变慢,继续按按键,电机会停止10、检测实红外热释电传感器可以检测移动时的红外线变化,本例中使用ArduinoUNOR3控制器热释电传感器的数据,当有人在监测区域内移动时,点亮LED。热释电红外传感器:在结构上引入场效应管,其目的在于完成阻抗变换。由于热电元输出的是电荷信号,并不能直接使用,因而需要用电阻将其转换为电压形式。故引入的N沟道结型场效应管应接成共漏形式来完成阻抗变换。热释电红外传感器由传感探测元、滤光片和场效应管匹配器三部分组成。设计时应将高热电材料制成一定厚度的薄片,并在它的两面镀上金属电极,然后加电对其进行极化,这样便制成了热释电探测元按上面所示的面包板接插图接好电路,然后将下面的程序到ArduinoUNO控制奥松机器人检 实验程序奥松机器人 的 检 实 ArduinoUNOR3控制器 ArduinoIDE1.7.7 intledPin=9; //定义ledPin引脚为9intsensor //sensor引脚intval= void{pinMode(ledPin,OUTPUT);//设定ledPin引脚为输出pinMode(sensor,INPUT);//设定sensor引脚为输入状}void{val=digitalRead(sensor);//读传感器的值if(HIGH== //如果检测到人移 }}当热释电传感器在一定范围内监测到走动时,会发现LED小灯变亮,当检测不到走动时,小灯无变化。11、温度器实LM35使用非常普遍,00V,每升1℃,输出电压增10mV。本实验利用ArduinoUNOR3控制器模拟口A0,A1分别测量旋转变位器和温度传感器的电压较。若大于设置的值则。LM35:是一种得到广泛使用的温度传感器。由于它采用内部补偿,所以输出可以从0℃开始。LM35有多种不同封装型式。在常温下,LM35不需要额外的校准处理即可达到±1/4℃的准确率。其电源供应模式有单电源与正负双电源两种,其引脚如图一所静止温度中自热效应低(0.08℃),单电源模式在25℃下静止电流约50μA,工作电压较宽,可在420V按上面所示的面包板接插图接好电路,然后将下面的程序到ArduinoUNO控制温 器实验程序 的 目标系统 ArduinoUNOR3控制应用软件 ArduinoIDE 明 inttemp,settmp,vtemp;voidsetup(){digitalWrite(9,HIGH);voidvoid{ {}Serial.print("SetTemp:");}了。如下图:12音乐是一种听觉艺术,是直通心灵的艺术。她还具有治疗疾病、增强力、改31个蜂鸣器制作简易的电子琴。3个按键分别为哆,来,咪。可以弹奏简谱,体验自己DY的电子琴发出的音乐。按上面所示的面包板接插图接好电路,然后将下面的程序到ArduinoUNO控制目目的:: ArduinoUNOR3ArduinoIDE constintBTN1=5;//按键1constintBTN2=6;//按键2constintBTN3=7;//按键3constintBUZ11;//蜂鸣器void{pinMode(BTN1,INPUT_PULLUP); pinMode(BTN2,INPUT_PULLUP); pinMode(BTN3,INPUT_PULLUP); pinMode(BUZ,OUTPUT); }voidvoid{if(digitalRead(BTN1)=={tone(BUZ,2093);elseif(digitalRead(BTN2)==LOW)tone(BUZ,2349);elseif(digitalRead(BTN3)==LOW)tone(BUZ,2637);else}//1//////通过按不同按键,观察蜂鸣 变化。会发现三个按键所对 都不同13、看谁摇得快实你注意过自己摆动的极限速度么?用什么方法看可以准确的测量的摆动频率呢?此实验通过使用传感器和AduinoUNO搭建的电路来准确测量你的极限摆动频率。传感器:传感器在测试技术中是关键部件之一,它的作用主要是将机械量接收下来,并转换为与之成比例的电量。由于它也是一种机电转换装置。所以我们有时也称它为换能器、拾振器等。按上面所示的面包板接插图接好电路,然后将下面的程序到ArduinoUNO控制看谁摇得快实验程序: 的 看谁摇得快实 ArduinoUNOR3控制器 ArduinoIDE1.7.7 constintBTN=12; int int intcounter= unsignedlongtimeBegin; voidsetup(){}void{timeBegin //开始计{sample1= sample2= if(sample1==HIGH&&sample2=={ }if(millis()-timeBegin>{ counter=0;}}}}观察串口监视器的数值,数值越大,说明摇的越快,;反之14、指针亮度计光敏电阻是利用半导体的光电效应制成的一种电阻值随入射光的强弱改变阻,又称为光电导探测器;入射光强,电阻减小,入射光弱,电阻增大。通过ArduinoUNO的模拟口A0测量光敏电阻的值,通过舵机以指针的形式输出,可以直观的看到光1、舵机:舵机是一种位置伺的驱动,主要是由外壳、电路板、无、齿轮与位置检测器所构成。其工作是由或者单片机发出信号给,其内20ms1.5ms的基准信号,将获得的直流偏置C判断转动方向,再驱动无马达开始转动,透过将动力传至摆臂,同时由位置检测回信号转速定时,过级轮带动位器转,使电压为0,电机停止转动。0180度。舵机的转动的角度是通过调节(脉冲宽度调制)信号的占空比来实现的,标准s到2ms.5ms到.5ms0°~180°相对应。有一点值得注意的地方,由于舵机牌子不同,对于同一信号,不同牌子的舵机旋转的角度也会有所不同。2、光敏传感器:又叫光感电阻,是利用半导体的光电效应制成的一种电阻值随入射光的强弱而改变的电阻器;入射光强,电阻减小,入射光弱,电阻增大。光敏电阻(将光的变化转换为电的变化。通常,光敏电阻器都制成薄片结构便吸收的光能。当它受到光的时,半导体片(光敏层)按上面所示的面包板接插图及原理图接好电路,然后将下面的程序到ArduinoUNOR3控制器中。指针亮度计实验程序:奥松机器人目的:应用软件: ArduinoUNOR3ArduinoIDE #include<Servo.h>intmes;void{}void{

//伺服舵机接数字5 Serial.print("myservoangle:");//串口输出}15、大考验实这个实验用Arduino随机点亮3X3LED灯阵中的若干LED,给用户1秒钟的记忆时间。全亮后全灭,用户通过点亮刚才中的灯,(的1~9键位对应灯阵上LED位置)。本例中LED用到了红外和。通过制作这个电路和编写程序,大家能了解红外的原理。红外:红外接收电路通常被厂家集成在一个元件中,成为红外接收头。器等。红外监测二极管监测到红外信号,然后把信号送到放大器和限幅器,限幅器把脉冲幅度控制在一定的水平,而不外和的距离远近。交流信号进入带通滤波器,带通滤波器可以通过30khz到60khz的负载波,通过解调电路和积分电路按上面所示的面包板接插图接好电路,然后将下面的程序到ArduinoUNO控制奥松机器人目的奥松机器人目的:: ArduinoUNOR3ArduinoIDE #include<IRremote.h>#includeconstunsignedlongRC_CODE[10]=0xFF30CF,0xFF18E7, 0xFF10EF,0xFF38C7, 0xFF42BD, // constintPINS[100,2,3,4,56,7,8,9, constintBUZ=13;constintRECV_PIN=3;constintN Nint randomNumsNIRrecvdecode_results //intint anwserincboolisRight; //最后判断玩家是否回答正确unsignedlongbeginTime; //用来计算超时时间voidsetup(){ 初始化红外接收for(inti=1;i<=9;i++)pinMode(PINS[i],OUTPUT);pinMode(BUZ,OUTPUT); //}voidloop()//for(inti=0;i<N;randomNums[i]random(1, //范围//LEDNfor(inti=0;i<N;i++){randomNums[i]iPINS[n]表示n盏灯对应的物理针脚号digitalWrite(PINS[randomNums[i]],LOW);}//,提示游戏开始,你也可以使用蜂鸣器for(inti=1;i<=9;i++){}for(inti=1;i<=9;{}//inc=0;//用于记录玩家答案anwser的下标beginTime=millis();//记录玩家回答的时间{ //红外接 的值,结果位于{//RC_CODE[i]//RC_CODE[i]表 的数字i所对应的编for(inti=1;i<=9;{if(results.value //如果玩家按下的数字是{//ianwser[inc++]=i; //记录玩家的答案}} //////if(inc==N)}//5秒内都未回答完毕(inc==N),//if(millis()-beginTime>5000)}//isRight=for(inti=0;i<N;i++) //逐项比较anwser和randomNumsif(anwser[i]!=randomNums[i]) //如果发现有任何一项不相同{isRight //}//,}}if(isRight){tone(BUZ,2000);delay(200);tone(BUZ,2500);delay(200);tone(BUZ,3000);delay(200);}else{tone(BUZ,1000);delay(600);} //当9个LED先全亮再全灭时,游戏开始,用户通过点亮刚才中的灯,16、串行转并行随着你对ArduinoUNO的深入应用,很快就会ArduinoUNO端口不够用的情况。比如你项目里需要控制的输出口大12的时候,这就需要扩展IO口。通过串行转并行的方式输出,用ArduinoUNO3个数字管74CH595D,串行转并行驱动8个管脚。用数字管7,8,974CH595D的DS,ST_CL和SH_CP,实现串行转174CH595D74HC595具有8位一个态功。移位寄存器和器有相互独立的时钟。数据在H_cp(移位寄存器时钟输入)的上升在T_c(时钟入的上沿输入到存器去。如果两个时钟连在一起,则移位寄存器总是比寄存器早一个脉冲。移位寄存器有个串行移位输入(Ds),和一个串行输出(Q7’),和一个异步的低电平复位,寄器有个并行8能OE(为低电平寄存按上面所示的面包板接插图接好电路,然后将下面的程序到ArduinoUNO控制串行转并行实验程序:奥松机器人 的 串行转并行实 ArduinoUNOR3控制器 ArduinoIDE1.7.7 /constintDS=5; //串行数据constintSHCP=7; //移位开关constintSTCP=6; //输出开关constintLSB=0; //最低有效位constintMSB= //最高有效//shiftOut函数近voidshift(intDS,intSHCP,intorder,byte{//MSBLSBbytemask=order==LSB? : //8n8for(inti=0;i<8;{digitalWrite(SHCP,digitalWrite(DS,mask& n01digitalWrite(SHCP, ////MSBLSBorder==LSB?mask<<=1:mask>>=}}voidsetup()//putyoursetupcodehere,torunonce:pinMode(DS,OUTPUT);pinMode(SHCP,OUTPUT);pinMode(STCP,OUTPUT); , //}voidloop()//putyourmaincodehere,torun}观察八个小灯的亮灭情况。会发现八个LED小灯全部变亮17、游戏实人们使用的锁具由传统的机械式锁逐渐发展为安全性能更好,功能的电子密按上面所示的面包板接插图接好电路,然后将下面的程序到ArduinoUNO控制游戏游戏实验程序:奥松机器人目的:应用软件: 明ArduinoUNOR3ArduinoIDE/constintLED1=5;constintLED2=constintLED3=7; //三盏LED代表三个级别constintBTN=4; //游戏开始按钮和确认按钮constintBUZ=11; //蜂鸣器给玩家提示constintPOT= //通过电位计模 的感boolbool //int //int //玩家的回void*reset)(void) ////boolisOK(intlevel,intr,int{if(level==0)returnr-2<ans&&ans<r+2;if(level==1)returnr-5<ans&&ans<r+5;if(level==2)returnr-10<ans&&ans<r+10;}void{pinMode(LED1,OUTPUT);pinMode(LED2,OUTPUT);pinMode(LED3,OUTPUT);pinMode(BUZ,pinMode(BTN, //}voidloop()初始化游戏,关闭小灯和蜂鸣器digitalWrite(LED1,LOW);digitalWrite(LED2,LOW);digitalWrite(LED3,LOW);//while(1)btnState1=btnState2=if(btnState1==HIGH&&btnState2==LOW)}//for(intlevel=0;level<3;{//r=random(0,1024);while(1){answer //tone(BUZ,2000,abs(r- //输入不同,蜂鸣 不level0level1level2,第三级,范围变速变化if(level==0)r=r;if(level==1)r=if(level==2)r=(r+random(1,6))%1024;btnState1=digitalRead(BTN);btnState2=//if(btnState1==HIGH&&btnState2=={//{//点亮当前级别的小灯} //{//}}}}}//}按下按钮后游戏开始,电位计旋转角度不同,蜂鸣器不同,当蜂鸣器声音最小时,按下确认按钮,如果回答正确,会点亮相应级别的灯。如果回答错误,直接重启整个游戏。八、拓展实验例程 ArduinoUNOR3控制 USBArduinoUNOR3控制器USB线我们按照上面所讲的将Arduino的驱动安装好后,我们打开Arduino的软件,编写一段程序让Arduino接受到我们发的指令就显示“oWorld!”字符串,当然您也可以让Arduino不用接受任何指令就直接不断回显“oWorld!”,其实很简单,一条if()语句就可以让你的Arduino听从你的指令了,我们再借用一下Arduino自带的数字13LED,让Arduino接受到指令时LED闪烁一下,再显示“oWorld!”。用USB线连接好计算机和ArduinoUNOR3控制器,然后将下面的程序ArduinoUNOR3控制器中奥松机器人 “ oWorld!”实验奥松机器人 “ oWorld!”实验 ArduinoUNOR3控制intledpin=13;voidsetup(){intledpin=13;voidsetup(){}void{{PC机发送给Arduino的指令或字符,并将该指令或字符赋给//13LED}} intval; //定义变量val亮,及串口监视器返回数值为 o8.1.12、交通灯设计实验我们就来做一个稍微复杂一点的交通灯实验,其实聪明的朋友们可以看出来这个3个颜色的小灯,就可以实现我们模拟交通灯的实实验用到的主要设备:黄色发光二极 绿色发光二极ArduinoUNOR3控制器USB线大面包红色黄色绿色470Ω电阻10、7、4、接口。按上面所示的面包板接插图及原理图接好电路,然后将下面的程序到ArduinoUNOR3控制器中。交通灯设计实验程序:奥松机器人 的 交通灯设计实 ArduinoUNOR3控制器 ArduinoIDE1.7.7 intredled=10; //定义数字10接口intyellowled intgreenled void{pinMode(redled,OUTPUT); //定义红色小灯接口为输出接口pinMode(yellowled,OUTPUT); pinMode(greenled, }void{, //点亮 digitalWrite(redled,LOW); digitalWrite(yellowled,HIGH); //延时0.2秒digitalWrite(yellowled,LOW); //熄灭黄色小灯digitalWrite(greenled,HIGH); //点亮绿色小灯 //延时1秒digitalWrite(greenled, }完毕后,可以观察到红黄绿三个颜色LED灯按不同时间间隔闪烁3、抢答器设计实验将上面的按键控制小灯的实验扩展成3个按键对应3个小灯6个数字I/O接口。实验用到的主要设备:ArduinoUNOR3控制器USB线大面包红色黄色绿色470Ω电阻10kΩ电阻按键开8.3.18.3.2按上面所示的面包板接插图及原理图接好电路,然后将下面的程序到ArduinoUNOR3控制器中。抢答器设计实验程序:奥松机器人奥松机器人目的:标系统:用软件: 明ArduinoUNOR3ArduinoIDEintredled=10;intint intintintintintintgreen; voidsetup(){ //分别配置输入输出引}void{ {digitalWrite(redled,LOW);} if(yellow==HIGH){digitalWrite(yellowled,HIGH);delay(10000);}{digitalWrite(yellowled,LOW);} if(green==HIGH){digitalWrite(greenled,HIGH);delay(10000);}{digitalWrite(greenled,LOW);}三个抢答器按键,按下任意一个,则对应的LED灯亮,其他两个按键无论是否按下,对应的两个LED灯均不亮,持续十秒钟。十秒钟后可以重新继续准备抢答。4、模拟值实本节实验我们来开始学下模拟I/O接口的使用,Arduino有模拟0—模拟5共计6个模拟接口,这6个接口也可以算作为接口功能复用,除模拟接口功能以外,这个接口可作为数字接口使用,编号为数字14—数字19,简单了解以后,下面就来开始实验用到的主要设备:ArduinoUNOR3控制器USB线大面包10kΩ可调电位图8.4.1模拟值实验面包板接插图8.4.2模拟值实验实物 UNOR3控制器是10位的A/D,所以的模拟值范围是0-1023,本个实验的程在voidsetup()里面设置波特率,显示数值属于ArduinoUNOR3控制器与PC机通信,所以ArduinoUNOR3控制器的波特率应与PC机软件设置的相同才能显示出正确的数AdunoDEvodseup()里面设置波特率相同,程序设置波特率的语句为ea.begn();括号中为波特率的值。其次就是显示数值ea.pn或者ea.pnln,前不是,的于语的讲解面有绍这里不再说了。按上面所示的面包板接插图及原理图接好电路,然后将下面的程序到ArduinoUNOR3控制器中。模拟 实验程序奥松机器人 应用软件: ArduinoUNOR3ArduinoIDE哈尔滨奥松机器 保留所intpotpin=0;intval=0;voidsetup(){}void{ }

//定义模拟//定义数字//将定义变量val,并赋初值//定义数字接口为输//点亮数字接13的//0.1//熄灭数字接13的 模拟接口0的值,并将其赋给//显示出val的 完毕后,旋动可调电位计,可在计算机的ArduinoIDE软件的串口监视窗本实验到这里就完成了,当旋转电旋钮的时候就可以看到屏幕上数值化了, 模拟值这个方法将一直陪伴我们,模拟值 是我们很常用的功能,因为我们需要实现的功能里了。5、伺服舵机控制实验下面我们来拓展一下关于舵机的实验,利用串口通信,输入0-9数字,实现舵机的实验用到的主要设备:ArduinoUNOR3控制器USB线大面包RB-15PG伺服舵Arduino控制舵机的方法有两种,一种是通过Arduino的普通数字传感器接口产生占空比不同的方波,模拟产生信号进行舵机定位,第二种是直接利用Arduino自带的Servo函数进行舵机的控制,这种控制方法的优点在于程序编写,缺点是只能控制2路舵机Arduino自带函数只能利用数字910接口。Arduino的驱动能力有限,所以当需要控制1个以上的舵机时需要外接电源。8.5.18.5.2大大优于线饶电位器;电机控制集成电路(IC)采用数字与功率开关组成H桥电路,电压控制双极性驱动方式具有反应速度更快、无反应区范围小、定位精度高、UNOR3控制器中。伺服舵机控制实验程序:奥松机器人 的 伺服舵机控制实 UNOR3控制器 IDE1.7.7 intservopin=9; //定义数字接口9连接伺服舵机信号线int intpulsewidth; intval;voidservopulse(intservopin,int { //将舵机接口电平至高 //将舵机接口电平至低}void{ Serial

温馨提示

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

评论

0/150

提交评论