(SKU:ELB030639)AD Keyboard 模拟键盘模块
来自YwRobot Studio Wiki
产品参数
- 尺寸:69*34mm
- 电压:5V
- 颜色:五色键帽,红黄绿蓝白各一个
- 输出:模拟量电压
- 接口:Arduino 3P接口 S V G
- 平台:Arduino
产品特性
- 5个按键仅占用一个模拟量接口,节省资源
- 模拟量输出,按下不同的按键会有不同的电压值输出,可通过Arduino转换识别
- 采用欧姆龙按键,可以方便更换其它样式的键帽
- 兼容Arduino接口,可直接配合传感器扩展板使用
使用教程
样例代码
#define LEDR 9
#define LEDG 10
#define LEDB 11
int adc_key_val[5] = {30, 150, 360, 535, 760 };
int NUM_KEYS = 5;
int adc_key_in;
int key = -1;
int oldkey = -1;
void setup()
{
pinMode(LEDG, OUTPUT);
pinMode(LEDB, OUTPUT);
pinMode(LEDR, OUTPUT);
}
void loop() {
adc_key_in = analogRead(0); // read the value from the sensor
key = get_key(adc_key_in); // convert into key press
if (key != oldkey) { // if keypress is detected
delay(50); // wait for debounce time
adc_key_in = analogRead(0); // read the value from the sensor
key = get_key(adc_key_in); // convert into key press
if (key != oldkey) {
oldkey = key;
if (key >= 0) {
analogWrite(LEDR, 0); analogWrite(LEDG, 0); analogWrite(LEDB, 0);
switch (key)
{
case 0: {
analogWrite(LEDR, 100);analogWrite(LEDG, 100);
}
break;
case 1: {
analogWrite(LEDR, 100);
}
break;
case 2: {
analogWrite(LEDB, 100);
}
break;
case 3: {
analogWrite(LEDG, 100);
}
break;
case 4: {
analogWrite(LEDR, 100); analogWrite(LEDG, 100);analogWrite(LEDB, 100);
}
break;
}
}
}
}
delay(10);
}
// Convert ADC value to key number
int get_key(unsigned int input) {
int k;
for (k = 0; k < NUM_KEYS; k++) {
if (input < adc_key_val[k]) {
return k;
}
}
if (k >= NUM_KEYS)k = -1; // No valid key pressed
return k;
}
更多
[YWRobot产品资料下载]
购买 YWRobot商城购买链接 AD Keyboard 模拟键盘模块
YWRobot商城购买链接AD Keyboard5位按键模拟键盘模块