Arduino的密码锁

基本要求

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

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

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

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

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

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

2、发挥部分

  1、通过按键控制开关锁

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

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);

}

猜你喜欢

转载自blog.csdn.net/qq_42342113/article/details/82735118