文档章节

Arduino抢答器

o
 osc_z1hvg4cu
发布于 2018/04/24 17:38
字数 692
阅读 5
收藏 0

精选30+云产品,助力企业轻松上云!>>>

0.部分需要掌握的知识点和注意事项

(1)面包板的结构

(2)按键的结构:按键按下时,左右两侧连通;按键松开后,左右两侧断开,但1号与2号相连,3号与4号相连,即按键松开时,同侧不相连,相连不同侧。

注:在将按键插入面包板的时候,需要用力,以免按键不能正常接入电路。

(3)函数

①pinMode():

功能:指定特定端口是作为输入还是输出;

形式:pinMode(pin,mode)

参数:pin:想要设定的端口号;mode:模式,有INPUT,OUTPUT和INPUT_PULLUP三种模式。(INPUT_PULLUP参数设定内置的上拉电阻是否被使能)。

返回值:none;

②digitalWrite():

功能:控制引脚输出高低电平;如果引脚被pinMode()设为OUTPUT,5V (或者 3.3V 在使用 3.3V的板子上) 就是HIGH, 0V (ground) 就是 LOW。如果引脚被设为INPUT,digitalWrite()将对输入引脚的上拉电阻使能HIGH(或者禁止LOW)。建议digitalwrite和digitalread使用之前都要用piMode指定输出输入,否则引脚上拉电阻会像限流电阻一样(此时应该是高阻态)。

形式:digitalWrite(pin,value)

参数:pin:要操作的引脚;value:有HIGH和LOW两个取值。

③digitalRead():

功能:读取引脚电平状态;

形式:digitalRead(pin)

参数:pin:要读取的引脚

返回值:HIGH或者LOW;

1.原理图:

2.实物图(注意有些面包板的上下部分的中间会有一段断开的部分,如下图红框所示)

3.代码:

 1 int redled = 8; //红色LED 输出
 2 int yellowled = 7; //黄色LED输出
 3 int greenled = 6; //绿色LED输出
 4 int redpin = 5; //红色按键引脚
 5 int yellowpin = 4; //黄色按键引脚
 6 int greenpin = 3; //绿色按键引脚
 7 int restpin = 2; //复位按键引脚定义
 8 int red;
 9 int yellow;
10 int green;
11 void setup() {
12     pinMode(redled, OUTPUT);
13     pinMode(yellowled, OUTPUT);
14     pinMode(greenled, OUTPUT);
15     pinMode(redpin, INPUT);
16     pinMode(yellowpin, INPUT);
17     pinMode(greenpin, INPUT);
18 }
19 void loop() //按键循环扫描。
20 {
21     red = digitalRead(redpin);
22     yellow = digitalRead(yellowpin);
23     green = digitalRead(greenpin);
24     if (red == LOW) RED_YES();
25     if (yellow == LOW) YELLOW_YES();
26     if (green == LOW) GREEN_YES();
27 }
28 
29 void RED_YES() //一直执行红灯亮,直到复位键按下,结束循环
30 {
31     while (digitalRead(restpin) == 1) {
32         digitalWrite(redled, HIGH);
33         digitalWrite(greenled, LOW);
34         digitalWrite(yellowled, LOW);
35     }
36     clear_led();
37 }
38 void YELLOW_YES() //一直执行黄灯亮,直到复位键按下,结束循环
39 {
40     while (digitalRead(restpin) == 1) {
41         digitalWrite(redled, LOW);
42         digitalWrite(greenled, LOW);
43         digitalWrite(yellowled, HIGH);
44     }
45     clear_led();
46 }
47 void GREEN_YES() //一直执行绿灯亮,直到复位键按下,结束循环
48 {
49     while (digitalRead(restpin) == 1) {
50         digitalWrite(redled, LOW);
51         digitalWrite(greenled, HIGH);
52         digitalWrite(yellowled, LOW);
53     }
54     clear_led();
55 }
56 void clear_led() //清除LED
57 {
58     digitalWrite(redled, LOW);
59     digitalWrite(greenled, LOW);
60     digitalWrite(yellowled, LOW);
61 }

4.结果

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。

暂无文章

babe从入门到精通

前言 前面我们写了几篇很长的文章去介绍babel源码、preset-env、runtime, babel源码解析一 babel源码解析之(@babel/preset-env) babel源码解析之(@babel/plugin-transform-runtime) 在b...

osc_tc7vil4d
36分钟前
9
0
grpc+gin+proto,使用http调用rpc接口

接下来重点讲如何创建并通过http 使用rpc接口 。 proto代码 syntax = "proto3";package proto.web.web.proto;option go_package = "pb;pb";// 进入message ComeIn {string name = 1;......

osc_bskubcvl
37分钟前
15
0
BSEC 块购链 开盘前三天注册实名就送两台矿机 实体公司可考察

2020年6月28日19点38分BSEC正式开盘! 块购链发行总量:8000万枚 免费挖 块购链是什么?块购链是一个基于区块链技术,致力于为淘宝、天猫、京东、唯品会等购物平台提供安全稳定的优惠券发放技...

osc_cseo1dn1
39分钟前
5
0
leetcode面试题 17.10(主要元素)--Java语言实现

求: 数组中占比超过一半的元素称之为主要元素。给定一个整数数组,找到它的主要元素。若没有,返回-1。 示例 1: 输入:[1,2,5,9,5,9,5,5,5] 输出:5 示例 2: 输入:[3,2] 输出:-1 示例 ...

拓拔北海
39分钟前
27
0
Go 方法的基本概念及使用

方法 基本介绍 在某些情况下,我们要需要声明(定义)方法。比如 Person 结构体:除了有一些字段外( 年龄,姓名..),Person 结构体还有一些行为比如:可以说话、跑步..,通过学习,还可以做算术题。...

osc_7lh4ey2u
40分钟前
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部