极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

12
返回列表 发新帖
楼主: eagler8

【Arduino】168种传感器模块系列实验(142)---LCD Keypad Shield

[复制链接]
 楼主| 发表于 2020-2-13 10:22:21 | 显示全部楼层
  1. /*
  2.   【Arduino】168种传感器模块系列实验(资料 +代码 +图形 +仿真)
  3.   实验一百四十二:LCD1602 字符液晶屏 输入输出扩展板 LCD Keypad Shield
  4.   实验之二:ADC密钥测试
  5.   LiquidCrystal库:IDE—工具—管理库—搜索LiquidCrystal—安装
  6. */

  7. #include <LiquidCrystal.h>

  8. LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

  9. char msgs[5][16] = {"Right Key OK ",
  10.                     "Up Key OK    ",
  11.                     "Down Key OK  ",
  12.                     "Left Key OK  ",
  13.                     "Select Key OK"
  14.                    };

  15. int adc_key_val[5] = {50, 200, 400, 600, 800 };
  16. int NUM_KEYS = 5;
  17. int adc_key_in;
  18. int key = -1;
  19. int oldkey = -1;

  20. void setup()
  21. {
  22.   lcd.clear();
  23.   lcd.begin(16, 2);
  24.   lcd.setCursor(0, 0);
  25.   lcd.print("ADC key testing");
  26. }

  27. void loop()
  28. {
  29.   adc_key_in = analogRead(0);    // 从A0传感器端读取值
  30.   key = get_key(adc_key_in);  // 转换为按键

  31.   if (key != oldkey)   // 如果检测到按键
  32.   {
  33.     delay(50);  // 等待解除缓冲时间
  34.     adc_key_in = analogRead(0);    // 从A0传感器端读取值
  35.     key = get_key(adc_key_in);    // 转换为按键
  36.     if (key != oldkey)
  37.     {
  38.       lcd.setCursor(0, 1);
  39.       oldkey = key;
  40.       if (key >= 0) {
  41.         lcd.print(msgs[key]);
  42.       }
  43.     }
  44.   }
  45.   delay(100);
  46. }

  47. // 将ADC值转换为密钥号
  48. int get_key(unsigned int input)
  49. {
  50.   int k;

  51.   for (k = 0; k < NUM_KEYS; k++)
  52.   {
  53.     if (input < adc_key_val[k])
  54.     {
  55.       return k;
  56.     }
  57.   }

  58.   if (k >= NUM_KEYS)k = -1;  // 未按下有效键
  59.   return k;
  60. }
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-13 10:33:46 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-13 15:01:23 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-26 08:49:23 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-19 23:19 , Processed in 0.037490 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表