// Definisi pin untuk LED pertama
const int redPin1 = 6; // Pin merah LED pertama
const int greenPin1 = 5; // Pin hijau LED pertama
const int bluePin1 = 4; // Pin biru LED pertama
// Definisi pin untuk LED kedua
const int redPin2 = 12; // Pin merah LED kedua
const int greenPin2 = 11; // Pin hijau LED kedua
const int bluePin2 = 10; // Pin biru LED kedua
const int pirPin = 2; // Pin sensor PIR
// Status deteksi gerakan dan warna saat ini
int motionDetected = LOW;
int colorState = 0; // 0: Off, 1: Red, 2: Green, 3: Blue
void setup() {
// Memulai komunikasi serial
Serial.begin(9600);
// Mengatur pin sebagai output untuk LED pertama
pinMode(redPin1, OUTPUT);
pinMode(greenPin1, OUTPUT);
pinMode(bluePin1, OUTPUT);
// Mengatur pin sebagai output untuk LED kedua
pinMode(redPin2, OUTPUT);
pinMode(greenPin2, OUTPUT);
pinMode(bluePin2, OUTPUT);
// Mengatur pin sensor PIR sebagai input
pinMode(pirPin, INPUT);
// Memulai dengan mematikan semua warna LED pertama dan kedua
digitalWrite(redPin1, LOW);
digitalWrite(greenPin1, LOW);
digitalWrite(bluePin1, LOW);
digitalWrite(redPin2, LOW);
digitalWrite(greenPin2, LOW);
digitalWrite(bluePin2, LOW);
}
void loop() {
int pirState = digitalRead(pirPin);
if (pirState == HIGH && motionDetected == LOW) {
motionDetected = HIGH;
colorState++;
if (colorState > 3) {
colorState = 0;
}
Serial.println("Gerakan terdeteksi!");
// Ubah warna LED berdasarkan state untuk LED pertama
switch (colorState) {
case 0:
digitalWrite(redPin1, LOW);
digitalWrite(greenPin1, LOW);
digitalWrite(bluePin1, LOW);
Serial.println("LED: Mati");
break;
case 1:
digitalWrite(redPin1, HIGH);
digitalWrite(greenPin1, LOW);
digitalWrite(bluePin1, LOW);
Serial.println("LED: Merah");
break;
case 2:
digitalWrite(redPin1, LOW);
digitalWrite(greenPin1, HIGH);
digitalWrite(bluePin1, LOW);
Serial.println("LED: Hijau");
break;
case 3:
digitalWrite(redPin1, LOW);
digitalWrite(greenPin1, LOW);
digitalWrite(bluePin1, HIGH);
Serial.println("LED: Biru");
break;
}
// Ubah warna LED berdasarkan state untuk LED kedua
switch (colorState) {
case 0:
digitalWrite(redPin2, LOW);
digitalWrite(greenPin2, LOW);
digitalWrite(bluePin2, LOW);
break;
case 1:
digitalWrite(redPin2, HIGH);
digitalWrite(greenPin2, LOW);
digitalWrite(bluePin2, LOW);
break;
case 2:
digitalWrite(redPin2, LOW);
digitalWrite(greenPin2, HIGH);
digitalWrite(bluePin2, LOW);
break;
case 3:
digitalWrite(redPin2, LOW);
digitalWrite(greenPin2, LOW);
digitalWrite(bluePin2, HIGH);
break;
}
} else if (pirState == LOW) {
motionDetected = LOW;
}
}