unsigned long MobilATime[5];
unsigned long MobilBTime[5];
unsigned long MobilCTime[5];
int LapNumber = 0;
int MobilALap = -1;
int MobilBLap = -1;
int Sensor1;
int Sensor2;
int Sensor3;
int Sensor1Count = 0;
int Sensor2Count = 0;
int Sensor3Count = 0;
void setup() {
// put your setup code here, to run once:
pinMode(13,OUTPUT);
pinMode(12,OUTPUT);
pinMode(11,OUTPUT);
pinMode(7, INPUT); //sensor 1 kuning
pinMode(6, INPUT); //sensor 2 merah
pinMode(5, INPUT); //sensor 3 biru
pinMode(4, INPUT); //RESET
pinMode(3, INPUT); //Start button
Serial.begin(9600);
Serial.println("------STARTED-----");
}
void loop()
{
Sensor3 = digitalRead(5);
Sensor2 = digitalRead(6);
Sensor1 = digitalRead(7);
if (Sensor1 == HIGH) {
if (Sensor1Count==0) {
MobilATime[Sensor1Count]=millis();
MobilALap++;
//Kalau sensor 1 menyala 1x mobil C yg lewat
MobilCTime[Sensor1Count+1]=millis();
}
// kalau sensor 1 nyala 2x pasti yg lewat mobilC
if (Sensor1Count==1) {
MobilCTime[Sensor1Count]=millis();
}
Sensor1Count++;
Serial.print("Sensor1Count: ");
Serial.print(Sensor1Count);
Serial.println("---");
}
if (Sensor2 == HIGH) {
if (Sensor2Count==0) {
MobilBTime[Sensor2Count]=millis();
MobilBLap++;
//Kalau mobil B ga lewat & yg lewat mobil A
if (millis()>MobilATime[0]){
MobilATime[Sensor2Count+1]=millis();
MobilALap++;
}
}
// kalau sensor2 nyala 2x pasti yg lewat mobilA
if (Sensor2Count==1) {
MobilATime[Sensor2Count]=millis();
MobilALap++;
}
Sensor2Count++;
Serial.print("Sensor2Count: ");
Serial.print(Sensor2Count);
Serial.println("---");
}
if (Sensor3 == HIGH) {
if (Sensor3Count==0) {
MobilCTime[Sensor3Count]=millis();
//Kalau sensor 3 menyala 1 x, mobil B yg lewat
MobilBTime[Sensor3Count+1]=millis();
}
// kalau sensor 3 nyala 2x pasti yg lewat mobilB
if (Sensor3Count==1) {
MobilBTime[Sensor3Count]=millis();
MobilBLap++;
}
// kalau sensor 3 nyala 3x pasti yg lewat mobilA
if (Sensor3Count==2) {
MobilATime[Sensor3Count]=millis();
MobilALap++;
}
Sensor3Count++;
Serial.print("Sensor3Count: ");
Serial.print(Sensor3Count);
Serial.println("---");
}
// if ((MobilALap==2) || (MobilBLap==2)){
for (int i=0; i<=4;i++){
Serial.print("Jumlah i: ");
Serial.print(i);
Serial.print(" - MobilATime[");
Serial.print(i);
Serial.print("] :");
Serial.print(MobilATime[i]);
Serial.print(" - MobilBTime[");
Serial.print(i);
Serial.print("] :");
Serial.print(MobilBTime[i]);
Serial.print(" - MobilCTime[");
Serial.print(i);
Serial.print("] :");
Serial.print(MobilCTime[i]);
Serial.println("===");
// }
// delay(1000);
}
delay(200);
}
void ms_to_seconds(unsigned long milliseconds, unsigned long &seconds, unsigned int &remainingMilliseconds) {
seconds = milliseconds / 1000;
remainingMilliseconds = milliseconds % 1000;
}