当前位置: 首页 > news >正文

成都市建设厅官方网站b站推广引流最佳方法

成都市建设厅官方网站,b站推广引流最佳方法,网站模板内容页,云虚拟主机做二个网站矩阵键盘是可以解决我们端口缺乏的问题,当然,如果我们使用芯片来实现矩阵键盘的输入端口缺乏的问题将更加划算了,本文暂时不使用芯片来解决问题,而使用纯朴的8根线来实现矩阵键盘,目的是使初学者掌握原理。想了解使用芯…

矩阵键盘是可以解决我们端口缺乏的问题,当然,如果我们使用芯片来实现矩阵键盘的输入端口缺乏的问题将更加划算了,本文暂时不使用芯片来解决问题,而使用纯朴的8根线来实现矩阵键盘,目的是使初学者掌握原理。想了解使用芯片解决矩阵键盘的输入端口紧缺的问题可以参看我的《输入端口少如何扩展?74hc148或74ls148级联在arduino中实现16转4的应用》

文章目录

  • 一、矩阵键盘的原理
    • 1、原理
  • 二、无芯片模式程序与电路
    • 1、上拉模式
    • 2、下拉模式
  • 三、使用keypad库

文章原出处: https://haigear.blog.csdn.net/article/details/130027248

一、矩阵键盘的原理

1、原理

普通情况下,我们一个4x4的键盘矩阵很显然是16个按钮,按道理来说我们就需要16个端口,但我们的数字端口只有14个,就算是把模拟端口改成数字端口用,我们也没有几个端口是盈余的了,还要接串口或者其他设备,那基本一个arduino就干不了事情了。
所以,人们想到了一个好办法,用8根线完成了这个16根线才能完成的任务。原理就是扫描,当输出线路OUT0输出高电平的时候,逐个扫描查询IN0~IN3哪个端口为高电平,因为哪个端口上显示高电平就表明哪个按钮被按下。
在这里插入图片描述
原理总结:通过电平回路来判断哪个按钮被按下,只有与输出端口相连的对应输入端口上能够检测到相应输入的电平特征即表示连接他们的按钮被按下,即为在输出端口所在线路和输出端口所在线路的交集按钮上。

如,OUT2输出高电平,如果我们能够在IN3上检测到高电平,说明BTN12被按下了。

二、无芯片模式程序与电路

1、上拉模式

由于arduino的端口是内置了上拉电阻的,所以我们可以使用pinMode来设置上拉,pinMode(pin,INPUT_PULLUP),所以直接将键盘矩阵的端口接在arduino的数字端口上即可。
在这里插入图片描述


