Key.readVal()

来自Microduino Wikipedia
跳转至: 导航搜索

用来检测数字开关、模拟开关、虚拟开关【释放】【按下】动作及状态。

数字开关:Key. readVal()

描述

识别数字传感器的【释放】【按下】动作及状态。数字开关必须结合DigitalKey()结构体来使用。

参数

返回值

uint8_t类型。

  • 释放状态:KEY_RELEASED
  • 按下状态:KEY_PRESSED
  • 释放动作:KEY_RELEASING
  • 按下动作:KEY_PRESSING



模拟开关:Key. readVal(MIN,MAX)

描述

识别模拟传感器对应区间的【释放】【按下】动作及状态。模拟开关必须结合AnalogKey()结构体来使用。

参数

  • MIN:模拟区间最小值;
  • MAX:模拟区间最大值;

返回值

uint8_t类型。

  • 释放状态:KEY_RELEASED
  • 按下状态:KEY_PRESSED
  • 释放动作:KEY_RELEASING
  • 按下动作:KEY_PRESSING



虚拟开关:Key. readVal(bool)

描述

识别虚拟开关对应状态的【释放】【按下】动作及状态。虚拟开关必须结合VirtualKey()结构体来使用。

参数

  • bool:虚拟开关的真假值;

返回值

uint8_t类型。

  • 释放状态:KEY_RELEASED
  • 按下状态:KEY_PRESSED
  • 释放动作:KEY_RELEASING
  • 按下动作:KEY_PRESSING



示例

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

AnalogKey keyAnalog(A0);

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

void loop() {
  switch (keyAnalog.readVal(0, 50)) {  //(模拟最小值,模拟最大值)
    case KEY_RELEASED:
      Serial.println("KEY (analog)  RELEASED---1");     //按键释放状态
      break;
    case KEY_PRESSED:
      Serial.println("KEY (analog)  PRESSED-------2");    //按键按下状态
      break;
    case KEY_PRESSING:
      Serial.println("KEY (analog)  PRESSING--------3");    //按键按下动作
      break;
    case KEY_RELEASING:
      Serial.println("KEY (analog)  RELEASING---------4");    //按键释放动作
      break;
  }

  delay(100);
}


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

DigitalKey keyDigital(A0);

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

void loop() {
  switch (keyDigital.readVal()) {
    case KEY_RELEASED:
      Serial.println("KEY (digital) RELEASED---1");   //按键释放状态
      break;
    case KEY_PRESSED:
      Serial.println("KEY (digital) PRESSED-------2");    //按键按下状态
      break;
    case KEY_PRESSING:
      Serial.println("KEY (digital) PRESSING--------3");  //按键按下动作
      break;
    case KEY_RELEASING:
      Serial.println("KEY (digital) RELEASING---------4");    //按键释放动作
      break;
  }

  delay(100);
}


  • 识别虚拟开关对应状态的【长按】【短按】动作
#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.readVal(val)) {
    case KEY_RELEASED:
      Serial.println("KEY (digital) RELEASED---1");   //按键释放状态
      break;
    case KEY_PRESSED:
      Serial.println("KEY (digital) PRESSED-------2");    //按键按下状态
      break;
    case KEY_PRESSING:
      Serial.println("KEY (digital) PRESSING--------3");  //按键按下动作
      break;
    case KEY_RELEASING:
      Serial.println("KEY (digital) RELEASING---------4");    //按键释放动作
      break;
  }

  delay(100);
}

其他



返回Sensor_Key_Reference界面