#include <Arduino.h>
#include <TM1637Display.h>
// Module connection pins (Digital Pins)
#define CLK 7
#define DIO 6
TM1637Display display(CLK, DIO);
#include <EEPROM.h>
int num,d1,d2,d3,d4,code,code1,d,m,fx;
bool a,b,st;
void setup() {
// put your setup code here, to run once:
pinMode(2,OUTPUT);
pinMode(3,INPUT_PULLUP);
pinMode(4,INPUT);
pinMode(5,INPUT);
Serial.begin(9600);
display.setBrightness(0x0f);
if(!digitalRead(3))m=st=1;
fx= EEPROM.read(0);
if(fx>99)fx=34;
code1=fx;
fx= EEPROM.read(1);
if(fx>99)fx=12;
code1+=fx*100;
}
void loop() {
// put your main code here, to run repeatedly:
if(!digitalRead(3)&!st){
d++;
num=0;
if(d>3){
d=0;
d1=d2=d3=d4=0;
if(m==2){
code1=code;
code=m=0;
EEPROM.update(1,code1/100);
EEPROM.update(0,code1%100);
}
else if(code==code1){
code=0;
if(m==1) m=2;
if(m==0){
digitalWrite(2,1);
delay(2000);
digitalWrite(2,0);}
}code=0;
}st=1;
}
if(!digitalRead(4)&digitalRead(5)){
if(!b)a=1;
else b=0;
}
if(!digitalRead(5)&digitalRead(4)){
if(!a) b=1;
else a=0;
}
if(digitalRead(5)&digitalRead(4)&digitalRead(3))st=0;
if(!digitalRead(5)&!digitalRead(4)&!st){
if(a){num++;}
if(b){num--;}
if(num>9)num=0;
if(num<0)num=9;
st=1;
if(d==0)d1=num;
if(d==1)d2=num;
if(d==2)d3=num;
if(d==3)d4=num;
code=d1+d2*10+d3*100+d4*1000;
}
Serial.println(code1);
display.showNumberDec(code,true);
}