基于Arduino平台的单片机控制技术 课件全套1-17 学习Arduino硬件及操作环境 - - WiFi模块实训项目设计_第1页
基于Arduino平台的单片机控制技术 课件全套1-17 学习Arduino硬件及操作环境 - - WiFi模块实训项目设计_第2页
基于Arduino平台的单片机控制技术 课件全套1-17 学习Arduino硬件及操作环境 - - WiFi模块实训项目设计_第3页
基于Arduino平台的单片机控制技术 课件全套1-17 学习Arduino硬件及操作环境 - - WiFi模块实训项目设计_第4页
基于Arduino平台的单片机控制技术 课件全套1-17 学习Arduino硬件及操作环境 - - WiFi模块实训项目设计_第5页
已阅读5页,还剩270页未读 继续免费阅读

下载本文档

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

文档简介

学习Arduino硬件及操作环境Arduino为感应控制物理世界的工具,包含开放源码的硬件平台和编程开发环境。Arduino工具介绍Arduino应用广泛Arduino项目灵活Arduino编程语言Arduino可开发交互产品,读取开关传感器信号,控制电灯电动机等物理设备。Arduino项目可独立运行,或与计算机程序通信,可选择组装或购买成品。Arduino的编程语言基于处理多媒体的编程环境,就像是在对物理计算平台连线。Arduino是什么有很多单片机平台适合交互式系统设计,如ParallaxBasicStamp等,提供易用的工具包,简化编程流程。Arduino相比其他系统更具优越性,特别适合老师、学生及业余爱好者使用,平衡了成本、跨平台与易用性。和其他平台相比,Arduino板相当便宜,最便宜的Arduino版本可以自己动手制作,成品价格通常不超过200元。简化单片机流程Arduino优势显著经济实惠为什么要选择Arduino硬件开源并可扩展基于Atmel单片机,CreativeCommons协议下可自主设计模块扩展,试验板制作助用户理解工作原理,经济实用。跨平台操作Arduino软件支持Windows、MacintoshOSX和Linux操作系统,而其他大部分单片机系统只能运行在Windows上。简易编程环境初学者易上手,高级用户可深入应用,与Processing环境相似,老师熟悉,学生学过Processing易适应Arduino。软件开源并可扩展Arduino软件开源,支持C++扩展,高级用户可用AVRC替代Arduino语言,直接添加AVR-C代码至程序。为什么要选择ArduinoArduinouno板参数ArduinounoR3基于ATmega328P,工作电压5V,输入输出引脚14路(含6路PWM),模拟输入6路,闪存32KB,时钟频率16MHz。UNO供电分USB5V、DC7-12V、电源5V/VIN7-12V;有4个LED指示电源、串口发送、接收、可编程控制;复位按键用于重启。UNO存储分Flash32KB(BOOT0.5KB)、SRAM2KB、EEPROM1KB;Flash存储程序,EEPROM保存数据,断电不丢失。UNO有14个数字I/O、6个模拟输入端口,支持UART、外部中断、PWM、SPI、TWI通信,AREF接模拟参考电压,Reset接低电平复位。详细介绍存储空间输入/输出端口Arduinouno硬件介绍安装包下载与安装下载Arduino-1.0.5-windows.exe安装包,双击后选择“IAgree”,进入安装路径选择界面,单击“Next”开始安装,完成后单击“Close”退出。开发环境设置与测试打开Arduino开发环境,设置简体中文界面,选择ArduinoUno开发板及对应串口,加载Blink示例程序并编译下载,观察LED闪烁验证板子运转正常。Arduino开发环境Mind+编程界面包括菜单栏、指令区、脚本区、代码查看区、串口区等,支持图形化编程及多种编程语言,提供教程、设备连接、模式切换等功能。Mind+界面介绍下载Mind+编程软件,解压后双击安装,选择中文简体,同意协议,设置安装位置后单击“安装”,等待安装完成,最后单击“完成”即可。Mind+的安装步骤在Mind+菜单栏选“连接设备”,找到Arduino板对应的COM口并连接,连接后单击“扩展”进入“选择连接主控板”界面,完成与Arduino板的连接。连接Arduino板Mind+图形编程软件实训名称Arduino开发环境及Mind+软件的安装与调试,旨在掌握Arduino开发环境及Mind+软件安装与调试。材料清单包括ArduinoUNO板、USB线、Mind+编程软件等,实现Arduino开发环境及Mind+软件安装与调试。难点分析在软件安装过程中,确保系统兼容性,避免安装错误;编程时,掌握编程语言与库函数,确保程序运行。拓展实训报告实现点亮LED灯、读取传感器值等基本功能,通过实践掌握Arduino编程语言及开发环境使用。程序代码实训总结教师评分课后作业在实训中,我们成功安装了Arduino开发环境及Mind+软件,实现了基本功能,为后续的实训打下了基础。根据实训表现、程序功能实现及代码质量等方面表现进行评分,以激励学生不断提高自己的技能水平。课后作业包括掌握Arduino基本数据类型及运算、学会使用条件判断与循环结构等,以巩固课堂知识。拓展实训报告学习Arduino硬件及操作环境是掌握Arduino开发的基础,包括Arduino硬件组成、操作环境、编程软件及编程语言。学习Arduino基础只有掌握了这些基础知识,才能更好地利用Arduino进行项目开发和创新实践,实现自己的创意和想法。掌握基础才能创新总结谢谢大家2024学习C语言编程C语言是一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能。C语言优势使用C语言进行程序设计已经成为软件开发的一个主流,还用于开发系统可缩短开发周期。广泛应用Arduino的编程语言就像似在对一个类似于物理的计算平台进行相应的连线,它基于处理多媒体的编程环境。Arduino编程C语言是什么123C语言作为一种非常方便的语言而得到广泛的支持,很多硬件开发都用C语言编程,如各种单片机、DSP、ARM等。C语言硬件开发C语言程序本身不依赖于机器硬件系统,基本上不做修改就可将程序从不同的单片机中移植过来。C语言可移植性C提供了很多数学函数并支持浮点运算,开发效率高,故可缩短开发时间,增加程序可读性和可维护性。C语言开发效率为什么要选择C语言标识符是用来标识源程序中某个对象的名字,这些对象可以是语句、数字类型、函数、变量、常量和数量等。标识符长度不要超过32个字符,C语言对于大小写字符敏感,所以在编写长程序的时候要注意大小写字符的区分。标识符的定义标识符的注意事项标识符其他关键字const声明只读变量,sizeof计算数据类型长度,typedef为数据类型取别名,volatile说明变量在程序执行中可被隐含地改变。数据类型关键字C/C++语言要求指定数据类型,包括char、double、enum、float、int、long、short、signed、struct、union、unsigned和void。控制语句关键字循环语句有for、do、while;条件语句有if、else、goto;开关语句有switch、case、default;子程序返回语句有return。储存类型关键字auto声明自动变量,extern声明其他文件中声明的变量,register声明寄存器变量,static声明静态变量。关键字赋值运算符赋值语句把某个常量、变量或表达式的值赋给另一个变量,符号为“=”,不是等于,等于用“==”表示。算术运算符在C语言中,有两个单目和五个双目运算符,分别为+(正)、-(负)、*(乘法)、/(除法)、%(取模)、+(加法)、-(减法)。运算符关系运算符对两个表达式进行比较,返回一个真/假值,例如,>表示大于,<表示小于,>=表示大于等于,<=表示小于等于。关系运算符自增自减运算符对变量的操作结果是增加1和减少1,自增运算符(++)和自减运算符(--)对变量的操作结果是增加1和减少1。自增自减运算符包括+=、-=、*=、/=、%=等,用于执行复合赋值运算,如a+=2相当于a=a+2,可以简化代码书写。复合赋值运算符运算符是C语言中唯一的一个三目运算符,对第一个表达式作真/假检测,根据结果返回另外两个表达式中的一个。在C语言中,多个表达式可以用逗号分开,其中用逗号分开的表达式的值分别结算,但整个表达式的值是最后一个表达式的值。条件运算符逗号运算符运算符0102整数常量整数常量是程序中直接使用的整型数值,例如123;这些数默认为整型,但可以使用U和L修饰符改变它;正常情况下,整数常量是十进制整数,但可用专门记号表示其他进制。浮点常量与整数常量类似,用于提高代码的可读性;浮点常量编译时被替换成表达式的值;例子n=0.005;注意:浮点常量可以采用多种科学标记法来表示。逻辑级常量有两个常量用于代表真和假:true和false(布尔常量);false:被定义为0(zero);true:通常true被定义为1,代表正确,但true有比较广的定义。定义引脚级常量HIGH(高电平)和LOW(低电平);HIGH:pinMode()配置引脚为输入,用digitalRead()读引脚时,若引脚上的电压大于3.0V时,返回HIGH。LOWpinMode()配置引脚为输入,用digitalRead()读引脚时,若引脚上的电压小于1.5V时,返回LOW;注意:true和false常量是小写格式。030405常量变量定义与赋值01变量是程序中可变的值,定义时需指定类型,如inti;可在定义时赋值,如inti=95;也可定义后赋值,如inti;i=95;两种写法等效。数据类型与选择02C语言数据基本类型包括整型、实型、字符型等,各类型数值范围不同;定义变量时应根据需求选择合适类型,以节省空间并提升程序效率。编程宗旨与技巧03编程时倡导“能用小不用大”的原则,即尽可能使用较小的数据类型以节省资源;例如,char类型能解决的问题就不使用int,从而优化程序性能。变量拓展实训的名称应该根据具体的实训内容来命名,例如,如果实训是关于C语言编程的,那么拓展实训的名称可以是C语言编程实践"。拓展实训名称在实训中,学生将通过运行示例代码来分析其中的语句,深入理解C语言编程的语法和逻辑,从而更好地掌握编程技能。示例代码运行及语句分析材料清单中应包括所需材料的名称、型号和数量,以便学生按照要求准备相应的材料,确保实训的顺利进行。材料清单拓展实训报告123在实训过程中,学生将针对代码中的难点进行深入分析,通过讨论和交流找到解决问题的办法,提升解决问题的能力。难点分析程序代码是实训的核心部分,学生将根据要求编写程序代码,通过实践掌握编程技能,实现特定的功能或效果。程序代码在实训结束后,学生将进行总结,回顾实训过程,分享收获和经验,找出不足之处,以便今后更好地进行实训和学习。实训总结拓展实训报告教师将根据学生在实训过程中的表现给予评分,评分将综合考虑学生的技能掌握情况、解决问题的能力以及总结分享的质量等因素。教师评分请分别写出循环语句、控制语句和开关语句的关键字,说明“=”“==”和“!=”运算符的区别;“++”和“+=”运算符的区别。课后作业逻辑运算符主要用于进行逻辑运算,如与、或、非等,以便对程序中的逻辑条件进行控制和判断,从而实现更复杂的逻辑流程。逻辑运算符作用拓展实训报告变量定义错误分析对于int%i;变量名错误,应使用字母或下划线开头;intm=1.25;赋值错误,应赋值整数;floatn==9;类型错误,应使用赋值符号。常见逻辑运算符常见的逻辑运算符包括&&(与)、||(或)、!(非)等。这些运算符用于连接多个条件表达式,以构建更复杂的逻辑判断。HIGH和LOW含义在编程中,HIGH和LOW通常用于表示逻辑真和逻辑假,或者二进制数的最高有效位和最低有效位等概念。具体含义需要根据上下文来确定。拓展实训报告谢谢大家2024简单灯的控制实验设计硬件连接原理:通过GPIO引脚直接驱动LED灯,需串联220Ω限流电阻保护LED,理解高低电平与LED亮灭的对应关系(高电平灭/低电平亮取决于共阴/共阳接法)。代码逻辑设计:编写基础数字输出程序,使用`digitalWrite()`函数控制引脚状态,结合`delay()`函数实现1秒间隔的亮灭交替,掌握单片机时序控制的基本方法。现象观察与调试:观察LED是否按预期闪烁,若异常需检查电路接触不良或代码引脚定义错误,学习使用万用表测量引脚电压(正常应为0V/3.3V或0V/5V跳变)。扩展思考:引导学生尝试修改延时参数实现不同闪烁频率,讨论PWM调光替代简单开关的可行性。魔法开关灯实验开发环境配置:详解ArduinoIDE安装步骤,包括驱动安装(CH340或CP2102)、COM端口选择(设备管理器查看),强调波特率匹配的重要性。程序烧录流程:分步解析"验证-编译-上传"过程,解释hex文件生成原理,通过TX/RX指示灯状态判断通信是否正常,处理常见上传失败问题(如端口占用、板卡型号选错)。在线调试技巧:介绍串口监视器使用,添加`Serial.println()`输出调试信息,实时监控变量值或程序执行阶段,培养故障排查能力。安全注意事项:强调断电操作规范,避免热插拔导致芯片损坏,演示如何正确复位开发板。上传模式开关灯实验硬件电路设计:说明共阳/共阴RGBLED接线差异,需使用3个限流电阻(通常470Ω),演示如何通过面包板搭建完整驱动电路。RGB混光原理:解析三基色合成原理,通过PWM调节各通道占空比(0-255)实现1600万色显示,给出典型配色比例(如R:255,G:0,B:255生成品红色)。能耗优化讨论:对比持续亮灭与呼吸灯模式的电流消耗,引入省电设计概念,建议在无级调色时采用10ms以上刷新周期降低CPU负载。渐变算法实现:编写正弦波或线性变化函数控制颜色过渡,引入`map()`函数进行数值映射,实现彩虹渐变效果。LED七彩跳变灯实验面包板结构解析面包板由横向电源轨和纵向元件区组成,电源轨用于连接正负极供电(红/蓝线对应±极),元件区每列5孔内部导通,适合快速搭建无焊电路原型。LED限流电阻常用220Ω,需根据欧姆定律计算阻值(R=(Vcc-Vf)/If),其中Vf为LED正向压降(通常2-3V),If为工作电流(约10-20mA),确保电流不超过LED额定值。电阻选型要点电阻可跨接在面包板中间分隔槽两侧,避免引脚短路;色环读数需掌握四环/五环编码规则(如红红棕金表示220Ω±5%)。电阻安装技巧极性识别方法直插LED长脚为正极(阳极),短脚为负极(阴极);贴片LED通常标有绿色标记或缺口指示负极,内部电极大小差异也可辅助判断(小电极为正极)。电气特性说明常见5mmLED正向电压约1.8-3.3V(红光最低,蓝/白光最高),工作电流5-20mA,超过30mA可能烧毁,需搭配数据手册使用。多色LED应用RGBLED集成三基色芯片,共阳/共阴结构需区分引脚定义,通过PWM调光可实现1600万色混合,适用于动态灯光效果设计。LED灯类型与参数UNOR3具备14个数字引脚(0-13),支持pinMode()设置输入/输出模式,digitalWrite()输出HIGH/LOW电平,输入时可配合INPUT_PULLUP启用内部上拉电阻。数字I/O功能开发板提供5V/3.3V稳压输出,最大电流500mA,可直接驱动LED等低功耗设备;Vin引脚支持7-12V外部供电,USB接口同时具备程序烧录和供电双重功能。电源管理特性ICSP接口支持AVR编程,模拟引脚A0-A5可作数字IO备用,Serial/RX/TX引脚用于UART通信,PWM标记引脚(3/5/6/9/10/11)支持模拟量输出。扩展接口设计Arduino开发板模块化编程的核心函数是代码复用的基本单元,通过封装特定功能减少重复代码,提升程序可读性和维护性。参数传递与返回值理解形参/实参的区别及返回值机制,是实现数据交互和功能扩展的关键。作用域与生命周期掌握局部变量与全局变量的作用范围,避免因变量冲突导致逻辑错误。函数基础知识宏定义(#define)适用于全局常量,如引脚编号(`#defineLED_PIN12`),预处理阶段直接替换,不占用内存。枚举(enum)用于关联性强的常量组(如状态码),增强代码可读性(`enum{OFF,ON,BLINK}`)。const关键字限定变量不可修改(如`constintMAX_BRIGHTNESS=255`),编译器会进行类型检查,安全性更高。常量定义方法初始化函数设计控制函数实现硬件配置封装:将引脚模式设置(如pinMode())、默认状态初始化(如熄灭LED)集中处理,确保硬件环境一致性。参数校验与容错:在初始化函数中加入引脚有效性检查(如if(pin<0)returnERROR),提升鲁棒性。亮度调节逻辑:通过PWM输出函数(如analogWrite())动态调整占空比,实现0-255级亮度控制。状态反馈机制:设计返回值或全局变量(如current_brightness),便于其他函数查询当前LED状态。程序结构类函数04硬件连接方法极性识别单色LED通常有长短引脚区分极性,长脚为正极(阳极),短脚为负极(阴极)。连接时需确保正极通过限流电阻接电源正极,负极接GND,否则会导致LED不发光或损坏。限流电阻计算根据LED工作电压(通常2-3V)和电流(20mA),串联电阻阻值计算公式为R=(Vcc-Vf)/If。例如5V电源驱动红色LED(Vf=2V)时,需使用(5-2)/0.02=150Ω电阻(常用220Ω标准值)。面包板布局建议将LED跨接在面包板中槽两侧,电阻一端插入LED正极所在行,另一端连接至Arduino数字输出引脚,形成完整回路。单色LED连接RGBLED分为共阴(阴极并联)和共阳(阳极并联)两种。共阴型需将公共端接GND,三色引脚通过电阻接IO口;共阳型则公共端接5V,三色引脚通过电阻接地。共阴/共阳识别每个颜色通道需单独串联限流电阻(通常220Ω),分别连接至Arduino的PWM引脚(如9/10/11),通过调节占空比实现256级亮度混合。注意不同颜色LED正向压降可能不同(红≈2V,绿蓝≈3V)。三通道独立控制RGBLED连接PWM引脚选择ArduinoUno的3/5/6/9/10/11引脚支持PWM输出,RGB项目建议选用不同定时器的引脚(如9/10/11)以避免信号干扰。非PWM引脚仅能实现开关控制。电流负载规划单个IO口最大输出电流为40mA,全部PWM引脚总电流不超过200mA。驱动多个LED时需增加晶体管或专用驱动芯片(如ULN2003、TLC5940)。防反接保护建议在电路中加入1N4148二极管防止反向电压,或在程序初始化阶段将所有LED控制引脚设为INPUT模式,待配置完成再切换为OUTPUT。引脚配置规范05实验操作步骤界面模块搭建在Mixly等图形化编程平台中,通过拖拽GPIO控制、延时、循环等逻辑模块,构建LED流水灯的基础控制框架,注意模块间的数据流连接顺序。参数配置优化设置各LED对应引脚编号(如GPX2_7/GPF3_4等),调整延时函数参数(建议500-1000ms),实现亮灭节奏控制,需同步配置三极管驱动电路的上拉电阻匹配值。逻辑验证测试利用仿真模式观察虚拟IO口电平变化,检查奇偶灯交替、正反向扫描等效果是否符合预期,特别验证PN结导通/截止时的电压阈值是否达标。图形化编程流程寄存器地址映射通过宏定义精确配置控制寄存器(如GPX2_CON)和数据寄存器(如GPX2_DAT),采用位操作(|=、&=~)实现引脚模式切换,避免影响其他GPIO功能。驱动层函数封装编写LED_Init()初始化函数统一配置所有LED为推挽输出模式,封装TurnOnLED(uint8_tpin)和TurnOffLED(uint8_tpin)函数增强代码复用性。高级控制算法实现PWM调光功能时,需计算占空比与亮度关系(如10%占空比对应30lux),并加入消抖处理防止机械开关干扰信号。代码编程实现烧录工具链配置使用OpenOCD或J-LinkCommander连接开发板,通过SWD接口下载hex文件,注意核对芯片型号(如STM32F103C8T6)与编译器优化等级设置。实时调试技巧在KeilMDK中设置断点监控GPIO_ODR寄存器值变化,结合逻辑分析仪捕获实际波形,确保高低电平转换时间误差小于5μs。硬件级故障排查当LED异常常亮时,用万用表测量GPIO实际输出电压(正常应为3.3V±10%),若低于2.8V需检查三极管β值或限流电阻阻值(典型值为220Ω-1kΩ)。程序下载与调试GPIO配置与驱动:通过STM32或8051单片机的GPIO端口控制多个LED灯,需配置引脚为推挽输出模式,并设置高低电平以实现亮灭。重点掌握寄存器操作(如STM32的GPIOx_ODR)或位操作(如8051的P1=0xFE)方法。延时函数优化:使用定时器中断或软件延时(如for循环嵌套)控制LED切换间隔,需注意晶振频率与延时精度的关系,避免因延时不准导致效果不流畅。循环移位算法:通过左移(<<)或右移(>>)运算符实现灯位移动,例如8051中P1=_crol_(P1,1),需结合取反操作处理共阳/共阴电路差异。硬件电路调试:在Proteus中仿真时需检查限流电阻(220Ω-1kΩ)、LED极性及电源电压(3.3V/5V),实物焊接时注意避免短路或虚焊。跑马灯实训多模式设计:实现单向流动、双向往返、呼吸灯等效果,需通过状态机或标志位控制方向切换,例如使用`switch-case`结构管理不同模式。PWM调光技术:结合定时器PWM输出调节LED亮度,如STM32的TIMx_CCR寄存器占空比控制,实现渐变效果,需计算脉冲周期与分辨率。按键交互扩展:通过外部中断或轮询检测按键,动态切换流水灯速度或模式,注意消抖处理(硬件电容或软件延时20ms)。仿真与实物验证:在Keil中调试代码后,导入Proteus验证时序逻辑,最终在开发板上测试时需核对引脚定义与原理图一致性。流水灯效果实现状态时序设计:定义红灯(30s)、绿灯(25s)、黄灯(5s)的切换逻辑,使用定时器中断精确计时,并通过`enum`枚举状态变量提高可读性。数码管倒计时显示:扩展74HC595驱动数码管,同步显示剩余时间,需处理BCD编码与动态扫描,避免显示闪烁或残影。紧急模式处理:加入外部中断触发全红灯或黄灯闪烁,例如通过按键模拟救护车优先通行,需在中断服务函数中强制跳转状态。交通灯组协同:模拟十字路口双向灯组联动,需设计状态表(如主路绿灯时支路红灯),并通过串口或I2C通信实现多单片机同步控制。红绿灯模拟实验谢谢大家2024可调灯实验设计了解呼吸灯的基本概念、工作原理,掌握其在电子电路中的应用。深入理解PWM(脉冲宽度调制)技术的原理、优势及应用。学习图像化编程中定义和使用变量的方法,理解其作用和重要性。认识呼吸灯掌握PWM原理图像化定义和使用变量学习目标学习数字信号与模拟信号的区别与联系,理解其在电子系统中的应用。掌握数字信号与模拟信号图像化编程完成简易呼吸灯掌握模拟I/O操作函数熟悉模拟I/O操作函数的使用方法,包括其参数、返回值及注意事项。通过图像化编程,实现简易呼吸灯的控制系统,掌握编程的基本流程。学习目标掌握控制语句while循环深入理解while循环语句的原理、特点及应用场景,掌握其使用方法。手动编程完成简易呼吸灯实验通过手动编程方式,完成简易呼吸灯实验,提升编程实践能力。学习目标电子元件包括面包板用于接线连接元器件、电阻220Ω红色、LED发光模块是入门玩家必备的电子元件。指令功能包括存放可变化值、变量赋值、增加固定数值;循环指令、算数运算符、关系运算符等。取出220Ω电阻连接数字10口与面包板,再取出发光二极管连接至数字引脚10,完成实验连线。材料知识要点实验连线图形化编程名称电子元件功能描述面包板

