### Keypad 验证板 v0.2.6 硬件介绍 由于还不会画 ESP32 芯片的外围电路和充电电路,所以`v0.1`版本使用直插`ESP32 DevKit v1`进行有线供电的方案 同时为了避免浪费,所以`PCB 板`尺寸控制在 10 * 10 厘米以内(已经打板,希望这次验证成功) > `ESP32 DevKit v1` 是这种 30 针的开发板 >  ### 所需硬件列表 * `ESP32 DevKit v1 开发板` * 1 * `按键 (6*6*5)` * 24 * `贴片二极管 (1N4148WS)` * 24 * `PCB 板` * 1 * 下载 [生产文件](https://gitee.com/walkline/walkline-wardware/raw/master/keypad/matrix/v0.2.6/Gerber_5_5%20matrix%20keypad%20v0.2.6_20200409134715.zip) ### 失败原因 之前几次之所以失败就是因为选错了`GPIO 引脚`,这次必须要记录下来了! | 引脚 | 失败原因 | 建议 | | :-: | :-: | :-: | | 36 (VP) | 作为输入引脚无法拉高,状态飘忽不定 | 不使用 | | 39 (VN) | 同上 | 不使用 | | 34 | 同上 | 不使用 | | 35 | 同上 | 不使用 | | 5 | 仅支持输出 | 无 | | 2 | 板载 Led 控制 | 少用 | | 1 (TX0) | 开发调试使用 | 不使用 | | 3 (RX0) | 开发调试使用 | 不使用 | ### GPIO 引脚定义 * `按键`使用 2 组 GPIO 做行列扫描 * `k_col`为列线,输入 * `k_row`为行线,输出 * `Led`使用 1 组 GPIO 做行扫描,列线接地 * `Led 控制`使用 4 个 GPIO 单独控制功能指示灯 | 按键定义 | 引脚 | Led 定义 | 引脚 | Led 控制 | 引脚 | | :-: | :-: | :-: | :-: | :-: | :-: | | k_col_1 | 32 | l_row_1 | 21 | l_control_1 | 17 | | k_col_2 | 33 | l_row_2 | 19 | l_control_2 | 16 | | k_col_3 | 25 | l_row_3 | 18 | l_control_3 | 4 | | k_col_4 | 26 | l_row_4 | 5 | l_control_4 | 15 | | k_col_5 | 27 | l_row_4 | | | | | k_row_1 | 14 | | | | | k_row_2 | 12 | | | | | k_row_3 | 13 | | | | | k_row_4 | 23 | | | | | k_row_5 | 22 | | | | ### 按键矩阵扫描  #### 方法一:行输出 列线作为输入默认全部`拉低`,行线轮流`置高电平`并逐个检查列线输入状态 #### 方法二:列输出 二极管全部反向安装,列线作为输入默认全部`拉高`,行线轮流`置低电平`并逐个检查列线输入状态 ### 层定义 既然是自己开发的控制器,那么当然可以自由定义每一层如何应用 > 层,是我看来的概念,大概意思就是每一层的同一个按键可以对应不同的功能 目前只想到了两层的定义 * Layer 01 | 定义 1 | 定义 2 | | :-: | :-: | |  |  | * Layer 04 * `Light`用于切换不同灯效,目前想到但还没实现的效果有: * 灯全灭 * 灯全亮 * 呼吸灯 * 按键按下整行闪烁 * `Bright`用于调节灯光亮度 * `Test`用于测试整行效果 | 定义 | | :-: | |  | ### PCB 电路板 这次做一个异形板挖哈哈 #### 效果图 | 正面 | 背面 | | :-: | :-: | |  |  | #### 实物图 | 正面 | 背面 | | :-: | :-: | |  |  | #### 完成图 | 正面 | | :-: | |  |