一、电路连接

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薄膜键盘的电路连接和驱动(树莓派)相关推荐

  1. OLED显示模块的电路连接和驱动(树莓派)

    一.电路连接 OLED显示模块焊接上I2C仅有四个引脚,分别为接电(+3V).接地(GND).SCL和SDA,分别利用母对母杜邦线将SCL和SDA接口接入树莓派GPIO3和GPIO2口,接地和接电分别 ...

  2. c语言595驱动数码管,74hc595驱动4位数码管电路连接图及程序解析 - 全文

    本设计使用了一个4位的数码管,为共阳型,为了节省单片机的IO口,使用了两片74HC595作为数码管的驱动芯片,共占用3个IO口.74HC595部分电路图如下: 与单片机相连接的三个脚分别为: HC_D ...

  3. 【模块电路】继电器驱动应用

    [模块电路]继电器驱动应用 一.实验目的 掌握继电器驱动的方法 二.实验原理 什么是继电器呢?这个东西很常见,在电子设备以及电力系统中的应用都很广泛,简单的来就是一种用小电流来控制大电流的开关.小电流 ...

  4. java连接sqlserver2008_java连接sqlserver2008驱动包

    java连接sqlserver2008一直说驱动不匹配,后来知道需要一个驱动包,找了下,果断有用啊~~分享给大家~ java连接sqlserver2008驱动包 java连接sql server200 ...

  5. 无法连接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 ...

  6. 【小白米日志】树莓派3b+四位共阴数码管的连接和驱动

    [小白米日志]树莓派3b+四位共阴数码管的连接和驱动 所需材料 数码管的简介 GPIO连接 代码 演示 所需材料 笔记本电脑:通过ssh控制树莓派. 树莓派3b+:装好系统,打开ssh. 四位共阴 数 ...

  7. 51单片机控制步进电机-电路连接

    51单片机控制步进电机-电路连接 概要:本案例讲解的内容是51单片机控制步进电机硬件连接部分.后续会分别讲解单片机程序,S曲线加减速方法,上位机等相关内容 硬件清单: 1.51单片机控制板一个 2.二 ...

  8. VFW连接视频驱动不成功问题解决

    使用VFW进行视频捕获时,使用capdriverconnect宏连接视频驱动时, 一般方法是 if(capDriverConnect(m_hwnd,0){  //连接视频驱动成功后进行的动作 } el ...

  9. 12v农用车发电机接线图_拖拉机启动开关接线图 农用车基本电路连接方法

    拖拉机启动开关接线图 农用车基本电路连接方法 你好!农用车主要电器有:电瓶,起动机,发电机,电流表,发电机调节器,钥匙门.辅助的有:电源总开关,灯开关,启动继电器,保险盒,灯等.连接方法:电瓶负极(- ...

最新文章

  1. 实现等待窗体的几种方式
  2. 嵌入式学习笔记之三 (uboot我来看)
  3. LeetCode Remove Duplicates from Sorted List
  4. Ping命令及其协议
  5. Layer 父子页面之间的交互
  6. 利用css transition属性实现一个带动画显隐的微信小程序部件
  7. Mac下常用快捷键(转)
  8. python从入门到精通 清华大学出版社-清华大学出版社 python
  9. Android+TensorFlow+CNN+MNIST实现手写数字识别
  10. 打印机服务器没有响应 请检查设置,打印机服务无法启动的解决办法
  11. 出现Please make sure you have the correct access rights and the repository exists.问题解决
  12. HTML5设计注册/登录界面
  13. 单片机之硬件 软件仿真
  14. 产品经理为什么比程序员工资要高?百度员工:因为他是产品灵魂
  15. Google 研究主管Peter Norvig:你想当程序员么?这里有成功的“食谱”
  16. adb连接木木模拟器
  17. 开学倒计时,实验室里的这些准备工作你做完了吗?-LIMS2
  18. 产品 · B端生意的定义和分类
  19. jfinal中json字符串转对象类
  20. 数据结构 —— ADT(抽象数据类型)

热门文章

  1. 【P52】基于继电器的音频静音电路
  2. Stanford NLP2
  3. 宽带市场开启烧钱模式 民资入场容易留下难
  4. Laravel 5.2 + layui实现视频上传(+ 进度条)原创
  5. 在外部DDR3内存中运行的MicroBlaze程序的固化方法
  6. python潜力开源项目_2018 年最受欢迎的 Python 开源项目
  7. 全国计算机一级考点wps,抓考点:2018计算机一级WPS office考试大纲
  8. 分享一个好用美观的桌面便签工具
  9. 新生代农民工小鱼:今天来介绍一下ROS2的节点
  10. 北大计算机博士蔡华谦,信科师生在北京大学国球联赛再次折桂