用于接线连接元器件电阻

220Ω红色

LED

LED发光模块是入门玩家必备的电子元件,编程输出控制亮度取值范围为0~255。可以用数字端口控制灯的亮灭,也可以用模拟口控制它的亮度。输

入高电平灯亮,低电平则灯灭123打开Mind+软件,新建一个项目,进入编程界面,准备开始编写ArduinoUNO的程序。新建项目切换到上传模式,添加ArduinoUNO的支持,确保编程环境配置正确,能够正常编译和上传代码。添加UNO支持在脚本区左侧指令列表中,找到“新建数字类型变量”的指令,并单击以创建新变量。新建数字变量程序编写输入合适的变量名,给变量命名时,可以用字母、数字、下划线开头,支持中文自动转换为拼音字母。输入变量名变量建立成功LED灯逐渐变亮呼吸灯完整程序成功建立新变量,并在脚本中预留好位置,以备之后调用该变量名时使用,确保程序逻辑的正确性。将左侧指令拖曳到脚本区,完成LED灯由暗逐渐变亮程序,确保程序能够正常运行。继续将左侧指令区拖曳到脚本区,添加LED灯由亮逐渐变暗程序,完成呼吸灯的完整图形化程序。程序编写在确认程序输入无误后,点击上传按钮,Arduino将开始下载程序至目标设备。下载程序若以上每一步都已完成,可以看到面包板上的红色LED灯由亮到暗,再到亮的逐渐变化,感觉像是在均匀的呼吸。呼吸灯效果下载程序电子世界有两种“语言”——数字信号与模拟信号;数字信号只有2个值(0V和5V),模拟信号在一定范围内,有无限值。analogReference设定基准电压,analongRead读取模拟值,analogWrite通过PWM输出模拟量,常用于改变灯的亮度或改变电动机的速度等。while循环和for循环是程序中的两种基本控制语句,它们分别用于执行条件循环和初始化、条件判断、迭代调整的循环。数字信号与模拟信号模拟I/O操作函数控制语句代码学习单击给Arduino下载程序,上传进度100%后,编译界面显示“上传成功”,至此完成下载;LED灯随机产生不同亮度的七彩色的亮光。下载程序程序编写自定义函数主函数调用自定义的colorRGB函数,通过传递RGB值来设置颜色;在图形化编程中,先新建并命名函数,然后在代码中声明并调用。包括定义RGBLED模块、设置PWM引脚、编写循环控制程序以及调用随机颜色生成函数等步骤,实现RGBLED的七彩炫彩效果。代码学习数字函数constrain将值归一化在某个范围内;若x在a和b之间,返回x;若x小于a,返回a;若x大于b,返回b。随机函数random()函数用于生成一个随机数,min是随机数的最小值,max是随机数的最大值;random()不是真正的随机数发生器,每次程序执行时,产生的序列是一样的。代码学习认识RGB炫彩灯工作原理掌握随机数指令模块,约束值指令模块,自定义函数模块,图像化编程完成RGB炫彩灯,掌握函数的定义和调用,随机函数,手动编程完成RGB炫彩灯实验。图形化编程材料为面包板和RGB三色LED模块,用于接线连接元器件,可以通过PWM端口控制灯的彩色和亮度,指令包括随机数、约束值、设置PWM引脚输出值及函数定义和调用。学习目标将RGB灯模块的B端接在实验板9号模拟端口上,G端接在实验板10号模拟端口上,R端接在实验板11号模拟端口上,GND端接在实验板GND口上,如图4-9所示。实验连线打开Mind+软件,新建项目并切换到上传模式,添加ArduinoUNO支持,定义新函数并输入合适的函数名,添加输入项后编写函数内容,完成函数定义并在程序中调用。程序编写图形化编程程序编写打开Mind+软件,新建一个项目;打开Mind+切换到上传模式;添加ArduinoUNO的支持;定义新函数;下“自定义模块”,输入合适的函数名并完成函数的创建。学习目标认识RGB炫彩灯工作原理,掌握随机数、约束值指令模块,掌握自定义函数模块,图像化编程完成RGB炫彩灯,掌握函数定义和调用,手动编程完成RGB炫彩灯实验。图形化编程包括材料、知识要点、实验连线、程序编写和下载程序;程序编写需新建项目,添加UNO支持,定义新函数并调用,实现LED颜色随机变化;下载后LED随机显示七彩光。函数调用在指令区出现了,我们可以在它的下方进行编程,定义此函数的内容,点住并拖曳“red”这一参数,能够像其他变量一样使用,完成函数定义,实现LED颜色随机变化。程序编写在Arduino编程中,完成代码输入后,单击下载程序按钮,等待上传进度达到100%,编译界面显示“上传成功”后,程序便成功下载至Arduino设备。程序下载若代码编写无误,且下载步骤正确执行,那么面包板上的LED灯将随机产生不同亮度的七彩色的亮光,实现炫彩灯效果,展示绚丽的灯光变化。运行结果下载程序程序最主要的部分是主函数,其中调用了自定义的colorRGB()函数,通过传递Red、Green、Blue值来设置颜色;函数的使用简化了程序,避免了重复。在图形化编程中,使用函数前需新建并命名;课程中的函数有输入、无输出,其申明格式为voidDF_colorRGB(floatmind_n_red,floatmind_n_green,floatmind_n_blue)。功能是将值归一化到指定范围内;其语法为constrain(x,a,b),若x在a和b间返回x,否则返回a或b;用于确保RGB值在0255范围内,来源于random()函数。主函数与自定义函数函数的声明与定义数字函数constrain代码学习随机函数random()函数用于产生伪随机数,其语法为random(max)或random(min,max),返回[min,max-1]范围内的随机数;同时dfrobotRandomSeed()用于初始化随机种子。程序编写程序包含函数声明、主程序、自定义函数;主程序中调用DF_colorRGB函数改变LED颜色,通过random()生成随机数并约束在0-255范围;实现颜色随机变化的效果。代码学习快慢呼吸灯制作实训名称材料清单包含多个型号电子元件,如LED、电阻、电容等,每种元件数量各异,用于制作可调灯实验。材料清单在制作可调灯实验过程中,需精确控制PWM波形频率和占空比,同时确保电路稳定可靠,是实验中的技术难点。难点分析程序代码是实现可调灯实验功能的核心部分,包含了初始化、循环检测、PWM信号生成等关键部分。程序代码程序拓展实训名称快慢呼吸灯制作材料清单材料清单中需要列出所需材料的名称、型号和数量。难点分析需要分析在制作过程中可能遇到的难点,并给出相应的解决方案。程序代码为了实现特定的功能,需要使用相应的程序代码。实训总结总结实训过程中的经验教训,提出改进意见和建议。教师评分教师需要对学生的实训表现进行评价和打分,以激励学生继续努力。拓展实训报告PWM引脚与编程步骤了解哪些引脚支持PWM功能,掌握图形化编程中定义函数的步骤,包括输入参数、编写函数内容、调用函数等。循环结构编程练习使用while循环编写C代码实现8个流水灯效果,通过循环结构控制LED灯的亮灭,实现流水灯的效果。函数库函数详解理解constrain和random函数的作用和用法,包括它们的参数、返回值以及对应的指令。呼吸灯代码改写使用for循环和函数定义调用方式分别改写呼吸灯C代码,实现相同效果,深化对循环结构和函数的理解和应用。课后作业谢谢大家2024第5章按键实验设计20241.掌握按键工作原理。2.掌握下拉电阻知识。3.掌握条件判断指令模块。4.图像化编程完成按键控制灯泡实验。5.掌握机械式按键抖动。6.掌握软件消抖方法。7.掌握if选择语句。8.手动编程完成按键控制灯泡实验。

