#include<Keypad.h>
#include<LiquidCrystal.h>/*设置自己的四位学号密码*/
char n0 = '0';
char n1 = '0';
char n2 = '4';
char n3 = '8';/*使用Keypad库映射按键和引脚*/
const byte rows = 4; //4行
const byte cols = 4; //4列char keys[rows][cols] = {{'7', '8', '9', '/'},{'4', '5', '6', '×'},{'1', '2', '3', '-'},{'C', '0', '=', '+'}
};byte rowPins[rows] = {3, 2, 19, 18};
byte colPins[cols] = {17, 16, 15, 14};
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, rows, cols);/*使用LCD库*/
LiquidCrystal lcd(9, 8, 7, 6, 5, 4);/*四个变量用于存储键盘输入的值*/
char n1_i = '0';
char n2_i = '0';
char n3_i = '0';
char n4_i = '0';char keys_in[4] = {'0', '0', '0', '0'};
int X = 0; //指示符控制灯亮,0代表不正确(初始值),1代表正确
int seqnum = 0; //建立一个指示位void setup() {/*控制红绿指示灯,红绿指示灯I/O输出低电平时灯亮*/pinMode(10, OUTPUT);digitalWrite(10, HIGH); //控制红灯的I/O10为高电平不亮pinMode(11, OUTPUT);digitalWrite(11, HIGH); //控制绿灯的I/O11为高电平不亮/*控制继电器的灯,高电平灯亮*/pinMode(12, OUTPUT);digitalWrite(12, LOW);/*设置LCD*/lcd.begin(16, 2);lcd.setCursor(0, 0); //将光标放在第0列,第0行lcd.print("0048"); //LCD第一行显示PASSWORD
}void loop() {char key = keypad.getKey();if (key){if (seqnum == 4){digitalWrite(10, HIGH);digitalWrite(11, HIGH);digitalWrite(12, LOW);lcd.clear();lcd.setCursor(0, 0); //将光标放在第0列,第0行lcd.print("0048"); //LCD第一行显示PASSWORDseqnum = 0;}if ((key == 'C') || (key == '/') || (key == '+') || (key == '-') || (key == '×') || (key == '=')) //按其他键清空输入内容{seqnum = 0;X = 0;digitalWrite(10, HIGH);digitalWrite(11, HIGH);digitalWrite(12, LOW);lcd.clear();lcd.setCursor(0, 0); //将光标放在第0列,第0行lcd.print("0048"); //LCD第一行显示PASSWORD}else //数字按键{keys_in[seqnum] = key;lcd.setCursor(seqnum, 1);lcd.print(key);seqnum ++;}}if (seqnum == 4){if (keys_in[0] == n0 && keys_in[1] == n1 && keys_in[2] == n2 && keys_in[3] == n3) //四位密码正确{digitalWrite(10, HIGH);digitalWrite(11, LOW); //绿灯低电平亮digitalWrite(12, HIGH); //黄灯高电平亮lcd.setCursor(5, 1);lcd.print("OPEN");}else{digitalWrite(10, LOW);digitalWrite(11, HIGH);digitalWrite(12, LOW);lcd.setCursor(5, 1);lcd.print("INVALID");}}
}

arduino密码锁代码相关推荐

  1. Arduino音乐代码《卡农》(简易版)

    最近看了电视剧<开端>,我按照音乐简谱编写<卡农>的Arduino音乐代码,仅录了最精彩的部分.我是新手,请多多关照! 我把音乐代码放在了循环函数中,<卡农>会一直 ...

  2. C语言arduino密码锁实验报告,简易密码锁的制作-Arduino中文社区 - Powered by Discuz!...

    本帖最后由 chemistry 于 2018-11-8 16:57 编辑 一款简易密码锁一.功能: 将密码显示在lcd屏上,正常状态下电磁锁处于锁定状态,当输入密码与原设定密码一致时,打开电磁锁.同时 ...

  3. arduino运行java_调试在Arduino MKR1000上运行的Arduino Uno代码

    所以,我是Arduino的业余程序员,之前从未使用过Arduino MKR1000 . 我使用了Arduino Uno并使用Grove Ear夹心跳传感器和Grove温度传感器编写附加代码来检测心跳和 ...

  4. arduino舵机代码_Arduino如何同时使用多个串口

    问题 如果想要给Arduino UNO R3同时接上WiFi模块和蓝牙模块时,但是Arduino的串口只有一个,怎样才能让Arduino同时使用多个串口呢? 解决方案 其实Arduino官方提供了一个 ...

  5. TM1638 LED数码显示模块ARDUINO驱动代码

    最近买了块LED数码管显示模块,板上焊接8个数码管,8个独立LED灯,8个独立按键.TM1638驱动芯片,五芯信号接口,5V供电.如下图:         电路图如下: 商家提供的演示代码显示混乱,代 ...

  6. 51单片机“密码锁”代码详解

    注:此代码一经过验证,读者不必怀疑其正确性,如果烧录进去没有反应,请自行检查引脚端口配置,以及仔细分析代码实现原理.倘若能静下心来分析代码,一定能受益匪浅. 废话不多说,,直接上代码.如有问题,请下方 ...

  7. 单片机课程设计:四位密码锁代码

    定义包 #include<reg52.h>/************************************************************************ ...

  8. Arduino 音乐代码

    <葫芦娃> //对应音符和频率值#define NOTE_D0 -1#define NOTE_D1 294#define NOTE_D2 330#define NOTE_D3 350#de ...

  9. arduino温度报警器代码

    int buzzer=7; //设置控制蜂鸣器的数字IO脚void setup() {Serial.begin(9600);pinMode(buzzer,OUTPUT);//设置数字IO脚模式,OUT ...

最新文章

  1. hust1341(模拟)
  2. 对“反射”的深入认识,你会发觉跟“解剖”一样
  3. Hadoop三大核心组件及需求催生大数据技术的背景
  4. exfat linux 驱动_(实例)Linux 内核添加exfat驱动
  5. CERC17 Problem L - Lunar Landscape(差分,坐标系)
  6. lambda 函数式编程_Java 8 Lambda表达式的函数式编程– Monads
  7. laravel increment出现了翻倍递增_股票连续多少个涨停板就可以市值翻倍?
  8. 编译 php7,编译PHP7
  9. Win7系统 待机后 不断网的 配置方法
  10. MVVM架构~Knockoutjs系列之text,value,attr,visible,with的数据绑定
  11. Linux下连接SQL Server
  12. Android NDK学习(1) 简介
  13. 记录下在linux下编译java源程序
  14. php 论坛下载,PHPWind论坛社区
  15. UNIX网络编程卷一 学习笔记 第一章 简介
  16. 计算机无法连接到桌面,Win7系统桌面天气小工具提示解决方案无法连接到服务...
  17. php中in array函数_PHP函数in_array()使用详解
  18. ROS创建KDL tree
  19. Python | 蓝桥杯进阶第四卷——图论
  20. Excel·VBA按行拆分工作表

热门文章

  1. python中while true输入正数_python入门学习------while和输入内容
  2. 烽火十八台丨从3.15曝光的食品安全问题看供应链网络安全防护
  3. 后端程序员看前端想死(二)进入页面之后js分析
  4. 解决VMware下安装Ubuntu 16.04 不支持1920X1080分辨率的问题
  5. 上面两点下面一个三角形_K线图中走出三角形收敛形态必有大波动?一招判断后期走势方向...
  6. 怎么查看自己云服务器信息吗,怎么查看自己云服务器信息吗
  7. nginx+uwsgi+django1.9+mysql+python2.7部署到CentOS6.5
  8. IPSEC VPN动态配置(示例)
  9. wxpyhton打包后图标背景变黑
  10. 126邮箱OUTLOOKS设置