#include <Wire.h>
#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' }
};
char dostep [4]={
'0','0','0','0'};
byte rowPins[rows] = {
11,10,9,8};
byte colPins[cols] = {
7,6,5,4};
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, rows, cols);
void setup()
{
Serial.begin(9600);
}
int licznik =0;
void loop()
{
char key = keypad.getKey();
if(key != NO_KEY)
{
Serial.print("Wcisnieto : ");
Serial.print(key);
Serial.print(" .\n");
analogWrite(3,255);
delay(100);
analogWrite(3,0);
if (key=='#')
{
if (dostep [0]=='1' && dostep [1]=='2' && dostep [2]=='3' && dostep [3]=='4')
{
analogWrite(3,255); //dioda
delay(500);
analogWrite(3,0);
analogWrite(2,255);//relay
delay(5000);
analogWrite(2,0);
Serial.println("dostep");
}
Serial.print("\n");
Serial.println("RESET");
licznik=0;
for (int i =0; i<=3;i++)
dostep[i]=0;
}
if (key!='#')
{
dostep[licznik]=key;
licznik++;
}
Serial.print("licznik: ");
Serial.println(licznik);
//wypisanie zawartosci tablicy
Serial.print(dostep[0]);
Serial.print(" ");
Serial.print(dostep[1]);
Serial.print(" ");
Serial.print(dostep[2]);
Serial.print(" ");
Serial.print(dostep[3]);
Serial.print(" \n");
if (licznik ==4)
licznik=0;
}
}
CiNpbmNsdWRlIDxXaXJlLmg+CiNpbmNsdWRlIDxLZXlwYWQuaD4KCmNvbnN0IGJ5dGUgcm93cyA9IDQ7CmNvbnN0IGJ5dGUgY29scyA9IDQ7CgpjaGFyIGtleXNbcm93c11bY29sc10gPSB7CiAgewogICAgJzEnLCcyJywnMycsJ0EnICAgIH0KICAsCiAgewogICAgJzQnLCc1JywnNicsJ0InICAgIH0KICAsCiAgewogICAgJzcnLCc4JywnOScsJ0MnICAgIH0KICAsCiAgewogICAgJyonLCcwJywnIycsJ0QnICAgIH0KfTsKY2hhciBkb3N0ZXAgWzRdPXsKICAnMCcsJzAnLCcwJywnMCd9OwpieXRlIHJvd1BpbnNbcm93c10gPSB7CiAgMTEsMTAsOSw4fTsKYnl0ZSBjb2xQaW5zW2NvbHNdID0gewogIDcsNiw1LDR9OwoKS2V5cGFkIGtleXBhZCA9IEtleXBhZChtYWtlS2V5bWFwKGtleXMpLCByb3dQaW5zLCBjb2xQaW5zLCByb3dzLCBjb2xzKTsKCnZvaWQgc2V0dXAoKQp7CiAgU2VyaWFsLmJlZ2luKDk2MDApOwp9CmludCBsaWN6bmlrID0wOwp2b2lkIGxvb3AoKQp7CiAgY2hhciBrZXkgPSBrZXlwYWQuZ2V0S2V5KCk7CiAgaWYoa2V5ICE9IE5PX0tFWSkKICB7CiAgICBTZXJpYWwucHJpbnQoIldjaXNuaWV0byA6ICIpOwogICAgU2VyaWFsLnByaW50KGtleSk7CiAgICBTZXJpYWwucHJpbnQoIiAuXG4iKTsKICAgIGFuYWxvZ1dyaXRlKDMsMjU1KTsKICAgIGRlbGF5KDEwMCk7CiAgICBhbmFsb2dXcml0ZSgzLDApOwogICAgaWYgKGtleT09JyMnKQogICAgewoKICAgICAgaWYgKGRvc3RlcCBbMF09PScxJyAmJiBkb3N0ZXAgWzFdPT0nMicgJiYgZG9zdGVwIFsyXT09JzMnICYmIGRvc3RlcCBbM109PSc0JykKICAgICAgeyAKICAgICAgICBhbmFsb2dXcml0ZSgzLDI1NSk7IC8vZGlvZGEKICAgICAgICBkZWxheSg1MDApOwogICAgICAgIGFuYWxvZ1dyaXRlKDMsMCk7CiAgICAgICAgYW5hbG9nV3JpdGUoMiwyNTUpOy8vcmVsYXkKICAgICAgICBkZWxheSg1MDAwKTsKICAgICAgICBhbmFsb2dXcml0ZSgyLDApOwogICAgICAgIFNlcmlhbC5wcmludGxuKCJkb3N0ZXAiKTsKCiAgICAgIH0KICAgICAgU2VyaWFsLnByaW50KCJcbiIpOwogICAgICBTZXJpYWwucHJpbnRsbigiUkVTRVQiKTsKICAgICAgbGljem5paz0wOwogICAgICBmb3IgKGludCBpID0wOyBpPD0zO2krKykKICAgICAgICBkb3N0ZXBbaV09MDsKICAgIH0KICAgIGlmIChrZXkhPScjJykKICAgIHsKICAgICAgZG9zdGVwW2xpY3puaWtdPWtleTsKICAgICAgbGljem5paysrOwogICAgfQogICAgU2VyaWFsLnByaW50KCJsaWN6bmlrOiAiKTsKICAgIFNlcmlhbC5wcmludGxuKGxpY3puaWspOwogICAgLy93eXBpc2FuaWUgemF3YXJ0b3NjaSB0YWJsaWN5CiAgICBTZXJpYWwucHJpbnQoZG9zdGVwWzBdKTsKICAgIFNlcmlhbC5wcmludCgiICAiKTsKICAgIFNlcmlhbC5wcmludChkb3N0ZXBbMV0pOwogICAgU2VyaWFsLnByaW50KCIgICIpOwogICAgU2VyaWFsLnByaW50KGRvc3RlcFsyXSk7CiAgICBTZXJpYWwucHJpbnQoIiAgIik7CiAgICBTZXJpYWwucHJpbnQoZG9zdGVwWzNdKTsKICAgIFNlcmlhbC5wcmludCgiIFxuIik7CiAgICBpZiAobGljem5payA9PTQpCiAgICAgIGxpY3puaWs9MDsKCiAgfQoKfQoK