5.1.1学习目标按键控制灯泡015.101材料准备5.1.2图形化编程名称电子元件功能描述面包板用于接线,连接元器件红色LEDLED发光模块是入门玩家必备的电子元件,编程输出控制亮度取值范围为0~255。可以用数字端口控制灯的亮灭,也可以用模拟口控制它的亮度。输入高电平灯亮,低电平则灯灭电阻220Ω按键通断电路02知识要点5.1.2图形化编程所属模块指令功能

条件判断指令,用于判断六边形空框内的条件是否成立。条件成立,则执行指令中包含的程序;条件不成立,则执行否则后面的程序条件判断指令,用于判断六边形空框内的条件是否成立。条件成立,则执行指令中包含的程序;条件不成立,则跳过该指令,执行后面的程序

设置对应引脚为高/低电平,相当于将引脚电压设置为相应的值,HIGH(高电平)为5V(3.3V控制板上为3.3V),LOW(低电平)为0V关系运算符:小于、小于等于、等于、大于、大于等于。在框中放入对应形状的指令或者直接输入数值并进行判断条件是否成立,若成立反馈值为1,若不成立反馈值为0

读取数字引脚指令,读取指定引脚收到的值。得到的值为0或1。可以赋值给变量或者作为判断条件03硬件控线5.1.2图形化编程(1)按键

