Arduino入门到精通例程6-按键控制
- 格式:docx
- 大小:9.26 KB
- 文档页数:2
聪明的按钮(控制灯的亮与灭,以及LED灯的交互)上节课我们学习了通过按钮按下灯亮了,让灯亮一会N秒后,自动灭掉。
今天我们要来学习,按钮控制灯1、任务描述:按钮按下,灯亮了。
按钮再按下,灯灭了实验依据:根据变量,让程序自动识别后控制。
2、任务描述按钮按下,红灯亮绿灯灭,再按一下,绿灯亮了红灯灭了,以此类推。
实验依据,同上。
(看完下面教程以及图形程序,如果有任何疑问欢迎联系我:QQ157736740)一、教材与学生情况分析《聪明的按钮》位于《Arduino创意机器人》课程的第一章《LED》第四课,经过上一节课的学习,学生已经学会了按钮的初步使用,能正确使用选择结构,掌握了数字口的输入,学会了Arduino控制器与按钮的连接。
这一节课主要是对上一节课的巩固和深化,从编程角度上上,增加了变量、非运算符。
二、教学目标1.通过制作按钮按下LED亮,再按下灭,掌握变量和非运算符的使用。
2进一步体验按钮控制LED编程的过程,激发对编程的兴趣。
3.体验程序调试的一般过程。
三、教学重难点教学重点:数字变量和非运算符教学难点:非运算符四、教学流程1.复习旧知,引入新课教师:上节课我们制作了按钮控制的LED,其中用到了哪些知识呢?有哪几种情况呢?提问:家里面的灯一般是通过开关来控制的,按下灯亮,再按下灯灭,如何实现呢?出示课题《聪明的按钮》。
2.教学新课(1)按钮按下LED亮,再按下LED灭的分析提问:如何根据按钮按下的次数决定灯是亮还是灭呢?引导:首先判断按钮是否按下,如果按下改变LED状态,这时我们需要用到变量,作为按钮状态与LED状态的桥梁。
1)变量和常量常量:指的是程序在运行过程中,其值不能改变的数据。
2)变量:指在程序中用来代表数据的字符,这些字符的值是可以变化的,其中变量有多种类型,如数字变量、模拟变量、字符串变量、字符变量等等。
数字变量的值为0或者1(高电平或者低电平),而模拟变量的值为任实验一参考程序:(如下图)或者程序解说:数字针脚7 由一个变量来控制,不确定他到底是否亮,由程序自己判断当条件满足数字针脚3有信号,也就是按钮按下那么让变量LL与原来的状态相反,即可做到很好的控制最后当循环的模式,只是一个去抖动的效果图1的解说,下面详解实验2:参考程序解说:只是增加了一个数字针脚8意整数。
1.11.21.31.41.51.61.6.11.6.1.11.6.1.21.6.1.31.6.1.41.6.1.51.6.1.61.6.1.71.6.1.81.6.21.6.2.11.6.2.21.6.2.31.6.2.41.6.2.51.6.2.61.6.32.12.1.12.1.22.1.2.12.1.2.22.1.32.1.4Table of Contents介绍1 myCobot - 从入门到精通2 产品简介3 如何阅读4 使用用例5 快速开始6 myCobot 树莓派pymycobot1、机械臂左右摆动2、机械臂头部智能规划路线3、机械臂安全控制4、机械臂设备检测5、机械臂跳舞6、夹爪的使用7、机械臂校准8、控制吸泵myblocklyMyblockly 模块简介1、机械臂放松以及固定2、机械臂夹爪检测3、设置机械臂移动时间4、机械臂控制机制5、机械臂进阶操作Ros开发前的准备1 背景知识1.1 串联机器人1.2 软件背景知识1.2.1 github 1.2.2 arduino 1.3 电子背景知识1.4 力学背景知识2.1.52.22.2.12.2.22.2.32.2.42.32.3.12.43.13.23.2.13.2.23.33.43.4.13.53.5.13.5.23.5.33.5.43.5.53.63.73.83.8.13.8.1.13.8.1.23.8.1.33.8.23.8.2.13.8.2.23.8.33.93.9.13.9.21.5 电机与舵机知识2 了解 myCobot 硬件2.1 了解 Basic 主控2.2 了解 Atom 副控2.3 了解 MyCobot 舵机2.4 了解结构与固定3 myStudio3.1 下载与装载 myStudio 4 手机 app开发与使用软件平台与 API 1 arduino1.1 api 1.2 测试程序2 uiflow 3 python3.1 api 4 ROS&Moveit4.1 环境安装4.2 mycobot_ros 包安装4.3 控制与跟随4.4 键盘控制4.5 moveit 5 RoboFlow 6 通信与报文7 周边产品使用7.1 末端执行器7.1.1 夹爪7.1.2 吸盘7.1.3 笔夹7.2 底座7.2.1 G 型底座7.2.2 吸盘底座7.3 配件8 机器视觉开发8.1 设置环境8.2 颜色识别3.9.33.9.43.9.54.14.24.38.3 形状识别8.4 人脸识别8.5 QR 码识别4 其他1 维护与维修2 常见问题 FAQ3 资源myCobot小象机械臂 - 《从入门到精通》为什么设计myCobot人人都可以学习玩耍的入门级协作机器人myCobot的设计初衷是为了让对六自由度串联机械臂感兴趣的朋友,可以从0到1的了解、学习和操作机械臂,创造前所未有的机械臂使用体验与教学价值。
Arduino编程参考手册控制语句 (5)if (5)if...else (6)for (8)switch case (10)while (11)do...while . (12)break (12)continue (13)return (14)goto (15)相关语法 (16)分号 (16)大括号 (16)注释 (18)define (19)include (20)算术运算符 (21)赋值 (21)加,减,乘,除 (21)取模 (22)比较运算符 (24)if(条件) and ==, !=, <, > (比较运算符) (24)布尔运算符 (26)指针运算符 (27)位运算 (27)位与 (27)位或 (28)位异或 (30)位非 (32)左移、右移 (33)复合运算符 (35)自加++ (35)自减-- (35)复合加+= (35)复合减-= (36)复合乘*= (36)复合除/= (36)复合与&= (36)复合或|= (36)变量36宏定义 (37)整型常量 (39)浮点数常量 (40)数据类型 (41)void (41)boolean (42)char (43)unsigned char (43)byte (44)int (44)unsigned int (45)word (46)long (46)unsigned long (47)float (48)double (49)string (49)String(c++) (51)array (52)数据类型转换 (54)char() (54)byte() (54)int() (54)word() (55)long() (55)float() (56)变量作用域&修饰符 (56)变量作用域 (56)static (静态变量) (57)volatile (易变变量) (59)const (不可改变变量) (61)辅助工具 (61)sizeof() (sizeof运算符) (61)ASCII码表 (63)基本函数64数字I/O (64)pinMode() (64)digitalWrite() (65)digitalRead() (67)模拟I/O (68)analogReference() (68)analogRead() (68)analogWrite() (69)shiftOut() (71)pulseIn() (72)时间 (73)millis() (73)delay(ms) (73)delayMicroseconds(us) (74)数学库 (75)min() (75)max() (75)abs() (76)constrain() (76)map() (76)pow() (78)sqrt() (78)三角函数 (78)sin(),cos(),tan() (78)随机数 (78)randomSeed() (78)random() (79)位操作 (79)设置中断函数 (80)a (80)achInterrupt() (80)detachInterrupt() (82)interrupts() (82)noInterrupts() (83)串口通讯 (83)begin() (84)available() (84)read() (86)flush() (87)print() (87)println() (91)write() (91)peak() (92)serialEvent() (92)程序结构(本节直译自Arduino官网最新Reference)在Arduino中, 标准的程序入口main函数在部被定义, 用户只需要关心以下两个函数:setup()当Arduino板起动时setup()函数会被调用。
Arduino⼿把⼿⼊门教程Arduino⼊门教程简单说,Arduino是⼀块AtmegaX8的开发板,带BootLoader,通过USB转串⼝和电脑通信。
Arduino把AtmegaX8的功能做了简化,以⽅便开发,并提供完整的IDE开发环境。
Arduino在国外⾮常⽕,主要⽤来做【互动多媒体】,因为从事【互动多媒体】多半是⽂科⽣,所以功能尽可能的简化。
⼯程师级别的对Arduino不感冒,认为Arduino侮辱了他们的智商。
实际上Arduino对最⼤的强项是提供了丰富的库资源,⼏乎任何外设,是要在google上敲⼊关键字 + Arduino,就可以得到你想要的。
例如:google输⼊:PCF8574 ArduinoArduino是⼀块简单、⽅便使⽤的通⽤GPIO接⼝板,并可以通过USB接⼝和电脑通信。
作为⼀块通⽤IO接⼝板,Arduino提供丰富的资源,包括:13个数字IO⼝(DIO数字输⼊输出⼝);6个PWM输出(AOUT可做模拟输出⼝使⽤);5个模拟输⼊⼝(AIN模拟输⼊)。
Arduino开发使⽤java开发的编程环境,使⽤类c语⾔编程,并提供丰富的库函数。
Arduino可以和下列软件结合创作丰富多彩的互动作品:Flash,Processing,Max/MSP,VVVV…等。
Arduino也可以⽤独⽴的⽅式运作,开发电⼦互动作品,例如:开关控制Switch、传感器sensors输⼊、LED等显⽰器件、各种马达或其它输出装置。
Arduino特⾊1. Arduino的IDE是免费、开源的。
2. Arduino的硬件也是开源的,包括原理图和PCB图。
3. Arduino的所有资源都可以免费下载,并且可依需求⾃⼰修改!4. Arduino的附件只需1根USB线,编程、烧写⼀键搞定。
5. Arduino使⽤低价格、容易购买的微处理控制器ATMEGA168。
6. ⽀持多种互动软件:Flash,Max/Msp,VVVV,PD,Processing等。
ARDUINO入门及其简单实验(7例) (2)1. Arduino硬件开发平台简介 (2)1.1 Arduino的主要特色 (3)1.2 Arduino的硬件接口功能描述 (3)1.3 Arduino的技术性能参数 (4)1.4 电路原理图 (4)2. Arduino软件开发平台简介 (5)2.1 菜单栏 (6)2.2 工具栏 (6)2.3 Arduino 语言简介 (7)3. Arduino开发实例中所用部分器件 (9)1. LED简介 (9)2. 光敏电阻简介 (10)3. 直流电机简介 (10)4. 电位器简介 (10)4. Arduino平台应用开发实例 (11)4.1【实作项目一】利用LED作光敏电阻采样实验 (11)4.2【实作项目二】利用PWM信号控制LED亮度 (13)4.3【实作项目三】单键控制一只LED的亮灭 (15)4.4【实作项目四】利用PWM控制直流电机转速 (17)4.5【实作项目五】利用电位器手控LED亮度 (20)4.6【实作项目六】控制LED明暗交替 (22)4.7【实作项目七】利用光敏电阻控制LED的亮灭 (24)ARDUINO入门及其简单实验(7例)1. Arduino硬件开发平台简介Arduino硬件是一块带有USB的I/O接口板(其中包括13条数字I/O引脚,6通道模拟输出,6通道模拟输入),并且具有类似于Java、C语言的集成开发环境。
Arduino既可以扩展一些外接的电子元器件,例如开关、传感器、LED、直流马达、步进马达或其他输入、输出装置;Arduino也可以独立运行,成为一个可以跟交互软件沟通的接口装置,例如:Flash、Processing、Max/MSP、VVVV或其他互动软件。
Arduino开发环境IDE全部开放源代码,可以供大家免费下载、利用,还可以开发出更多激发人们制作欲望的互动作品。
如图1和图2所示,分别为Arduino硬件平台的实物图和电路布局图。
第三十三课Arduino 鼠标按钮控制
使用鼠标库,你可以使用Arduino Leonardo,Micro或Due来控制计算机的屏幕光标。
这个特殊的例子使用五个按钮来移动屏幕上的光标。
四个按钮是方向性的(上,下,左,右),一个是用于鼠标左键单击。
来自Arduino的光标移动总是相对的。
每次读取输入时,光标的位置都会相对于当前位置进行更新。
只要有一个方向按钮被按下,Arduino就会移动鼠标,在合适的方向上将HIGH输入映射到5的范围。
第五个按钮用于控制来自鼠标的左键单击。
当按钮被释放时,计算机将识别事件。
必需的组件
你将需要以下组件:
∙ 1 × Breadboard 面包板
∙ 1 × Arduino Leonardo, Micro 或Due板
∙ 5 × 10k欧姆电阻
∙ 5 ×瞬时按钮
程序
按照电路图连接面包板上的组件,如下图所示。
草图
在计算机上打开Arduino IDE软件。
使用Arduino语言进行编码控制你的电路。
通过单击“New”打开一个新的草图文件。
对于本例,你需要使用Arduino IDE 1.6.7
Arduino代码
代码说明
使用micro-USB线将电路板连接到计算机。
按钮连接到引脚2至6的数字输入。
确保使用10k下拉电阻。
Arduino 入门到精通例程66按键控制LED实验I/O 口的意思即为INPUT 接口和OUTPUT 接口,到目前为止我们设计的小灯实验都还只是应用到Arduino 的I/O 口的输出功能,这个实验我们来尝试一下使用Arduino的I/O 口的输入功能即为读取外接设备的输出值,我们用一个按键和一个LED 小灯完成一个输入输出结合使用的实验,让大家能简单了解I/O 的作用。
按键开关大家都应该比较了解,属于开关量(数字量)元件,按下时为闭合(导通)状态。
完成本实验要用到的元件如下:按键开关*1红色M5 直插LED*1220Ω电阻*110KΩ电阻*1面包板*1面包板跳线*1 扎我们将按键接到数字7 接口,红色小灯接到数字11 接口(Arduino 控制器0-13 数字I/O 接口都可以用来接按键和小灯,但是尽量不选择0 和1 接口,0 和1 接口为接口功能复用,除I/O 口功能外也是串口通信接口,下载程序时属于与PC 机通信故应保持0 和1 接口悬空,所以为避免插拔线的麻烦尽量不选用0 和1 接口),按下面的原理图连接好电路。
下面开始编写程序,我们就让按键按下时小灯亮起,根据前面的学习相信这个程序很容易就能编写出来,相对于前面几个实验这个实验的程序中多加了一条条件判断语句,这里我们使用if 语句,Arduino 的程序便写语句是基于C 语言的,所以C 的条件判断语句自然也适用于Arduino,像while、swich 等等。
这里根据个人喜好我们习惯于使用简单易于理解的if 语句给大家做演示例程。
我们分析电路可知当按键按下时,数字7 接口可读出为高电平,这时我们使数字11 口输出高电平可使小灯亮起,程序中我们判断数字7 口是否为低电平,要为低电平使数字11 口输出也为低电平小灯不亮,原理同上。
参考源程序:int ledpin=11;//定义数字11 接口int inpin=7;//定义数字7 接口int val;//定义变量valvoid setup(){pinMode(ledpin,OUTPUT);//定义小灯接口为输出接口pinMode(inpin,INPUT);//定义按键接口为输入接口}void loop(){val=digitalRead(inpin);//读取数字7 口电平值赋给valif(val==LOW)//检测按键是否按下,按键按下时小灯亮起{ digitalWrite(ledpin,LOW);}else{ digitalWrite(ledpin,HIGH);}}下载完程序我们本次的小灯配合按键的实验就完成了,本实验的原理很简单,广泛被用于各种电路和电器中,实际生活中大家也不难在各种设备上发现,例如大家的手机当按下任一按键时背光灯就会亮起,这就是典型应用了,下面一个实验就是一个最简单的生活中应用实例------抢答器。
Arduino编程基础入门第一章:什么是Arduino?Arduino是一种开源电子平台,它由一个硬件部分和一个软件部分组成。
Arduino硬件包括一个可以编程的微控制器,用于控制各种电子元件的操作。
Arduino软件则是用于编写和上传程序到Arduino硬件的集成开发环境(IDE)。
第二章:Arduino的组成部分Arduino板上有一个微控制器,这是Arduino的核心部分。
该微控制器可以通过Arduino IDE进行编程,并通过与电脑的连接来上传程序。
Arduino板上还有一些输入和输出引脚,可以连接各种传感器和执行器。
此外,Arduino板还包括一个供电接口和一个USB 接口。
第三章:Arduino的编程语言Arduino使用一种基于C++的编程语言,它简单易学,适合初学者。
与其他编程语言相比,Arduino的编程语言具有一些专门为微控制器开发设计的特性,如控制引脚、延时函数等。
通过编写程序,可以实现与各种外部设备的交互。
第四章:Arduino的开发环境Arduino开发环境(IDE)是一个用于编写、上传和调试Arduino程序的软件工具。
它提供了一个简单直观的界面,使得编程变得容易上手。
通过IDE,用户可以创建新的程序、编辑现有的程序,并将程序上传到Arduino板上。
IDE还提供了错误检查、调试功能等。
第五章:Arduino的基本语法Arduino的基本语法与C++类似,包括函数、变量、运算符等。
在编写Arduino程序时,需要了解一些基本的语法规则,如注释、变量声明、控制结构等。
掌握这些基本语法是学习Arduino编程的重要一步。
第六章:Arduino的输入与输出Arduino的输入输出是其最基本的功能之一。
通过连接各种传感器和执行器,可以实现与外部环境的交互。
例如,可以通过连接一个温度传感器来读取环境温度,并通过连接一个LED灯来控制其亮灭。
学习如何使用不同的输入输出引脚是使用Arduino的关键。
Arduino教程Arduino LWZ 教程V1.0目录一、Arduino编程语言 (4)1、数据类型: (4)2、常量: (4)3、基本语句: (4)(1)if语句 (4)(2)if...else...语句 (5)(3)for语句 (5)(4)break和continue (6)(5)switch case语句 (6)(6)while语句和do...while语句 (7)(7)return语句 (8)(8)运算符 (8)(9)函数 (8)4、结构函数: (8)5、功能函数: (9)(1)数字I/O函数 (9)(2)模拟I/O函数 (9)(3)时间函数 (9)(4)数学函数 (10)(5)数据类型转换函数 (10)(6)三角函数 (10)(7)随机数函数 (10)(8)外部中断函数 (11)(9)中断使能函数 (11)(10)串口收发函数 (11)6、官方库文件: (11)二、Sabertooth电机驱动模块应用实例 (13)1、工作模式 (13)(1)Mode1: Analog Input (13)(2)Mode2:R/C Input (14)(3)Mode3:Simplified serial (14)(4)Mode4:Packetized serial (15)2、应用实例 (17)(1)硬件连接 (17)(2)小车停止函数 (18)(3)小车前进函数 (19)(4)小车后退函数 (19)(5)小车右转函数 (20)(6)小车左转函数 (21)(7)电子积木编程思路 (22)(8)PC软件的编程思路 (25)(1)硬件连接 (25)(2)电子积木运动和初始化函数 (25)(3)电子积木编程思路 (26)4、通过无线模块控制小车 (28)(1)无线通信模块 (28)(2)硬件连接 (28)(3)电子积木编程思路 (28)5、下载程序串口COM和无线数模串口COM2同时控制小车 (30)(1)硬件连接 (31)(2)电子积木编程思路 (31)三、TN901_TEST非接触测温模块应用实例 (34)1、TN901工作原理 (34)2、应用实例 (36)(1)硬件连接 (36)(2)读取温度函数 (36)(3)初始化函数 (38)(4)电子积木编程思路 (38)3、多个TN模块的应用实例 (39)(1)硬件连接 (39)(2)初始化函数 (39)(3)电子积木编程思想:共享函数 (40)(4)电子积木编程思路:独立函数 (42)四、气体传感器模块应用实例 (46)1、应用实例 (46)(1)硬件连接 (46)(2)电子积木编程思路 (46)2、多个气体传感器的应用实例 (47)(1)硬件连接 (47)(2)电子积木编程思路 (47)五、火焰传感器模块应用实例 (48)1、应用实例 (48)(1)硬件连接 (48)(2)电子积木编程思路 (49)2、多个火焰传感器的应用实例 (49)(1)硬件连接 (49)(2)电子积木编程思路 (50)六、DF-miniLTV3寻线模块应用实例 (50)1、DF-miniLTV3寻线工作原理 (50)2、DF-miniLTV3寻线在单黑线的应用实例 (51)(1)硬件连接 (52)(2)Sabertooth模块函数 (52)(3)初始化函数 (52)(4)电子积木编程思路 (52)(1)硬件连接 (54)(2)电子积木编程思路 (54)(2)PC软件的编程思路 (56)七、舵机模块应用实例 (56)1、舵机工作原理 (56)2、应用实例 (57)(1)硬件连接 (57)(2)电子积木编程思路 (57)3、非库形式的应用实例 (59)(1)硬件连接 (59)(2)双舵机驱动函数 (59)八、综合实例 (63)1、驱动2台舵机和电机的应用实例 (63)(1)硬件连接 (63)(2)电子积木编程思路 (64)2、测3个测温度、驱动电机的应用实例 (64)(1)硬件连接 (64)(2)电子积木编程思路 (64)3、测3个测温度、驱动2台舵机和电机的应用实例 (65)(1)硬件连接 (65)(2)电子积木编程思路 (65)4、测2个气体、2个火焰、3个测温度、驱动2台舵机和电机的应用实例 (65)(1)硬件连接 (65)(2)电子积木编程思路 (65)5、寻线、测2个气体、2个火焰、3个测温度、驱动2台舵机和电机的应用实例 (66)(1)硬件连接 (66)(2)电子积木编程思路 (66)一、Arduino编程语言Arduino语言是建立在C/C++基础上的。
Arduino开发板入门教程第一章:Arduino简介Arduino是一款开源硬件平台,广泛应用于物联网、机器人和自动化领域。
它由一个简单易用的硬件开发板和一个基于Java的集成开发环境(IDE)组成。
本章将介绍Arduino的基本知识和原理。
1.1 Arduino开发板的组成Arduino开发板包含一个微控制器、一组输入输出引脚和一些其他的电子元件。
常用的Arduino型号有Arduino Uno、Arduino Nano和Arduino Mega等。
1.2 Arduino的特点和应用Arduino具有开源、低成本、易使用和可扩展的特点,使其成为广大电子爱好者和创客的首选。
它可以用于建造简单的电子装置、控制传感器、驱动电机以及与计算机进行通信等。
第二章:Arduino的基本用法本章将详细介绍Arduino的基本用法,包括设置Arduino开发环境、编写代码、上传程序以及与外部电路的连接。
2.1 Arduino开发环境的安装与设置首先,需要从Arduino官方网站上下载并安装Arduino集成开发环境(IDE)。
安装完成后,用户需要选择合适的开发板和端口。
2.2 Arduino编程基础Arduino使用一种类似C语言的编程语言。
本节将介绍Arduino编程的基本结构、语法和常用函数。
同时,还将介绍数字输入/输出、模拟输入/输出和串口通信等常用功能。
2.3 Arduino程序的上传编写好的Arduino程序需要通过USB接口将代码上传到开发板上。
本节将介绍如何将程序上传到Arduino开发板,并进行调试和测试。
2.4 Arduino与外部电路的连接Arduino开发板上有多个数字引脚和模拟引脚,可以与外部电路进行连接。
本节将介绍如何使用面包板和杜邦线将Arduino与LED、电位器、温度传感器等外部元件进行连接,并通过编写程序进行控制和读取。
第三章:Arduino的高级用法在本章中,将介绍一些Arduino的高级应用,包括使用库函数、扩展Arduino功能以及与其他设备的通信等。
数字输出Arduino教程一:11 Comments ?Arduino教程,。
除了管脚的数字Arduino7到管脚2I/O个可用的6I/O被分成两个部分,其中每个部分都包含有管脚,即管脚到管脚8和管脚13I/O1K上接了一个13来对位的数字跑马灯,6上。
ATmega其他各个管脚都直接连接到的电阻之外,我们可以利用一个Arduino数字的输出功能进行验证,以下是相应的原理图:电阻被称为限流电阻,I/O电路中在每个管脚上加的那个1K使用限流电阻可由于发光二极管在电路中没有等效电阻值,以使元件上通过的电流不至于过大,能够起到保护的作用。
该工程对应的代码为:int BASE = 2;int NUM = 6;int index = 0;void setup(){++) BASE; = i (int for i + BASE < i NUM;{pinMode(i, OUTPUT);}}void loop(){for (int i = BASE; i < BASE + NUM; i ++) {digitalWrite(i, LOW);}digitalWrite(BASE + index, HIGH);index = (index + 1) % NUM;delay(100);}2管脚I/O数字Arduino下载并运行该工程,连接在上的发光二极管会依次点亮7到管脚0.1秒,然后再熄灭:1 / 28这个实验可以用来验证数字I/O输出的正确性。
Arduino上一共有十二个数字I/O管脚,我们可以用同样的办法验证其他六个管脚的正确性,而这只需要对上述工程的第一行做相应的修改就可以了:int BASE = 8;01SEPArduino教程二: 数字输入3 Comments ?Arduino, 教程在数字电路中开关(switch)是一种基本的输入形式,它的作用是保持电路的连接或者断开。
Arduino从数字I/O管脚上只能读出高电平(5V)或者低电平(0V),因此我们首先面临到的一个问题就是如何将开关的开/断状态转变成Arduino 能够读取的高/低电平。
Arduino 入门到精通例程 6
6按键控制LED实验
I/O 口的意思即为INPUT接口和OUTPUT接口,到目前为止我们设计的小灯
实验都还只是应用到Arduino的I/O 口的输出功能,这个实验我们来尝试一下使用Arduino的I/O 口的输入功能即为读取外接设备的输出值,我们用一个按键和一个LED小灯完成一个输入输出结合使用的实验,让大家能简单了解I/O的作用。
按键开关大家都应该比较了解,属于开关量(数字量)元件,按下时为闭合(导通)状态。
完成本实验要
用到的元件如下:
按键开关*1
红色M5 直插LED*1
220 Q电阻*1
10K Q电阻*1
面包板*1
面包板跳线*1 扎
我们将按键接到数字7接口,红色小灯接到数字11接口(Arduino控制器0-13数字I/O接口都可以用来接按键和小灯,但是尽量不选择0和1接口,0和1接口为接口功能复用,除I/O 口功能外也是串口通信接口,下载程序时属于与PC 机通信故应保持0和1接口悬空,所以为避免插拔线的麻烦尽量不选用0和1 接口),按下面的原理图连接好电路。
下面开始编写程序,我们就让按键按下时小灯亮起,根据前面的学习相信这个程序很容易就能编写出来,相对于前面几个实验这个实验的程序中多加了一条条件判断语句,这里我们使用if 语句,Arduino的程序便写语句是基于C语言的,所以C的条件判断语句自然也适用于Arduino,像while、swich等等。
这里根据个人喜好我们习惯于使用简单易于理解的if 语句给大家做演示例程。
我们分析电路可知当按键按下时,数字7 接口可读出为高电平,这时我们使数字11 口输出高电平可使小灯亮起,程序中我们判断数字7 口是否为低电平,要为低电平使数字11 口输出也为低电平小灯不亮,原理同上。
参考源程序:
int ledpin=11;// 定义数字11 接口
int inpin=7;// 定义数字7 接口
int val;// 定义变量val
void setup(){pi nM ode(ledpi n,0 UTPUT);// 定义小灯接口为输出接口
pinMode(inpin,INPUT);〃定义按键接口为输入接口}void loop(){val=digitalRead(inpin);〃读取数字7 口电平值赋给val
if(val==LOW)〃检测按键是否按下,按键按下时小灯亮起
{ digitalWrite(ledpin,LOW);}
else
{ digitalWrite(ledp in ,HIGH);}}下载完程序我们本次的小灯配合按键的实验就完
成了,本实验的原理很简单,广泛被用于各种电路和电器中,实际生活中大家也不难在各种设备上发现,例如大家的手机当按下任一按键时背光灯就会亮起,这就是典型应用了,下面一个实验就是一个最简单的生活中应用实例---------------
抢答器。