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