按键一共有4个引脚,图5-2分别显示了正面与背面。而图5-3则说明了按键的工作原理。一旦按下后,左右两侧就被导通了,而上下两端始终导通。本次实验使用按键来控制LED的亮或者灭。一般情况是直接把按键开关串联在LED的电路中来开关,这种应用情况比较单一。这次实验通过间接的方法来控制,按键接通后判断按键电路中的输出电压,如果电压为0V,就是给LED电路输出高电平,反之就输出低电平。

图5-2按键引脚图图5-3按键工作原理图03硬件控线5.1.2图形化编程(2)下拉电阻

“下拉”可以理解为把电压往下拉,降低电压。下拉电阻如图5-4所示,按键作为开关。当输入电路状态为HIGH的时候,电压要尽可能接近5V。输入电路状态为LOW的时候,电压要尽可能接近0V。如果不能确保状态接近所需电压,这部分电路就会产生电压浮动。所以,在按键处接了一个电阻来确保一定达到LOW,这个电阻就是下拉电阻。图5-4下拉电阻03硬件控线5.1.2图形化编程(3)硬件接线具体操作步骤:取220Ω电阻,一端连接实验板数字8口,另一端接入面包板。取发光二极管,阳极接电阻另一端,阴极接地。按钮一端接数字2口,另一端接5V电源,并通过下拉电阻接地(接线图见图5-5)。下拉电阻作用:未接下拉电阻:按键未按下时,输入引脚悬空,易受空气等干扰导致电压浮动,无法确保为0V。接入下拉电阻:按键未按下时,输入引脚通过电阻接地,强制为0V,避免电压浮动,保证信号稳定性。图5-5按键控制灯泡接线图04程序编写5.1.2图形化编程打开Mind+软件,新建一个项目。打开Mind+切换到上传模式。添加ArduinoUNO的支持。将左侧指令区拖曳到脚本区,完成没有消抖

