查看SKU:RB-02S159 模拟键盘模块的源代码
←
SKU:RB-02S159 模拟键盘模块
跳转至:
导航
、
搜索
因为以下原因,你没有权限编辑本页:
您刚才请求的操作只有这个用户组中的用户才能使用:
用户
您可以查看并复制此页面的源代码:
[[文件:02S15900.png|500px|缩略图|右]] ==产品概述== 奥松机器人新推出的模拟键盘模块,我们在设计按键输入电路时,采用独立IO连接按键或者矩阵连接的方式,矩阵连接相对于独立连接的方式来说占用IO相对较少,但有没有一种更好的方式呢,模拟键盘模块就很好的解决了这个问题,它能让你用一个模拟IO口,实现五个按键状态的读取,真正实现了电路的简化,并且在按下按键时,按键旁的LED会随之亮起。 ==产品参数== ===基本参数=== ===电气性能=== ==使用方法== ===example1_Arduino=== * 主要硬件 :Arduino UNO 控制器 :传感器扩展板 V5.0 :模拟按键模块 :单头防插反 3P 传感器连接线 :USB 数据线 * 硬件连接 [[文件:02S15901.png|700px|缩略图|居中]] * 示例程序 <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=== * 主要硬件 :Arduino UNO 控制器 :传感器扩展板 V5.0 :模拟按键模块 :单头防插反 3P 传感器连接线 :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 电机驱动板 * 示例程序 接收端<br/> 发射端<br/> * 程序效果 :S3 -- 前进 :S2 -- 后退 :S4 -- 左转 :S1 -- 右转 :S5 -- 停止 ==相关资料== [[文件:erweima.png|230px|无框|右]] * 模拟按键示例程序下载 链接:https://pan.baidu.com/s/1QReHaInd2T2wP7-yzmiSwQ 密码:g914<br/> * 产品购买链接:http://www.alsrobot.cn/goods-873.html
返回
SKU:RB-02S159 模拟键盘模块
。
导航菜单
个人工具
登录
名字空间
页面
讨论
变换
查看
阅读
查看源代码
查看历史
操作
搜索
导航
首页
社区专页
新闻动态
最近更改
随机页面
帮助
工具箱
链入页面
相关更改
特殊页面
页面信息