#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);
//---Button Menu
#define BUP 4
#define BOK 3
#define BDN 2
#define KEYACC 6
#define KEYC 5
#define lampBR 49
#define lampACC 51
#define lampC 53
#define PUSH LOW //Ditekan
#define BOUN 10
unsigned long pressTimer = 0;
unsigned long previousMillis = 0;
const long Delay = 500;
boolean jalan;
void setup() {
Serial.begin(9600);
lcd.init();
lcd.backlight();
pinMode(BUP, INPUT_PULLUP);
pinMode(BOK, INPUT_PULLUP);
pinMode(BDN, INPUT_PULLUP);
pinMode(KEYC, INPUT_PULLUP);
pinMode(lampBR, OUTPUT);
pinMode(lampACC, OUTPUT);
pinMode(lampC, OUTPUT);
digitalWrite(lampBR, LOW);
digitalWrite(lampACC, LOW);
digitalWrite(lampC, LOW);
lcd.setCursor(6, 0); lcd.print("NEW SPMC");
lcd.setCursor(3, 1); lcd.print("PT.KARYA MULTI");
lcd.setCursor(1, 2); lcd.print("SOLUTION INDONESIA");
delay(2000);
lcd.clear();
jalan = false;
}
void loop() {
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= Delay) {
previousMillis = currentMillis;
keyLogic();
}
}
void afterON(){
if (digitalRead(BOK) == LOW) { // Jika tombol ditekan
if (pressTimer == 0) { // Jika belum ada waktu awal yang disimpan
pressTimer = millis(); // Simpan waktu saat ini
}
if (millis() - pressTimer >= 3000) { // Cek apakah sudah 3 detik
lcd.setCursor(0, 0); lcd.print("Select Category? ");
lcd.setCursor(0, 1); lcd.print(" ");
setMenu();
}
} else { // Jika tombol dilepas
pressTimer = 0; // Reset waktu awal
lcd.setCursor(0,0); lcd.print("Status: key ON ");
lcd.setCursor(0,1); lcd.print("Batteray 26volt ");
}
}
void keyLogic() {
if (digitalRead(KEYACC) == PUSH) {
lcd.setCursor(0,0); lcd.print("Status: key up ");
lcd.setCursor(0,1); lcd.print("Batteray 26volt");
}
if ((digitalRead(KEYACC) == PUSH) && (digitalRead(KEYC) == PUSH)) {
delay(BOUN);
while(digitalRead(KEYC) == PUSH){}
lcd.setCursor(0,0); lcd.print("Status: key acc ");
lcd.setCursor(0,1); lcd.print("Batteray 26volt");
delay(1000);
lcd.clear();
}
}
BR-OUT
ACC-OUT
C-OUT
FOG
FWD
BCN
OVT
AUTOLUBE
SP-ACC
SP-BATT
DC-CVT
FIRE-SUPP
INFO
HORN
FAT_BUZZ
CN-2
CN-1
BR/ACC
START
LOCK
EMG_CAB
EMG_OUT
FOG_SW
FWD_SW
BEACON_SW
STROBE_SW
FWR_SW
P_BRAKE_SW
REV_SIGNAL
FIRE_SW