功能的按键控制灯泡程序,如图5-6所示。图5-6无消抖按键控制灯泡图形化程序05程序修改5.1.2图形化编程(1)机械式抖动机械式按键在按下或释放时,因机械弹性作用会产生触点抖动,需5~10ms后才稳定(抖动过程如图5-7)。若不处理,系统会将一次按键误判为多次操作。去抖动方案:硬件去抖:适用于键数少的场景,通过RC滤波电路等硬件消除抖动。软件去抖:适用于键数多的场景,步骤如下:检测到按键按下后,执行10ms延时程序(时间需依按键特性调整);延时后再次确认按键电平,若仍为闭合状态,才判定按键真实按下,消除抖动影响图5-7按键抖动05程序修改5.1.2图形化编程(2)最终程序无消抖按键控制灯泡图形化程序如图5-8所示。图5-8消抖按键控制灯泡图形化程序06下载程序5.1.2图形化编程,输入完毕后,

单击给Arduino下载程序。运行结果:若以上每一步都已完成,可以看到面包板上的红色LED灯熄灭,而当按下按钮时,灯泡点亮,松开手后灯泡熄灭。015.1.3代码学习,if选择语句单分支if语句单分支if语句是一种条件判断的语句,判断是否满足括号内的条件,若满足则执行花括号内的语句,若不满足则跳出if语句。表达式是指判断条件,通常为一些关系式或逻辑式,也可为某一数值。若if表达式条件为真,则执行if中的语句;若表达式条件为假,则跳出if语句。双分支if语句双分支if语句是一种条件判断的语句,判断是否满足括号内的条件,若满足则执行第一个花括号内的语句,若不满足则执行else后的花括号内语句。单击右侧输入以下代码://主程序开始voidsetup(){}voidloop(){ if((digitalRead(2)==1)){ delay(10); if((digitalRead(2)==1)){

digitalWrite(8,HIGH); while(!(digitalRead(2)==0)){ } } }

digitalWrite(8,LOW);}输入完毕后,单击给Arduino下载程序,上传进度100%后,编译界面显示“上传成功”,至此完成下载。运行结果:若以上每一步都已完成,可以看到面包板上的红色LED灯熄灭,而当按下按钮时,灯泡点亮,松开手后灯泡熄灭。编写程序下载程序程序编写与下载5.1.3代码学习if选择语句021.掌握继电器工作原理。2.掌握继电器引脚。3.图像化编程完成继电器控制灯泡实验。4.手动编程完成简易呼吸灯实验。

5.2.1学习目标

