#include <Servo.h>
int lampuStop = 12, lampuStart = 11 ;
int botol1 = 10, botol2 = 9, botol3 = 8, botol4 = 7, botol5 = 6;
int tombolStart = 5, tombolStop = 4, Sensor1 = 3, Sensor2 = 2;
int mulai = 0, jalan = 0;
// setting pin dan kondisi
Servo arm; // Create a "Servo" object called "arm"
float pos = 0.0; // Variable where the arm's position will be stored (in degrees)
float step = 8.0; // Variabel yang digunakan untuk langkah posisi lengan
void setup() {
//setting untuk output
pinMode(lampuStop, OUTPUT);
pinMode(lampuStart, OUTPUT);
pinMode(botol1, OUTPUT);
pinMode(botol2, OUTPUT);
pinMode(botol3, OUTPUT);
pinMode(botol4, OUTPUT);
pinMode(botol5, OUTPUT);
//setting untuk input
pinMode(tombolStart, INPUT);
pinMode(tombolStop, INPUT);
pinMode(Sensor1, INPUT);
pinMode(Sensor2, INPUT);
//setting untuk kondisi aktif led
digitalWrite(lampuStop, HIGH);
digitalWrite(lampuStart, HIGH);
digitalWrite(botol1, HIGH);
digitalWrite(botol2, HIGH);
digitalWrite(botol3, HIGH);
digitalWrite(botol4, HIGH);
digitalWrite(botol5, HIGH);
//setting untuk kondisi aktif button
digitalWrite(tombolStart, HIGH);
digitalWrite(tombolStop, HIGH);
digitalWrite(Sensor1, HIGH);
digitalWrite(Sensor2, HIGH);
pinMode(A1, INPUT_PULLUP); // Set the A1 pin to a pushbutton in pullup mode
pinMode(A2, INPUT_PULLUP); // Set the A1 pin to a pushbutton in pullup mode
arm.attach(1); // Attache the arm to the pin 2
arm.write(pos); // Initialize the arm's position to 0 (leftmost)
}
void loop() {
int start = digitalRead(tombolStart); //setting pushbutton start
int stop = digitalRead(tombolStop); //setting pushbutton stop
int berurutan = digitalRead(Sensor1);
int counterUp = digitalRead(Sensor2); //setting pushbutton untuk counter up
jalan = constrain(jalan, 0, 5); // setting range counter
if (start == LOW) {
mulai++; //program berjalan
digitalWrite(lampuStart, LOW);
digitalWrite(lampuStop, HIGH);
delay(300);
}
if (stop == LOW) {
mulai = 0; //program berhenti
jalan = 0;
digitalWrite(lampuStart, HIGH);
digitalWrite(lampuStop, LOW);
digitalWrite(botol1, HIGH);
digitalWrite(botol2, HIGH);
digitalWrite(botol3, HIGH);
digitalWrite(botol4, HIGH);
digitalWrite(botol5, HIGH);
delay(300);
}
else { //program dan led mati
digitalWrite(botol1, HIGH);
digitalWrite(botol2, HIGH);
digitalWrite(botol3, HIGH);
digitalWrite(botol4, HIGH);
digitalWrite(botol5, HIGH);
}
if (mulai > 0) { //kondisi ketika program berjalan
if(counterUp == LOW) { //kondisi push button count up
jalan++; //count up agar nyala led berpindah
delay(300);
}
//if( turun == LOW){ //kondisi push button count down
//jalan--; //count down agar nyala led berpindah
//delay(300);
//}
if (jalan == 1) { //kondisi led 1 berdasarkan nilai dari push button
digitalWrite(botol1, LOW);
}
if (jalan == 2) { //kondisi led 2 berdasarkan nilai dari push button
digitalWrite(botol1, LOW);
digitalWrite(botol2, LOW);
}
if (jalan == 3) { //kondisi led 3 berdasarkan nilai dari push button
digitalWrite(botol1, LOW);
digitalWrite(botol2, LOW);
digitalWrite(botol3, LOW);
}
if (jalan == 4) { //kondisi led 4 berdasarkan nilai dari push button
digitalWrite(botol1, LOW);
digitalWrite(botol2, LOW);
digitalWrite(botol3, LOW);
digitalWrite(botol4, LOW);
}
if (jalan == 5) { //kondisi led 4 berdasarkan nilai dari push button
digitalWrite(botol1, LOW);
digitalWrite(botol2, LOW);
digitalWrite(botol3, LOW);
digitalWrite(botol4, LOW);
digitalWrite(botol5, LOW);
}
}
if (mulai > 0) {
if(berurutan == LOW) {
digitalWrite(botol1, LOW);
digitalWrite(botol2, HIGH);
digitalWrite(botol3, HIGH);
digitalWrite(botol4, HIGH);
digitalWrite(botol5, HIGH);
delay(3000);
digitalWrite(botol1, HIGH);
digitalWrite(botol2, LOW);
digitalWrite(botol3, HIGH);
digitalWrite(botol4, HIGH);
digitalWrite(botol5, HIGH);
delay(3000);
digitalWrite(botol1, HIGH);
digitalWrite(botol2, HIGH);
digitalWrite(botol3, LOW);
digitalWrite(botol4, HIGH);
digitalWrite(botol5, HIGH);
delay(3000);
digitalWrite(botol1, HIGH);
digitalWrite(botol2, HIGH);
digitalWrite(botol3, HIGH);
digitalWrite(botol4, LOW);
digitalWrite(botol5, HIGH);
delay(3000);
digitalWrite(botol1, HIGH);
digitalWrite(botol2, HIGH);
digitalWrite(botol3, HIGH);
digitalWrite(botol4, HIGH);
digitalWrite(botol5, LOW);
delay(3000);
}
else {
digitalWrite(botol1, HIGH);
digitalWrite(botol2, HIGH);
digitalWrite(botol3, HIGH);
digitalWrite(botol4, HIGH);
digitalWrite(botol5, HIGH);
}
}
if (!digitalRead(A1)) // Check for the yellow button input
{
if (pos>0) // Check that the position won't go lower than 0°
{
arm.write(pos); // Set the arm's position to "pos" value
pos-=step; // Decrement "pos" of "step" value
delay(5); // Wait 5ms for the arm to reach the position
}
}
if (!digitalRead(A2)) // Check for the blue button input
{
if (pos<91) // Check that the position won't go higher than 180°
{
arm.write(pos); // Set the arm's position to "pos" value
pos+=step; // Increment "pos" of "step" value
delay(5); // Wait 5ms for the arm to reach the position
}
}
}