“SKU:RB-02S159 模拟键盘模块”的版本间的差异
来自ALSROBOT WiKi
(→example1_Arduino) |
(→example2_Arduino) |
||
第89行: | 第89行: | ||
:单头防插反 3P 传感器连接线 | :单头防插反 3P 传感器连接线 | ||
:USB 数据线 | :USB 数据线 | ||
− | : | + | :全彩 LED 发光模块 |
− | + | ||
− | + | ||
* 硬件连接 | * 硬件连接 | ||
− | + | [[文件:02S15903.png|700px|缩略图|居中]] | |
− | + | * 示例程序 | |
+ | <pre style='color:blue'> | ||
+ | #include <MeRGBLed.h> | ||
+ | MeRGBLed led(PORT_3); | ||
+ | |||
+ | int adc_key_val[5] ={400,470,560,700,900 }; | ||
+ | int NUM_KEYS = 5; | ||
+ | int adc_key_in; | ||
+ | int key=-1; | ||
+ | int oldkey=-1; | ||
+ | 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; | ||
+ | } | ||
+ | |||
+ | |||
+ | void color_r() | ||
+ | { | ||
+ | led.setColor(255, 0, 0); | ||
+ | led.show(); | ||
+ | } | ||
+ | |||
+ | void color_g() | ||
+ | { | ||
+ | led.setColor(0, 255, 0); | ||
+ | led.show(); | ||
+ | } | ||
+ | |||
+ | void color_b() | ||
+ | { | ||
+ | led.setColor(0, 0, 255); | ||
+ | led.show(); | ||
+ | } | ||
+ | |||
+ | void color_y() | ||
+ | { | ||
+ | led.setColor(255, 255, 0); | ||
+ | led.show(); | ||
+ | } | ||
+ | |||
+ | void color_w() | ||
+ | { | ||
+ | led.setColor(255, 250, 250); | ||
+ | led.show(); | ||
+ | } | ||
+ | |||
+ | 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 | ||
+ | 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) | ||
+ | { | ||
+ | if(key==0) | ||
+ | { | ||
+ | color_y(); | ||
+ | } | ||
+ | if(key==1) | ||
+ | { | ||
+ | color_b(); | ||
+ | } | ||
+ | if(key==2) | ||
+ | { | ||
+ | color_r(); | ||
+ | } | ||
+ | if(key==3) | ||
+ | { | ||
+ | color_g(); | ||
+ | } | ||
+ | if(key==4) | ||
+ | { | ||
+ | color_w(); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | delay(100); | ||
+ | } | ||
+ | |||
+ | </pre> | ||
+ | |||
+ | * 程序效果 | ||
+ | 按下相应按键,全彩LED会显示与按键帽相同的颜色。 | ||
+ | |||
+ | ===example3_Arduino=== | ||
+ | * 主要硬件 | ||
+ | :Arduino UNO 控制器 | ||
+ | :传感器扩展板 V5.0 | ||
+ | :模拟按键模块 | ||
+ | :单头防插反 3P 传感器连接线 | ||
+ | :USB 数据线 | ||
+ | :4WD 移动平台 | ||
+ | :APC220 无线数传模块 | ||
+ | :MotorDriver Shield 电机驱动板 | ||
* 示例程序 | * 示例程序 |
2018年9月12日 (三) 16:19的版本
目录 |
产品概述
产品参数
基本参数
电气性能
使用方法
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 数据线
- 全彩 LED 发光模块
- 硬件连接
- 示例程序
#include <MeRGBLed.h> MeRGBLed led(PORT_3); int adc_key_val[5] ={400,470,560,700,900 }; int NUM_KEYS = 5; int adc_key_in; int key=-1; int oldkey=-1; 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; } void color_r() { led.setColor(255, 0, 0); led.show(); } void color_g() { led.setColor(0, 255, 0); led.show(); } void color_b() { led.setColor(0, 0, 255); led.show(); } void color_y() { led.setColor(255, 255, 0); led.show(); } void color_w() { led.setColor(255, 250, 250); led.show(); } 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 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) { if(key==0) { color_y(); } if(key==1) { color_b(); } if(key==2) { color_r(); } if(key==3) { color_g(); } if(key==4) { color_w(); } } } } delay(100); }
- 程序效果
按下相应按键,全彩LED会显示与按键帽相同的颜色。
example3_Arduino
- 主要硬件
- Arduino UNO 控制器
- 传感器扩展板 V5.0
- 模拟按键模块
- 单头防插反 3P 传感器连接线
- USB 数据线
- 4WD 移动平台
- APC220 无线数传模块
- MotorDriver Shield 电机驱动板
- 示例程序
接收端
发射端
- 程序效果
- S3 -- 前进
- S2 -- 后退
- S4 -- 左转
- S1 -- 右转
- S5 -- 停止
相关资料
- 模拟按键示例程序下载