继电器实验015.201材料准备5.2.2图形化编程名称电子元件功能描述面包板用于接线连接元器件

红色LED

LED发光模块是入门玩家必备的电子元件,编程输出控制亮度取值范围为0~255。可以用数字端口控制灯的亮灭,也可以用模拟口控制它的亮度。输入高电平灯亮,低电平则灯灭电阻220Ω继电器模块控制电路02知识要点5.1.2图形化编程所属模块指令功能

设置对应引脚为高/低电平,相当于将引脚电压设

置为相应的值,HIGH(高电平)为5V(3.3V控制板上为3.3V),LOW(低电平)为0V

延时等待(输入0.5,即延时0.5s,最小单位为

1ms,即0.001s)03知识要点5.1.2图形化编程(1)继电器继电器(relay)是一种电控制器件,当输入量(激励量)的变化达到设定阈值时,能在电气输出电路中使被控量发生预定阶跃变化,形成控制系统(输入回路)与被控制系统(输出回路)的联动关系。在自动化控制电路中,其本质是通过小电流控制大电流的“自动开关”,具备自动调节、安全保护及电路转换等功能。继电器种类繁多,包括电磁继电器、固体继电器、温度继电器、时间继电器等。本实验使用的电池继电器如图5-9所示。图5-9继电器03知识要点5.1.2图形化编程(2)电磁继电器的工作原理电磁继电器主要由铁心、线圈、衔铁、触点簧片构成(如图5-10所示)。通电时,线圈产生电流引发电磁效应,衔铁在电磁力作用下克服弹簧拉力,带动动触点与常开静触点吸合,实现电路导通;断电后,电磁力消失,衔铁在弹簧作用下复位,动触点与常闭静触点分离,电路切断。继电器线圈未通电时,断开的静触点为“常开触点”,接通的则为“常闭触点”。其电路分为低压控制电路与高压工作电路,实现以小电流控制大电流的功能。图5-11继电器引脚图图5-10继电器工作原理A—常闭触点B—公共端C—常开触点D—线圈端子1E—线圈端子203知识要点5.1.2图形化编程(3)硬件连线具体操作1、取一个220Ω电阻,一端连接实验板5V电源口,另一端接入面包板。2、拿出发光二极管,正极与电阻另一端相连,负极连接继电器公共端B。3、将继电器常开触点C接地GND。4、把继电器线圈两端D、E,分别接至实验板数字口3和地线口GND。完成上述步骤后,实验连线即告完成,具体连接方式如图5-12所示。图5-12继电器实验接线图编写程序1、输入完毕后,单击给Arduino下载程序。2、运行结果:若以上每一步都已完成,可以看到面包板上的红色LED上电后开始闪烁,并且每次亮灭时继电器都会发出滴答声。下载程序打开Mind+软件,新建一个项目。打开Mind+切换到上传模式。添加ArduinoUNO的支持。将左侧指令区拖曳到脚本区,

完成继电器实验程序,如图5-13所示。03程序编写5.1.2图形化编程图5-13继电器实验图形编程图单击右侧输入以下代码://主程序开始voidsetup(){}voidloop(){

digitalWrite(3,LOW); delay(1000);

digitalWrite(3,HIGH); delay(1000);}”程序编写输入完毕后,单击给Arduino下载程序,上传进度100%后,编译界面显示“上传成功”,至此完成下载。运行结果:若以上每一步都已完成,可以看到面包板上的红色LED上电后开始闪烁,并且每次亮灭时继电器都会发出滴答声。”程序下载代码学习5.1.2图形化编程图5-12继电器实验接线图谢谢大家2024第6章蜂鸣器实验设计20241.了解蜂鸣器工作原理。2.掌握蜂鸣器分类。3.图像化编程完成按键控制蜂鸣器。4.手动编程完成按键控制蜂鸣器实验。

6.1.1学习目标按键控制蜂鸣器016.101材料准备6.1.2图形化编程名称电子元件功能描述面包板用于接线连接元器件

无源蜂鸣器发出蜂鸣声电阻220Ω按键通断电路02知识要点6.1.2图形化编程所属模块指令功能条件判断指令,用于判断六边形空框内的条件是否成立条件成立,则执行指令中包含的程序;条件不成立,则跳过该指令,执行后面的程序

设置对应引脚为高/低电平,相当于将引脚电压设

置为相应的值,HIGH(高电平)为5V(3.3V控制板上为3.3V),LOW(低电平)为0V关系运算符:小于、小于等于、等于、大于、大于等于在框中放入对应形状的指令或者直接输入数值并进行判断条件是否成立,若成立反馈值为1,若不成立反馈值为0读取数字引脚指令,读取指定引脚收到的值。得到的值为0或1。可以赋值给变量或者作为判断条件(1)蜂鸣器的分类蜂鸣器其实就是一种一体化结构的电子讯响器。1)按构造方式的不同,蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。压电式蜂鸣器是以压电陶瓷的压电效应,来带动金属片的振动而发声。当受到外力导致压电材料发生形变时压电材料会产生电荷。压电式蜂鸣器需要比较高的电压才能有足够的音压,一般建议为9V以上。电磁式蜂鸣器则是利用通电导体会产生磁场的特性,通电时将金属振动膜吸下,不通电时依靠振动膜的弹力弹回。电磁式蜂鸣器用1.5V就可以发出85dB以上的音压了,唯消耗电流会大大高于压电式蜂鸣器,所以初学者建议使用电磁式蜂鸣器。03硬件连线6.1.2图形化编程03硬件连线6.1.2图形化编程(2)蜂鸣器分类与原理概述蜂鸣器按驱动原理分为有源和无源两类,主要区别如下:1.外观与识别无源蜂鸣器:可见绿色电路板(图6-1),电阻8Ω或16Ω。有源蜂鸣器:黑胶密封无电路板(图6-2),电阻几百欧以上。(注:测电阻或查参数手册更可靠)2.工作原理有源蜂鸣器:内部带振荡源,通直流电即响,声音单一,适合简单提示。无源蜂鸣器:需2K-5KHz方波驱动,无振荡源,音效丰富,适合多音调场景。3.核心区别“源”指振荡源,有源蜂鸣器自带振荡电路,无源蜂鸣器依赖外部方波信号,驱动方式决定了应用场景的差异。图6-1无源蜂鸣器图6-2有源蜂鸣器(2)硬件接线具体操作从实验盒中取出一个有源蜂鸣器,将一端接在实验板数字8口上,另一端接地。按钮一端接在数字2口上,另一端接5V电源,然后接220Ω下拉电阻。如图6-3所示。这样就完成了实验的连线部分。03硬件连线6.1.2图形化编程图6-3按键控制蜂鸣器连接图下载程序输入完毕后,单击给Arduino下载程序。运行结果:若以上每一步都已完成,面包板上的有源蜂鸣器不会响,而当按下按钮时,蜂鸣器会响0.1s。1、打开Mind+软件,新建一个项目。2、切换到上传模式。3、添加ArduinoUNO的支持4、将左侧指令区拖曳到脚本区,完成按键控制有源蜂鸣器程序,如图6-4所示。编写程序程序编写与下载6.1.2图形化编程6.1.3代码学习2.程序下载输入完毕后,单击给Arduino下载程序,上传进度100%后,编译界面显示“上传成功”,至此完成下载。运行结果:若以上每一步都已完成,面包板上的有源蜂鸣器不会响,而当按下按钮时,蜂鸣器会响0.1s。1.程序编写1.掌握PWM原理。2.掌握图形化蜂鸣器输出指令模块。3.图像化编程完成一个报警器。4.掌握音调函数DFTone.Play()。5.手动编程完成报警器实验。

