#include <TM1637.h>
const int CLK = 2;
const int DIO = 3;
const int CLKa = 4;
const int DIOa = 5;
const int CLKb = 6;
const int DIOb = 7;
const int CLKc = 8;
const int DIOc = 9;
TM1637 tm(CLK, DIO);
TM1637 tma(CLKa, DIOa);
TM1637 tmb(CLKb, DIOb);
TM1637 tmc(CLKc, DIOc);
bool sw_state1 = 0;
bool sw_state2 = 0;
bool sw_state3 = 0;
unsigned long c_sw1 = 0;
unsigned long c_sw2 = 0;
unsigned long c_sw3 = 0;
void setup()
{
Serial.begin(115200);
tm.init();
tm.set(BRIGHT_TYPICAL);
tma.init();
tma.set(BRIGHT_TYPICAL);
tmb.init();
tmb.set(BRIGHT_TYPICAL);
tmc.init();
tmc.set(BRIGHT_TYPICAL);
pinMode(22, OUTPUT);
pinMode(23, OUTPUT);
pinMode(24, OUTPUT);
pinMode(25, OUTPUT);
pinMode(26, OUTPUT);
pinMode(27, OUTPUT);
}
unsigned int SUM = 0;
unsigned int endTime1;
unsigned int endTime2;
unsigned int endTime3;
void loop()
{
count_sw();
display();
//static unsigned long Time = millis();
if(c_sw1 > 10)
{
digitalWrite(22,0);
digitalWrite(23,1);
endTime1++;
}
else if(c_sw1 < 10)
{
digitalWrite(22,1);
digitalWrite(23,0);
}
if(c_sw2 > 10)
{
digitalWrite(24,0);
digitalWrite(25,1);
endTime2++;
}
else if(c_sw2 < 10)
{
digitalWrite(24,1);
digitalWrite(25,0);
}
if(c_sw3 > 10)
{
digitalWrite(26,0);
digitalWrite(27,1);
endTime3++;
}
else if(c_sw3 < 10)
{
digitalWrite(26,1);
digitalWrite(27,0);
}
if (endTime1 > 100)
{
digitalWrite(48,1);
endTime1 = 101;
}
if (endTime2 > 100)
{
digitalWrite(50,1);
endTime2 = 101;
}
if (endTime3 > 100)
{
digitalWrite(52,1);
endTime3 = 101;
}
Serial.print("S6=");
Serial.print((c_sw1 / 100000 ) % 10);
Serial.print("/");
Serial.print("S5=");
Serial.print((c_sw1 / 10000 ) % 10);
Serial.print("/");
Serial.print("S4=");
Serial.print((c_sw1 / 1000 ) % 10);
Serial.print("/");
Serial.print("S3=");
Serial.print((c_sw1 / 100 ) % 10);
Serial.print("/");
Serial.print("S2=");
Serial.print((c_sw1 / 10 ) % 10);
Serial.print("/");
Serial.print("S1=");
Serial.print(c_sw1 % 10);
Serial.print(" XXX> ");
//Serial.print("ช่วยโลก");
//Serial.print(c_sw1 + c_sw2 + c_sw3);
//Serial.print("-");
//Serial.print(endTime1);
//Serial.print("-");
//Serial.print("ช่วยโลก");
//Serial.print(c_sw1 + c_sw2 + c_sw3);
//Serial.print(endTime2);
//Serial.print("-");
Serial.print(c_sw1);
Serial.println("");
//delay(50);
}
void display()
{
count_sw();
c_sw1 = 100000;
delay(500);
tm.display(0, (c_sw1 / 10000) % 10);
tm.display(1, (c_sw1 / 100) % 10);
tm.display(2, (c_sw1 / 10) % 10);
tm.display(3, c_sw1 % 10);
tma.display(0, (c_sw2 / 1000) % 10);
tma.display(1, (c_sw2 / 100) % 10);
tma.display(2, (c_sw2 / 10) % 10);
tma.display(3, c_sw2 % 10);
tmb.display(0, (c_sw3 / 1000) % 10);
tmb.display(1, (c_sw3 / 100) % 10);
tmb.display(2, (c_sw3 / 10) % 10);
tmb.display(3, c_sw3 % 10);
SUM = c_sw1 + c_sw2 + c_sw3;
tmc.display(0, (SUM / 1000) % 10);
tmc.display(1, (SUM / 100) % 10);
tmc.display(2, (SUM / 10) % 10);
tmc.display(3, SUM % 10);
}
void count_sw()
{
if(digitalRead(10) == 0)
{
sw_state1 = 1;
}
if(sw_state1 == 1 && digitalRead(10) == 1)
{
c_sw1++;
sw_state1 = 0;
}
if(digitalRead(11) == 0)
{
sw_state2 = 1;
}
if(sw_state2 == 1 && digitalRead(11) == 1)
{
c_sw2++;
sw_state2 = 0;
}
if(digitalRead(12) == 0)
{
sw_state3 = 1;
}
if(sw_state3 == 1 && digitalRead(12) == 1)
{
c_sw3++;
sw_state3 = 0;
}
}