“SKU:RB-02S159 模拟键盘模块”的版本间的差异
来自ALSROBOT WiKi
(→相关资料) |
(→example1_Arduino) |
||
| 第17行: | 第17行: | ||
* 硬件连接 | * 硬件连接 | ||
| + | [[文件:02S15901.png|500px|缩略图|居中]] | ||
* 示例程序 | * 示例程序 | ||
| + | <pre style='color:blue'> | ||
| + | int adc_key_val[5] ={400,470,560,700,900 }; | ||
| + | int NUM_KEYS = 5; | ||
| + | int adc_key_in; | ||
| + | int key=-1; | ||
| + | int oldkey=-1; | ||
| + | void setup() | ||
| + | { | ||
| + | pinMode(13, OUTPUT); //we'll use the debug LED to output a heartbeat | ||
| + | Serial.begin(9600); // 9600 bps | ||
| + | } | ||
| + | void loop() | ||
| + | { | ||
| + | adc_key_in = analogRead(0); // read the value from the sensor | ||
| + | digitalWrite(13,LOW); | ||
| + | key = get_key(adc_key_in); // convert into key press | ||
| + | //Serial.println(adc_key_in); | ||
| + | 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){ | ||
| + | digitalWrite(13,HIGH); | ||
| + | switch(key) | ||
| + | { | ||
| + | case 0:Serial.println("S1 OK"); | ||
| + | break; | ||
| + | case 1:Serial.println("S2 OK"); | ||
| + | break; | ||
| + | case 2:Serial.println("S3 OK"); | ||
| + | break; | ||
| + | case 3:Serial.println("S4 OK"); | ||
| + | break; | ||
| + | case 4:Serial.println("S5 OK"); | ||
| + | break; | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | delay(100); | ||
| + | } | ||
| + | // 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; | ||
| + | } | ||
| + | </pre> | ||
* 程序效果 | * 程序效果 | ||
| + | [[文件:02S15902.png|500px|缩略图|居中]] | ||
===example2_Arduino=== | ===example2_Arduino=== | ||
2018年9月12日 (三) 16:00的版本
目录 |
产品概述
产品参数
基本参数
电气性能
使用方法
example1_Arduino
- 主要硬件
- Arduino UNO 控制器
- 传感器扩展板 V5.0
- 模拟按键模块
- 单头防插反 3P 传感器连接线
- USB 数据线
- 硬件连接
- 示例程序
int adc_key_val[5] ={400,470,560,700,900 };
int NUM_KEYS = 5;
int adc_key_in;
int key=-1;
int oldkey=-1;
void setup()
{
pinMode(13, OUTPUT); //we'll use the debug LED to output a heartbeat
Serial.begin(9600); // 9600 bps
}
void loop()
{
adc_key_in = analogRead(0); // read the value from the sensor
digitalWrite(13,LOW);
key = get_key(adc_key_in); // convert into key press
//Serial.println(adc_key_in);
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){
digitalWrite(13,HIGH);
switch(key)
{
case 0:Serial.println("S1 OK");
break;
case 1:Serial.println("S2 OK");
break;
case 2:Serial.println("S3 OK");
break;
case 3:Serial.println("S4 OK");
break;
case 4:Serial.println("S5 OK");
break;
}
}
}
}
delay(100);
}
// 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;
}
- 程序效果
example2_Arduino
- 主要硬件
- Arduino UNO 控制器
- 传感器扩展板 V5.0
- 模拟按键模块
- 单头防插反 3P 传感器连接线
- USB 数据线
- 4WD 移动平台
- APC220 无线数传模块
- MotorDriver Shield 电机驱动板
- 硬件连接
4WD 小车端接线
模拟按键控制端接线
- 示例程序
接收端
发射端
- 程序效果
- S3 -- 前进
- S2 -- 后退
- S4 -- 左转
- S1 -- 右转
- S5 -- 停止
相关资料
- 模拟按键示例程序下载