6.2.1学习目标按键控制蜂鸣器016.101材料准备6.2.2 图形化编程名称电子元件功能描述面包板用于接线连接元器件

无源蜂鸣器发出蜂鸣声电阻220Ω按键通断电路02知识要点6.2.2图形化编程所属模块指令功能条件判断指令,用于判断六边形空框内的条件是否成立条件成立,则执行指令中包含的程序;条件不成立,则跳过该指令,执行后面的程序

设置对应引脚为高/低电平,相当于将引脚电压设

置为相应的值,HIGH(高电平)为5V(3.3V控制板上为3.3V),LOW(低电平)为0V关系运算符:小于、小于等于、等于、大于、大于等于在框中放入对应形状的指令或者直接输入数值并进行判断条件是否成立,若成立反馈值为1,若不成立反馈值为0读取数字引脚指令,读取指定引脚收到的值。得到的值为0或1。可以赋值给变量或者作为判断条件从实验盒中取出一个无源蜂鸣器,将一端接在实验板数字8口上,另一端接地。按钮一端接在数字2口上,另一端接5V电源,然后接220Ω下拉电阻,如图6-5所示,这样就完成了实验的连线部分。03硬件连线6.2.2图形化编程图6-5报警器连线图6.2.2图形化编程(2.)程序下载输入完毕后,单击给Arduino下载程序。运行结果:若以上每一步都已完成,面包板上的有源蜂鸣器不会亮,而当按下按钮时,蜂鸣器会发出汽车报警声。(1.)程序编写打开Mind+软件,新建一个项目。切换到上传模式。添加ArduinoUNO的支持。将左侧指令区拖曳到脚本区,完成按键控制有源蜂鸣器程序,如图6-6所示。6.2.3 代码学习6.2.3 代码学习voidloop(){if((mind_n_KEY_NUM==1)){ DFTone.play(BUZZER,131,250); DFTone.play(BUZZER,523,250); } if((digitalRead(KEY)==1)){ delay(10); if((digitalRead(KEY)==1)){ mind_n_KEY_NUM=(1-mind_n_KEY_NUM); while(!(digitalRead(KEY)==0)){

} } }}2.程序编写#include<DFRobot_Libraries.h>//动态变量volatilefloatmind_n_KEY_NUM;//创建对象DFRobot_ToneDFTone;#defineKEY2#defineBUZZER8voidsetup(){pinMode(KEY,INPUT_PULLUP);pinMode(BUZZER,OUTPUT);digitalWrite(BUZZER,LOW);mind_n_KEY_NUM=0;}6.2.3 代码学习3.程序下载输入完毕后,单击给Arduino下载程序,上传进度100%后,编译界面显示“上传成功”,至此完成下载。运行结果:若以上每一步都已完成,面包板上的有源蜂鸣器不会亮,而当按下按钮时,蜂鸣器会响0.1s。谢谢大家2024第7章传感器实验设计20241.掌握光敏电阻。2.掌握光照强度模块。3.图像化编程完成一个感光灯。4.手动编程完成感光灯实验。

7.1.1学习目标

感光灯017.101材料准备7.1.2图形化编程名称电子元件功能描述面包板用于接线连接元器件红色LEDLED发光模块是入门玩家必备的电子元件,编程输出控制亮度取值范围为0~255。可以用数字端口控制灯的亮灭,也可以用模拟口控制它的亮度。输入高电平灯亮,低电平则灯灭电阻220Ω光照强度模块光照强度模块对环境光线最敏感,一般用来检测周围环境的光线的亮度,触发Arduino或继电器模块等02知识要点7.1.2图形化编程所属模块指令功能条件判断指令,用于判断六边形空框内的条件是否成立条件成立,则执行指令中包含的程序;条件不成立,则跳过该指令,执行后面的程序

设置对应引脚为高/低电平,相当于将引脚电压设

置为相应的值,HIGH(高电平)为5V(3.3V控制板上为3.3V),LOW(低电平)为0V关系运算符:小于、小于等于、等于、大于、大于等于在框中放入对应形状的指令或者直接输入数值并进行判断条件是否成立,若成立反馈值为1,若不成立反馈值为0读取数字引脚指令,读取指定引脚收到的值。得到的值为0或1。可以赋值给变量或者作为判断条件(1)光敏电阻光敏电阻是用硫化隔或硒化隔等半导体材料制成的特殊电阻,如图7-1所示,其工作原理是基于内光电效应。光照愈强,阻值就愈低,随着光照强度的升高,电阻值迅速降低,亮电阻值可小至1kΩ以下。光敏电阻对光线十分敏感,在无光照时,呈高阻状态,暗电阻值一般可达1.5MΩ。光敏电阻的特殊性能,随着科技的发展将得到极其广泛应用。03硬件连线7.1.2图形化编程图7-1光敏电阻实物图03硬件连线7.1.2图形化编程(2)光照强度模块本次实验使用的光照强度模块如图7-2所示,关键参数如下:工作电压:DC3.3~5V,光敏电阻型号为5516。

模块针脚:3针或4针(4针含模拟输出端AO),包括VCC(电源)、GND(接地)、DO(数字输出)、AO(模拟输出)。工作原理:当环境光线亮度低于设定阈值时,DO端输出高电平;超过阈值时,DO端输出低电平。DO端可直接连接Arduino检测电平变化,或驱动继电器组成光控开关;AO端通过AD模块转换,能获取更精准的光强数值。模块蓝色电位器用于调节灵敏度,建议保持在中间位置,避免顺时针或逆时针旋到底。图7-2光照强度模块实物图03硬件连线7.1.2图形化编程

(3)硬件连线操作1.光照强度模块连接:DO(S)端接实验板数字8口,VCC(+)接5V电源,GND(-)接地。2.发光二极管连接:220Ω电阻一端接数字2口,另一端接面包板;LED连接数字2口,如图7-3所示。图7-3感光灯接线图(2)硬件接线具体操作从实验盒中取出一个有源蜂鸣器,将一端接在实验板数字8口上,另一端接地。按钮一端接在数字2口上,另一端接5V电源,然后接220Ω下拉电阻。如图6-3所示。这样就完成了实验的连线部分。03硬件连线7.1.2图形化编程图6-3按键控制蜂鸣器连接图下载程序输入完毕后,单击下载程序。运行结果:若以上每一步都已完成,面包板上的LED灯在光线变暗时会被点亮,而光线变强时会熄灭。1、打开Mind+软件,新建一个项目。2、切换到上传模式。3、添加ArduinoUNO的支持。4、将左侧指令区拖曳到脚本区,完成感光灯程序编写程序程序编写与下载7.1.2图形化编程7.1.3代码学习2.程序下载输入完毕后,单击给Arduino下载程序,上传进度100%后,编译界面显示“上传成功”,至此完成下载。运行结果:若以上每一步都已完成,面包板上的LED灯在光线变暗时会被点亮,而光线变强时会熄灭。1.程序编写//主程序开始voidsetup(){

}voidloop(){ if(digitalRead(8)){ digitalWrite(2,LOW); } else{ digitalWrite(2,HIGH); }}1.了解驻极体话筒。2.掌握声音传感器模块引脚知识。3.图像化编程完成一个声控灯。4.掌握模拟信号输入函数。5.手动编程完成声控灯实验。

7.2.1学习目标

