#define led1 11
#define led2 10
#define led3 9
#define led4 6
#define led5 5
#define led6 3
#define potPin A0
int i;
int j;
int potValue;
int kecepatan;
int terang;
void hitungKecepatan() {
Serial.flush();
potValue = analogRead(potPin);
kecepatan = map(potValue, 0, 1023, 50, 1000);
Serial.print("kecepatan nya :");
Serial.println(kecepatan);
}
void ledJalan(int led = 0, String mode = "kaku", int pwm = 0) {
if (mode == "kaku") {
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
digitalWrite(led6, LOW);
switch (led) {
case 0:
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
digitalWrite(led6, LOW);
hitungKecepatan();
break;
case 1:
digitalWrite(led1, HIGH);
hitungKecepatan();
break;
case 2:
digitalWrite(led2, HIGH);
hitungKecepatan();
break;
case 3:
digitalWrite(led3, HIGH);
hitungKecepatan();
break;
case 4:
digitalWrite(led4, HIGH);
hitungKecepatan();
break;
case 5:
digitalWrite(led5, HIGH);
hitungKecepatan();
break;
case 6:
digitalWrite(led6, HIGH);
hitungKecepatan();
break;
}
} else if (mode == "halus") {
switch (led) {
case 0:
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
digitalWrite(led6, LOW);
hitungKecepatan();
break;
case 1:
analogWrite(led1, pwm);
hitungKecepatan();
break;
case 2:
analogWrite(led2, pwm);
hitungKecepatan();
break;
case 3:
analogWrite(led3, pwm);
hitungKecepatan();
break;
case 4:
analogWrite(led4, pwm);
hitungKecepatan();
break;
case 5:
analogWrite(led5, pwm);
hitungKecepatan();
break;
case 6:
analogWrite(led6, pwm);
hitungKecepatan();
break;
}
}
}
void setup() {
Serial.begin(9600);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(led5, OUTPUT);
pinMode(led6, OUTPUT);
}
void loop() {
// variasi 1
for (j = 1; j <= 4; j++) {
for (i = 1; i <= 6; i++) {
ledJalan(i);
delay(kecepatan);
}
for (i = 6; i >= 1; i--) {
ledJalan(i);
delay(kecepatan);
}
}
// variasi 2
for (j = 4; j >= 1; j--) {
for (i = 1; i <= 6; i++) {
terang = map(i, 1, 6, 200, 1);
ledJalan(i, "halus", terang);
delay(kecepatan);
}
ledJalan(0);
delay(kecepatan + 100);
for (i = 6; i >= 1; i--) {
terang = map(i, 1, 6, 1, 200);
ledJalan(i, "halus", terang);
delay(kecepatan);
}
ledJalan(0);
delay(kecepatan + 100);
}
}