const int dataPin = 2; /* DS */
const int clockPin = 3; /* SHCP */
const int latchPin = 4; /* STCP */
const int segments[] = {
0b00000011, //0
0b10011111, //1
0b00100101, //2
0b00001101, //3
0b10011001, //4
0b01001001, //5
0b01000001, //6
0b00011111, //7
0b00000000, //8
0b00001001 //9
};
const int segments1[] = {
0b00111001,
0b01100011
};
void setup() {
pinMode(dataPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(latchPin, OUTPUT);
}
void loop() {
int day = 22;
int tensDay = day / 10;
int onesDay = day % 10;
int month = 4; // April
int tensMonth = month / 10;
int onesMonth = month % 10;
int year = 24; // 2024
int tensYear = year / 10;
int onesYear = year % 10;
// Simulated time (in seconds)
int simulatedTime = millis() / 1000; // Incrementing time every second
// Extracting hours, minutes, and seconds
int hours = simulatedTime / 3600;
int minutes = (simulatedTime % 3600) / 60;
int seconds = simulatedTime % 60;
int h1 = hours / 10;
int h2 = hours % 10;
int m1 = minutes / 10;
int m2 = minutes % 10;
int s1 = seconds / 10;
int s2 = seconds % 10;
float t = 25.32;
int wholePart = int(t);
int decimalPart = int(t * 100) % 100;
int t1 = wholePart / 10;
int t2 = wholePart % 10;
int t3 = decimalPart / 10;
int t4 = decimalPart % 10;
digitalWrite(latchPin, LOW);
//อุณหภูมิ ----------------------------------------------
shiftOut(dataPin, clockPin, LSBFIRST, segments1[0]);
shiftOut(dataPin, clockPin, LSBFIRST, segments1[1]);
shiftOut(dataPin, clockPin, LSBFIRST, segments[t2]);
shiftOut(dataPin, clockPin, LSBFIRST, segments[t1]);
//-----------------------------------------------
//เวลา-------------------------------------------
shiftOut(dataPin, clockPin, LSBFIRST, segments[s2]);
shiftOut(dataPin, clockPin, LSBFIRST, segments[s1]);
shiftOut(dataPin, clockPin, LSBFIRST, segments[m2]);
shiftOut(dataPin, clockPin, LSBFIRST, segments[m1]);
shiftOut(dataPin, clockPin, LSBFIRST, segments[h2]);
shiftOut(dataPin, clockPin, LSBFIRST, segments[h1]);
//วันที่-------------------------------------------
shiftOut(dataPin, clockPin, LSBFIRST, segments[onesYear]);
shiftOut(dataPin, clockPin, LSBFIRST, segments[tensYear]);
shiftOut(dataPin, clockPin, LSBFIRST, segments[onesMonth]);
shiftOut(dataPin, clockPin, LSBFIRST, segments[tensMonth]);
shiftOut(dataPin, clockPin, LSBFIRST, segments[tensDay]);
shiftOut(dataPin, clockPin, LSBFIRST, segments[onesDay]);
digitalWrite(latchPin, HIGH);
delay(1000);
}