“开关短按与长按”的版本间的差异

来自Microduino Wikipedia
跳转至: 导航搜索
(创建页面,内容为“{| style="width: 800px;" |- | <p style="color: #4F4E4E;font-size:220%">'''Sensor_Key库-开关短按与长按示例'''</p> <br> 在下面的示例中,使用Core核...”)
 
 
(未显示同一用户的1个中间版本)
第103行: 第103行:
 
<br>
 
<br>
 
<p style="color: #E87E05;font-size:135%">相关案例</p>
 
<p style="color: #E87E05;font-size:135%">相关案例</p>
*[[Sensor_Key_Reference]]:数码管控制库。
+
*[[Sensor_Key_Reference]]:开关控制库。
 
*[[开关状态与动作]]:检测开关状态与动作。
 
*[[开关状态与动作]]:检测开关状态与动作。
 
|}
 
|}
 
<br>
 
<br>
 
<br>
 
<br>
<p style="font-size:115%">[[Sensor-Number|返回Sensor-Number界面]]</p>
+
<p style="font-size:115%">[[Sensor-Crash/zh|返回Sensor-Crash界面]]</p>

2017年7月19日 (三) 08:58的最新版本

Sensor_Key库-开关短按与长按示例


在下面的示例中,使用Core核心检测数字开关、模拟开关、虚拟开关【长按】【短按】动作。

所需硬件




电路搭建

将碰撞开关接到Hub的A0/A1引脚。
将Battery、Core、Hub堆叠在一起,通过MicroUSB数据线接入电脑。初次使用请参考:Getting Started



代码

  • 识别模拟传感器对应区间的【长按】【短按】动作
#include <Microduino_Key.h>

AnalogKey keyAnalog(A0);

void setup() {
  Serial.begin(9600);
  keyAnalog.begin(INPUT);
}

void loop() {
  switch (keyAnalog.readEvent(0, 50)) {   //(模拟最小值,模拟最大值)
    case SHORT_PRESS:
      Serial.println("KEY (analog) SHORT_PRESS");   //短按
      break;
    case LONG_PRESS:
      Serial.println("KEY (analog) LONG_PRESS");    //长按
      break;
  }

  delay(50);
}


  • 识别数字传感器对应区间的【长按】【短按】动作
#include <Microduino_Key.h>

DigitalKey keyDigital(A0);

void setup() {
  Serial.begin(9600);
  keyDigital.begin(INPUT_PULLUP);
}

void loop() {
  switch (keyDigital.readEvent()) {
    case SHORT_PRESS:
      Serial.println("KEY (digital) SHORT_PRESS");   //短按
      break;
    case LONG_PRESS:
      Serial.println("KEY (digital) LONG_PRESS");    //长按
      break;
  }

  delay(50);
}


  • 识别虚拟开关对应状态的【长按】【短按】动作
#include <Microduino_Key.h>

VirtualKey keyVirtual;

void setup() {
  Serial.begin(9600);
  keyVirtual.begin();
  pinMode(A0, INPUT_PULLUP);
}

void loop() {
  bool val = !digitalRead(A0);  //val 可以是任何bool变量
  switch (keyVirtual.readEvent(val,1500)) {
    case SHORT_PRESS:
      Serial.println("KEY (Virtual) SHORT_PRESS");   //短按
      break;
    case LONG_PRESS:
      Serial.println("KEY (Virtual) LONG_PRESS");    //长按
      break;
  }

  delay(50);
}


相关案例



返回Sensor-Crash界面