声控灯017.201材料准备7.2.2 图形化编程名称电子元件功能描述面包板用于接线连接元器件红色LEDLED发光模块是入门玩家必备的电子元件,编程输出控制亮度取值范围为0~255。可以用数字端口控制灯的亮灭,也可以用模拟口控制它的亮度。输

入高电平灯亮,低电平则灯灭电阻220Ω声音传感器模块采集声音信号02知识要点7.2.2图形化编程所属模块指令功能条件判断指令,用于判断六边形空框内的条件是否成立条件成立,则执行指令中包含的程序;条件不成立,则跳过该指令,执行后面的程序

设置对应引脚为高/低电平,相当于将引脚电压设

置为相应的值,HIGH(高电平)为5V(3.3V控制板上为3.3V),LOW(低电平)为0V关系运算符:小于、小于等于、等于、大于、大于等于在框中放入对应形状的指令或者直接输入数值并进行判断条件是否成立,若成立反馈值为1,若不成立反馈值为0读取数字引脚指令,读取指定引脚收到的值。得到的值为0或1。可以赋值给变量或者作为判断条件(1)驻极体话筒驻极体话筒(图7-5)是基于驻极体材料的电容式声电转换器件,具有体积小、成本低、灵敏度高等优势,广泛用于录音、声控等设备。引脚识别:

-直插/焊脚式:双敷铜时,与外壳相连为接地端,另一为电源/信号端;三敷铜时,除接地端外,另两端为S端和D端。-引线式:屏蔽线接地,两根芯线中红为D端、蓝为S端;单芯线则为电源/信号端(图7-6)。03硬件连线7.2.2图形化编程图7-5驻极体话筒实物图图7-6驻极体话筒结构图03硬件连线7.2.2图形化编程(2)模拟量声音传感器模块实验用模块如图7-7,参数如下:-工作电压DC4-6V,含LM393芯片与驻极体话筒,4针接口(+、G、DO、AO)。-DO端可通过电位器调节灵敏度,声音达阈值时输出高低电平;AO端输出模拟信号,反映声音强度。(3)实物连线1.传感器连接:AO端接实验板A0口,VCC接5V,G接地。2.LED连接:220Ω电阻一端接数字2口,另一端接LED后接地,如图7-8。图7-7模拟量声音传感器模块实物图图7-8声控灯接线图7.2.2图形化编程(2.)程序下载输入完毕后,单击给Arduino下载程序。运行结果:若以上每一步都已完成,当周围声音变大时面包板上的LED灯会被点亮,而周围没有声音或者声音很小时会熄灭。(1.)程序编写打开Mind+软件,新建一个项目。切换到上传模式。添加ArduinoUNO的支持。将左侧指令区拖曳到脚本区,完成声控灯程序.2.3 代码学习1.analogRead(pin)这个函数4.1.3节已经讲过。它用于从模拟引脚读值,pin是指连接的模拟引脚。Arduino的模拟引脚连接到一个了10位A/D转换,输入0~5V的电压对应读到0~1023的数值,每个读到的数值对应的都是一个电压值,比如512对应2.5V。7.2.3 代码学习pinMode(LEDPIN,OUTPUT);//LED为输出模式}voidloop(){val=analogRead(0);//读取模拟信号2.程序编写intval=0;//设置模拟引脚A0读取模块的电压值#defineLEDPIN2//设置LED灯为数字引脚2#defineMIC_MAX100//声音阈值voidsetup(){pinMode(LEDPIN,OUTPUT);//LED为输出模式}voidloop(){val=analogRead(0);//读取模拟信号

if(val>MIC_MAX)//一旦大于设定的值,LED灯打开

{digitalWrite(LEDPIN,HIGH);delay(5000);}else{digitalWrite(LEDPIN,LOW);}delay(100);}7.2.3 代码学习3.程序下载输入完毕后,单击给Arduino下载程序,上传进度100%后,编译界面显示“上传成功”,至此完成下载。运行结果:若以上每一步都已完成,当周围声音变大时面包板上的LED灯会被点亮,而周围没有声音或者声音很小时会熄灭。谢谢大家2024第8章电动机实验设计20241.掌握舵机的工作方式。2.图像化编程完成一个舵机转动实验。3.手动编程完成舵机转动实验。

8.1.1学习目标舵机转动018.101材料准备8.1.2图形化编程名称电子元件功能描述面包板用于接线连接元器件舵机模块9G小舵机,在0~180°之间来回转动02知识要点8.1.2图形化编程所属模块指令功能设置舵机角度指令关系运算符:小于、小于等于、等于、大于、大于等于。在框中放入对应形状的指令或者直接输入数值并进行判断条件是否成立,若成立反馈值为1,若不成立反馈值为0(1)舵机舵机是通过反馈系统精准控制转动角度的电动机,实物如图8-1。其结构包括外壳、电路板、驱动电机、减速器及位置检测元件(可变电阻)。工作原理**:接收机发送信号至舵机,电路板IC驱动空心杯电机转动,经减速齿轮传至摆臂;同时位置检测器(可变电阻)反馈电阻值变化,判断是否到达指定角度。空心杯电机将细铜线绕成极薄中空转子,内置磁铁,实现高转速、低功耗特性。03硬件连线8.1.2图形化编程图8-1舵机实物图03硬件连线8.1.2图形化编程(2)硬件连线具体操作从实验盒中取出一个舵机模块,将它的信号pulse端接在实验板数字9口上,VCC(+)端接实验板5V电源,GND(-)端接实验板地线,如图8-2所示,这样就完成了实验的连线部分。图8-2舵机接线图下载程序输入完毕后,单击下载程序。运行结果:若以上每一步都已完成,面包板上的LED灯在光线变暗时会被点亮,而光线变强时会熄灭。1、打开Mind+软件,新建一个项目。2、切换到上传模式。3、添加ArduinoUNO的支持。4、添加执行器。编写程序程序编写与下载8.1.2图形化编程8.1.3代码学习1.对象函数通常按一个个功能来划分的,就像一个个小的储物柜,函数名好比储物柜标签名。在使用的时候,直接看标签就可以。库是什么呢?库是把多个函数封装打包起来,好比大的储物柜,里面含有一个个小的储物柜。同样,大储物柜也需要一个标签,这标签的学术名称为“对象”,所以这里叫创建一个对象。3.程序编写#include<DFRobot_Servo.h> //声明调用Servo.h库Servomyservo; //创建一个舵机对象intpos=0; //变量pos用来存储舵机位置voidsetup(){myservo.attach(9);

8.1.3代码学习//将引脚9上的舵机与声明的舵机对象连接起来}voidloop(){for(pos=0;pos<180;pos+=1){ //舵机从0°转到180°,每次增加1°myservo.angle(pos); //给舵机写入角度delay(15); //延时15ms让舵机转到指定位置}for(pos=180;pos>=1;pos-=1){ //舵机从180°转回0°,每次减小1°myservo.angle(pos); //写角度到舵机delay(15); //延时15ms让舵机转到指定位置}}4.程序下载输入完毕后,单击给Arduino下载程序,上传进度100%后,编译界面显示“上传成功”,至此完成下载。运行结果:若以上每一步都已完成,舵机会从0°转到180°再返回0°,重复执行。8.1.3代码学习1.图像化编程完成一个可控舵机。2.手动编程完成可控舵机实验。

8.2.1学习目标可控舵机018.201材料准备8.2.2 图形化编程名称电子元件功能描述面包板用于接线连接元器件电位器1×10kΩ电位器舵机模块9G小舵机,在0~180°之间来回转动02知识要点8.2.2

温馨提示

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

评论

0/150

提交评论