#include <LiquidCrystal_I2C.h>
#include <GyverTM1637.h>
#include <RTClib.h>
const int PinTrig[4] = {25, 26, 27, 14};
const int PinEcho[4] = {34, 35, 32, 33};
int CLK = 12;
int DIO = 13;
LiquidCrystal_I2C LCD_SR(0x27, 20, 4);
GyverTM1637 disp(CLK,DIO);
RTC_DS1307 rtc;
void setup() {
Serial.begin(115200);
LCD_SR.init();
LCD_SR.backlight();
disp.clear();
disp.brightness(7);
disp.point(1);
rtc.begin();
for (int i = 0; i < 4; i++) {
pinMode(PinEcho[i], INPUT);
pinMode(PinTrig[i], OUTPUT);
}
}
void loop() {
ultrasonicCycle();
clk();
}
void ultrasonicCycle() {
for (int i = 0; i < 4; i++) {
long duration, distance;
// กระตุ้นสัญญาณ Trig
digitalWrite(PinTrig[i], LOW);
delayMicroseconds(2);
digitalWrite(PinTrig[i], HIGH);
delayMicroseconds(10);
digitalWrite(PinTrig[i], LOW);
// วัดเวลาที่ Echo รับสัญญาณกลับมา
duration = pulseIn(PinEcho[i], HIGH);
distance = (duration / 2) / 29.1; // คำนวณระยะทางเป็นเซนติเมตร
LCD_SR.setCursor(0, i);
LCD_SR.print("Distance " + String(i+1) + " : " + String(distance) + " cm");
}
}
void clk() {
DateTime now=rtc.now();
byte hrs=now.hour();
byte mins=now.minute();
disp.displayClock(hrs,mins);
disp.point(1);
delay(1000);
disp.point(0);
delay(1000);
}