Arduino的密码锁

1、基本要求

(1)按照题目要求独立完成Arduino程序设计

(2)能够通过键盘输入密码,并通过串口监视器打印要求的内容

(3)能通过8*8点阵显示密码测试结果

(4)用LED灯指示锁的开关状态,连续三次输入错误

(5)连续三次输入错误,LED灯闪烁

(6)密码保存在数组或文件中

2、发挥部分

(1)、通过按键控制开关锁

(2)、三次密码输入错误通过蜂鸣器报警

(3)、将密码写入文件保存,能对密码进行读写操作,有密码修改功能。

 

3、代码如下:只含蜂鸣器部分

#include"LedControl.h"

LedControl lc=LedControl(11,9,10,1);

byte d[8]{

B10000001,

B01000010,

B00100100,

B00011000,

B00011000,

B00011000,

B00011000,

B00011000,

};

byte a[8]{

B10000001,

B11000001,

B10100001,

B10010001,

B10001001,

B10000101,

B10000011,

B10000001,

};

String rkey="wq01";     

String key;

int led=8;

int l=0;

void setup() {

  // put your setup code here, to run once:

  digitalWrite(led,LOW);

  SerialUSB.begin(9600);

  pinMode(led,OUTPUT);

  lc.shutdown(0,false);

  lc.setIntensity(0,3);

  lc.clearDisplay(0);

  while(SerialUSB.read()>=0)   

  {}

}

 

void loop() {

  // put your main code here, to run repeatedly: 

  int i,j,k,c;

  if(SerialUSB.available()>0)

  {

    key=SerialUSB.readString();

    if(key.compareTo(rkey)==0)     

    {

      SerialUSB.println("This is right");

      digitalWrite(led,HIGH); 

      delay(2500);

      for (j=0;j<8;j++)            

        lc.setRow(0,j,d[j]);

    }

    else 

    {

      SerialUSB.println("This is false");

      digitalWrite(led,HIGH); 

      delay(500);

      digitalWrite(led,LOW);

      delay(500);

      l++;

    }   

    if(l==3) 

    {

      for (k=0;k<8;k++)           

        lc.setRow(0,k,a[k]);

      do{

        digitalWrite(led,HIGH);

        delay(500);

        digitalWrite(led,LOW);

        delay(500);

      }while(1);

    }

  }

  delay(1000);

  digitalWrite(led,LOW);

  lc.clearDisplay(0);

}

评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值