4*4薄膜键盘的电路连接和驱动(树莓派)
一、电路连接
4*4薄膜键盘模块分别有8个传输口,不需要供电,如图2-5的右侧所示。八个接口利用公对母杜邦线接入树莓派任意八个没有占用的GPIO口即可,连接效果如图2-5。
图2-5 4*4薄膜键盘电路连接图
二、工作原理
利用逐行(或列)扫描查询法识别按键。
1.判断键盘中是否有键,按下键,将所有y0-y0行设置为低电平,然后检测列行的状态。只要一列的级别较低,就意味着按下了键盘上的一个键,闭合键位于由低级别线和四行线交叉的四个键中。如果所有列都是高电平,则不按键盘上的任何键。
2.判断键盘中关闭键的所在位置。当已知按下某个键后,就可以进入关闭特定键的流程。方法如下:依次将一行设置为低电平,即当一行设置为低电平时,其他行设置为高电平。确定行的位置为低电平后,逐行检测每个列的电平状态。如果列为low,则列线与设置为low level的行线相交处的键为closed键。
三、驱动代码
导入GPIO库,设定好编码格式和DHT温湿度模块所连接的管脚并开启。将每列与每行上的高低电平相连接,行列皆为高电平则表示按下的是行列相交交点值。
import RPi.GPIO as GPIO#导入GPIO库import time#导入time库L1 = 5 #GPIO5控制第一行L2 = 6 #GPIO6控制第二行L3 = 13 #GPIO13控制第三行L4 = 19 #GPIO19控制第四行C1 = 1 #GPIO1控制第一列C2 = 12 #GPIO12控制第二列C3 = 20 #GPIO20控制第三列C4 = 21 #GPIO21 控制第四列GPIO.setwarnings(False)#代码禁用警告GPIO.setmode(GPIO.BCM)#设置模式GPIO.setup(L1,GPIO.OUT)#L1设为输出口GPIO.setup(L2,GPIO.OUT)#L2设为输出口GPIO.setup(L3,GPIO.OUT)#L3设为输出口GPIO.setup(L4,GPIO.OUT)#L4设为输出口GPIO.setup(C1,GPIO.IN,pull_up_down = GPIO.PUD_DOWN)#设置某一瞬间的C1信号GPIO.setup(C2,GPIO.IN,pull_up_down = GPIO.PUD_DOWN)#设置某一瞬间的C2信号GPIO.setup(C3,GPIO.IN,pull_up_down = GPIO.PUD_DOWN)#设置某一瞬间的C3信号GPIO.setup(C4,GPIO.IN,pull_up_down = GPIO.PUD_DOWN)#设置某一瞬间的C4信号def readLine(line,characters):GPIO.output(line,GPIO.HIGH)if(GPIO.input(C1) == 1):print(characters[0])if(GPIO.input(C2) == 1):print(characters[1])if(GPIO.input(C3) == 1):print(characters[2])if(GPIO.input(C4) == 1):print(characters[3])GPIO.output(line,GPIO.LOW)try:while true:#读数readLine(L2,[“1”,”2”,”3”,”A”])readLine(L1,[“4”,”5”,”6”,”B”])readLine(L3,[“7”,”8”,”9”,”C”])readLine(L4,[“*”,”0”,”#”,”D”])time.sleep(0.1)except KeyboardInterrupt:print(“\nAPP stopped!”)
四、驱动结果描述
测试程序包含一个名为readLine的方法。readLine方法将脉冲发送到单行,然后检查在将该行拉高时按下了哪个按钮。
4*4薄膜键盘的电路连接和驱动(树莓派)相关推荐
- OLED显示模块的电路连接和驱动(树莓派)
一.电路连接 OLED显示模块焊接上I2C仅有四个引脚,分别为接电(+3V).接地(GND).SCL和SDA,分别利用母对母杜邦线将SCL和SDA接口接入树莓派GPIO3和GPIO2口,接地和接电分别 ...
- c语言595驱动数码管,74hc595驱动4位数码管电路连接图及程序解析 - 全文
本设计使用了一个4位的数码管,为共阳型,为了节省单片机的IO口,使用了两片74HC595作为数码管的驱动芯片,共占用3个IO口.74HC595部分电路图如下: 与单片机相连接的三个脚分别为: HC_D ...
- 【模块电路】继电器驱动应用
[模块电路]继电器驱动应用 一.实验目的 掌握继电器驱动的方法 二.实验原理 什么是继电器呢?这个东西很常见,在电子设备以及电力系统中的应用都很广泛,简单的来就是一种用小电流来控制大电流的开关.小电流 ...
- java连接sqlserver2008_java连接sqlserver2008驱动包
java连接sqlserver2008一直说驱动不匹配,后来知道需要一个驱动包,找了下,果断有用啊~~分享给大家~ java连接sqlserver2008驱动包 java连接sql server200 ...
- 无法连接NVIDIA驱动:NVIDIA-SMI has failed because it couldn’t communicate with the NVIDIA driver
1. 问题 今天正要用GPU跑代码的时候,发现cuda不可用,然后在终端执行nvidia-smi发现无法连接NVIDIA驱动,问题如下: NVIDIA-SMI has failed because i ...
- 【小白米日志】树莓派3b+四位共阴数码管的连接和驱动
[小白米日志]树莓派3b+四位共阴数码管的连接和驱动 所需材料 数码管的简介 GPIO连接 代码 演示 所需材料 笔记本电脑:通过ssh控制树莓派. 树莓派3b+:装好系统,打开ssh. 四位共阴 数 ...
- 51单片机控制步进电机-电路连接
51单片机控制步进电机-电路连接 概要:本案例讲解的内容是51单片机控制步进电机硬件连接部分.后续会分别讲解单片机程序,S曲线加减速方法,上位机等相关内容 硬件清单: 1.51单片机控制板一个 2.二 ...
- VFW连接视频驱动不成功问题解决
使用VFW进行视频捕获时,使用capdriverconnect宏连接视频驱动时, 一般方法是 if(capDriverConnect(m_hwnd,0){ //连接视频驱动成功后进行的动作 } el ...
- 12v农用车发电机接线图_拖拉机启动开关接线图 农用车基本电路连接方法
拖拉机启动开关接线图 农用车基本电路连接方法 你好!农用车主要电器有:电瓶,起动机,发电机,电流表,发电机调节器,钥匙门.辅助的有:电源总开关,灯开关,启动继电器,保险盒,灯等.连接方法:电瓶负极(- ...
最新文章
- 实现等待窗体的几种方式
- 嵌入式学习笔记之三 (uboot我来看)
- LeetCode Remove Duplicates from Sorted List
- Ping命令及其协议
- Layer 父子页面之间的交互
- 利用css transition属性实现一个带动画显隐的微信小程序部件
- Mac下常用快捷键(转)
- python从入门到精通 清华大学出版社-清华大学出版社 python
- Android+TensorFlow+CNN+MNIST实现手写数字识别
- 打印机服务器没有响应 请检查设置,打印机服务无法启动的解决办法
- 出现Please make sure you have the correct access rights and the repository exists.问题解决
- HTML5设计注册/登录界面
- 单片机之硬件 软件仿真
- 产品经理为什么比程序员工资要高?百度员工:因为他是产品灵魂
- Google 研究主管Peter Norvig:你想当程序员么?这里有成功的“食谱”
- adb连接木木模拟器
- 开学倒计时,实验室里的这些准备工作你做完了吗?-LIMS2
- 产品 · B端生意的定义和分类
- jfinal中json字符串转对象类
- 数据结构 —— ADT(抽象数据类型)
热门文章
- 【P52】基于继电器的音频静音电路
- Stanford NLP2
- 宽带市场开启烧钱模式 民资入场容易留下难
- Laravel 5.2 + layui实现视频上传(+ 进度条)原创
- 在外部DDR3内存中运行的MicroBlaze程序的固化方法
- python潜力开源项目_2018 年最受欢迎的 Python 开源项目
- 全国计算机一级考点wps,抓考点:2018计算机一级WPS office考试大纲
- 分享一个好用美观的桌面便签工具
- 新生代农民工小鱼:今天来介绍一下ROS2的节点
- 北大计算机博士蔡华谦,信科师生在北京大学国球联赛再次折桂