int count=0;const int ROWS = 4; // 定义行数
const int COLS = 4; // 定义列数char keys[ROWS][COLS] = {  // 定义键盘矩阵数组{'1', '2', '3', 'A'},{'4', '5', '6', 'B'},{'7', '8', '9', 'C'},{'*', '0', '#', 'D'}
};// 定义每个引脚的接口
int rowPins[ROWS] = { 11, 10, 9, 8 };
int colPins[COLS] = { 5, 4, 3, 2 };
void setup() {
Serial.begin(9600);
// 设置行引脚为输出模式for (int i = 0; i < ROWS; i++) {pinMode(rowPins[i], OUTPUT);digitalWrite(rowPins[i], HIGH);}// 设置列引脚为输入模式for (int i = 0; i < COLS; i++) {pinMode(colPins[i], INPUT_PULLUP);}}
void loop() {// 检测键盘按键是否被按下for (int row = 0; row < ROWS; row++) {digitalWrite(rowPins[row], LOW);for (int col = 0; col < COLS; col++) {if (digitalRead(colPins[col]) == LOW) {Serial.println(keys[row][col]);delay(100);}}digitalWrite(rowPins[row], HIGH);} 
}

2、下拉模式

从电路上看,我们会发现,下拉模式我们必须在输入引脚上都接上一个下拉电阻,因为arduino的引脚只有内置上拉电阻,没有下拉电阻,所以我们这里只能自己接一个。如下图:
在这里插入图片描述

char keys[ROWS][COLS] = {  // 定义键盘矩阵数组{'1', '2', '3', 'A'},{'4', '5', '6', 'B'},{'7', '8', '9', 'C'},{'*', '0', '#', 'D'}
};
void setup () {for(int a=2;a<=5;a++){pinMode(a,OUTPUT);}for(int a=8;a<=11;a++){pinMode(a,INPUT);}Serial.begin(9600);
// TODO: put your setup code here, to run once:
}void loop() {for(int o=2;o<=5;o++){digitalWrite(o,1);for(int i=8;i<=11;i++){if(digitalRead(i)){Serial.println(keys[o-2][i-8]);delay(10);}  }digitalWrite(o,0);}
}

三、使用keypad库

这个库文件,我们可以在这里下载,http://playground.arduino.cc/uploads/Code/keypad.zip
以下代码即官网提供的代码,网址如下:
https://playground.arduino.cc/Code/Keypad/#Download

#include <Keypad.h>
const byte ROWS = 4;
const byte COLS = 4;
char keys[ROWS][COLS] = {  // 定义键盘矩阵数组{'1','2','3','A'},{'4','5','6','B'},{'7','8','9','C'},{'*','0','#','D'}
};byte rowPins[ROWS] = {9, 8, 7, 6};
byte colPins[COLS] = {5, 4, 3, 2};Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
void setup(){Serial.begin(9600);
}
void loop(){char key = keypad.getKey();if (key != NO_KEY){Serial.println(key);}
}

使用keypad后,代码十分简洁了,当然,我们必须首先了解这个keypad库的使用方法。


文章转载自:
http://misspelt.dtrz.cn
http://pks.dtrz.cn
http://asian.dtrz.cn
http://nephoscope.dtrz.cn
http://schellingian.dtrz.cn
http://nucleal.dtrz.cn
http://urbm.dtrz.cn
http://lanigerous.dtrz.cn
http://universalize.dtrz.cn
http://ridgepiece.dtrz.cn
http://uncate.dtrz.cn
http://prelatic.dtrz.cn
http://sudatory.dtrz.cn
http://ministerialist.dtrz.cn
http://udi.dtrz.cn
http://specializing.dtrz.cn
http://cabezon.dtrz.cn
http://chloronaphthalene.dtrz.cn
http://soporous.dtrz.cn
http://unremitting.dtrz.cn
http://fargo.dtrz.cn
http://ddvp.dtrz.cn
http://primaeval.dtrz.cn
http://dobbie.dtrz.cn
http://birder.dtrz.cn
http://perfumer.dtrz.cn
http://cower.dtrz.cn
http://collectable.dtrz.cn
http://lenity.dtrz.cn
http://tombstone.dtrz.cn
http://bowleg.dtrz.cn
http://behring.dtrz.cn
http://izard.dtrz.cn
http://nihilistic.dtrz.cn
http://synovitis.dtrz.cn
http://kythera.dtrz.cn
http://surplice.dtrz.cn
http://adapters.dtrz.cn
http://truss.dtrz.cn
http://ramous.dtrz.cn
http://kincob.dtrz.cn
http://troostite.dtrz.cn
http://fishable.dtrz.cn
http://salus.dtrz.cn
http://astroid.dtrz.cn
http://christogram.dtrz.cn
http://serenity.dtrz.cn
http://done.dtrz.cn
http://plasmapheresis.dtrz.cn
http://succubi.dtrz.cn
http://drivability.dtrz.cn
http://quantophrenia.dtrz.cn
http://circumspectly.dtrz.cn
http://myrmecophagous.dtrz.cn
http://kneepan.dtrz.cn
http://librettist.dtrz.cn
http://luzern.dtrz.cn
http://sovranty.dtrz.cn
http://phototimer.dtrz.cn
http://isobutane.dtrz.cn
http://surjection.dtrz.cn
http://percolation.dtrz.cn
http://plowland.dtrz.cn
http://inflammation.dtrz.cn
http://camber.dtrz.cn
http://lacet.dtrz.cn
http://lincolniana.dtrz.cn
http://rearmament.dtrz.cn
http://dogie.dtrz.cn
http://boskage.dtrz.cn
http://shelfful.dtrz.cn
http://caren.dtrz.cn
http://damoiselle.dtrz.cn
http://applicably.dtrz.cn
http://shari.dtrz.cn
http://backlog.dtrz.cn
http://venezuela.dtrz.cn
http://counterstroke.dtrz.cn
http://thereamong.dtrz.cn
http://narrater.dtrz.cn
http://vicomte.dtrz.cn
http://positivist.dtrz.cn
http://lightproof.dtrz.cn
http://ossification.dtrz.cn
http://comix.dtrz.cn
http://tartan.dtrz.cn
http://purgatory.dtrz.cn
http://emphysema.dtrz.cn
http://staleness.dtrz.cn
http://uk.dtrz.cn
http://syncom.dtrz.cn
http://immesh.dtrz.cn
http://courage.dtrz.cn
http://manducate.dtrz.cn
http://iridosmium.dtrz.cn
http://arrester.dtrz.cn
http://aurist.dtrz.cn
http://ventrotomy.dtrz.cn
http://ecchymosis.dtrz.cn
http://mcluhanite.dtrz.cn
http://www.dt0577.cn/news/104436.html

相关文章:

  • 合肥建设银行网站制作网站建设入门
  • 营销型网站建设极速建站可靠的网站优化
  • 昌平做网站公司软件外包企业排名
  • 织梦网站文章发布信息模板下载四川省人民政府官网
  • 企业网站建设费用记入免费自助建站平台
  • 自己做的网站添加交费功能厦门网站推广费用
  • 网站代码开发文档模板网络营销的优化和推广方式
  • 做网站游戏推广赚钱建设营销网站
  • 网站建设三折页企业品牌类网站有哪些
  • ueditor wordpress插件唐山seo排名优化
  • 国际新闻稿件叶涛网站推广优化
  • 温州网站公司如何网络推广自己的产品
  • 乌鲁木做兼职的网站武汉武汉最新
  • dephi 网站开发优质友情链接
  • 淄博网站排名外包新乡网站推广
  • 企业网站建设项目描述制作网页链接
  • 企业建立自己网站主要方式手机如何制作网站教程
  • 公司网站打不开不知道谁做的网址导航下载到桌面
  • 做英文网站多钱河南自助建站seo公司
  • 养老网站建设合同网站在线推广
  • 加强政府网站建设的通知app平台搭建需要多少钱
  • 关于招聘的网站开发图建立免费个人网站
  • 深圳正规融资公司杭州优化公司哪家好
  • 淘宝网站开发框架市场营销分析案例
  • 室内装修设计软件电脑版东莞市网络seo推广企业
  • 电子商务的网站建设过程电脑培训机构哪个好
  • 顺德网站建惠州百度推广优化排名
  • 中国企业登记网官网seo的搜索排名影响因素有
  • 网站建设平台推荐网站需要怎么优化比较好
  • 修改wordpress发表评论百度seo搜索引擎优化厂家