这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录前一修订版后一修订版 | 前一修订版 | ||
learing:examples:button [2017/04/07 10:03] – 外部编辑 127.0.0.1 | learing:examples:button [2023/06/07 04:23] (当前版本) – 外部编辑 127.0.0.1 | ||
---|---|---|---|
行 1: | 行 1: | ||
+ | ====== Button(按键) ====== | ||
+ | |||
+ | <WRAP left round info 65%> | ||
+ | 当你按下按键的时候会接通电路的两点。这个例子是当你按下按键的时候点亮连接在12号脚上的LED。 | ||
+ | </ | ||
+ | |||
+ | |||
+ | <WRAP left round box 100%> | ||
+ | ===== ALPHA MEGA328-U核心 ===== | ||
+ | ==== 硬件 ==== | ||
+ | * [[ocrobot: | ||
+ | * [[ocrobot: | ||
+ | * [[ocrobot: | ||
+ | * [[ocrobot: | ||
+ | ==== 搭建电路 ==== | ||
+ | |||
+ | - ALPHA MEGA328-U模块插入并行扩展版1号槽位。 | ||
+ | - ALPHA 11 LED模块插入1号槽位,堆叠于MEGA328-U上。 | ||
+ | - ALPHA 微动开关模块插入并行扩展板2号槽位。 | ||
+ | - USB线连接计算机与ALPHA MEGA328-U。 | ||
+ | |||
+ | ==== 代码 ==== | ||
+ | |||
+ | <code cpp> | ||
+ | /* | ||
+ | Button | ||
+ | | ||
+ | */ | ||
+ | const int buttonPin = 15; // | ||
+ | const int ledPin = 2; // LED脚 | ||
+ | |||
+ | |||
+ | // 变量: | ||
+ | int buttonState = 0; // 按键状态的变量 | ||
+ | |||
+ | void setup() { | ||
+ | // 初始化LED作为输出: | ||
+ | pinMode(ledPin, | ||
+ | // 初始化按键作为输入: | ||
+ | pinMode(buttonPin, | ||
+ | } | ||
+ | |||
+ | void loop(){ | ||
+ | // 读取按键值: | ||
+ | buttonState = digitalRead(buttonPin); | ||
+ | |||
+ | // 检查按键是否被按下. | ||
+ | //如果是 buttonState就为high: | ||
+ | if (buttonState == HIGH) { | ||
+ | // 点亮LED: | ||
+ | digitalWrite(ledPin, | ||
+ | } | ||
+ | else { | ||
+ | // 熄灭LED: | ||
+ | digitalWrite(ledPin, | ||
+ | } | ||
+ | }</ | ||
+ | |||
+ | </ | ||
+ | |||
+ | <WRAP left round box 100%> | ||
+ | ===== ALPHA 8F328D-U核心 ===== | ||
+ | ==== 硬件 ==== | ||
+ | |||
+ | ==== 搭建电路 ==== | ||
+ | |||
+ | ==== 代码 ==== | ||
+ | </ | ||
+ | |||
+ | <WRAP left round box 100%> | ||
+ | ===== MangoII ===== | ||
+ | |||
+ | ==== 硬件要求 ==== | ||
+ | |||
+ | * OCROBOT控制器 | ||
+ | * 按键或开关 | ||
+ | * 10K欧姆电阻 | ||
+ | * 面包板 | ||
+ | * 跳线 | ||
+ | |||
+ | 连接三根线到控制器,前两根红黑线,连接到面包板的长直端,提供5V电压和GND。第三根线连到数字口2到按键。同样的按键一端接下拉电阻(10K欧姆)到GND,按键另一个脚连接到5V。 | ||
+ | |||
+ | 当按键没按下去,也就是断开的时候,是连接到GND的,我们读取到LOW,当按下去,按键两个脚之间接通,进而连接到5V,控制器就读取到5V。 | ||
+ | |||
+ | 你也可以反着来,用上拉电阻保持输入端HIGH,按下后LOW。 | ||
+ | |||
+ | 如果你断开数字脚的连接,LED将会无规律闪烁,因为输入端是悬空着的,会随机返回HIGH或LOW,所以需要在电路里加了上拉电阻或者下拉电阻。 | ||
+ | |||
+ | ==== 代码 ==== | ||
+ | |||
+ | <code cpp> | ||
+ | /* | ||
+ | Button | ||
+ | | ||
+ | */ | ||
+ | const int buttonPin = 2; // | ||
+ | const int ledPin = 13; // LED脚 | ||
+ | |||
+ | |||
+ | // 变量: | ||
+ | int buttonState = 0; // 按键状态的变量 | ||
+ | |||
+ | void setup() { | ||
+ | // 初始化LED作为输出: | ||
+ | pinMode(ledPin, | ||
+ | // 初始化按键作为输入: | ||
+ | pinMode(buttonPin, | ||
+ | } | ||
+ | |||
+ | void loop(){ | ||
+ | // 读取按键值: | ||
+ | buttonState = digitalRead(buttonPin); | ||
+ | |||
+ | // 检查按键是否被按下. | ||
+ | //如果是 buttonState就为high: | ||
+ | if (buttonState == HIGH) { | ||
+ | // 点亮LED: | ||
+ | digitalWrite(ledPin, | ||
+ | } | ||
+ | else { | ||
+ | // 熄灭LED: | ||
+ | digitalWrite(ledPin, | ||
+ | } | ||
+ | }</ | ||
+ | </ | ||
+ | |||