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 入门到精通例程 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);}}下载完程序我们本次的小灯配合按键的实验就完
成了,本实验的原理很简单,广泛被用于各种电路和电器中,实际生活中大家也不难在各种设备上发现,例如大家的手机当按下任一按键时背光灯就会亮起,这就是典型应用了,下面一个实验就是一个最简单的生活中应用实例---------------
抢答器。