You are on page 1of 3

#include <Servo.

h>

int LDR = A0; int LDR2 = A1; int dir1 = 8; int pwm1 = 9;

Servo s1; Servo s2; Servo s3; Servo s4;

void setup() {

pinMode(dir1, OUTPUT);

pinMode(pwm1, OUTPUT);

Serial.begin(9600);

s1.attach(2);

s2.attach(3);

s3.attach(4);

s4.attach(5);

s1.write(90);

s2.write(90);

s3.write(90);

s4.write(90); }

void loop() {

motor();

int nilaiLDR = analogRead(LDR);

if (nilaiLDR <= 500){

stp();

satu();

delay(1000);

dua();

delay(1000);

omah();
}

int nilLDR2 = analogRead(LDR2);

if (nilLDR2 <= 500){

stp();

tiga();

delay(3000);

empat();

delay(3000);

omah();

}}

void motor(){ for (i=0; i<=255; i+=1){ digitalWrite(dir1, LOW ); digitalWrite(pwm1, i); } }

void stp(){ digitalWrite(dir1, LOW); digitalWrite(pwm1, LOW); }

void satu(){ //fungsi untuk gerakan arm robot for(int pos=180; pos>=155; pos-=1){ s2.write(pos);
//servo bergerak dari 180 derajat ke 155 derajat delay(20); //jeda 30 ms. } delay(1000); //jeda 1000 ms.

for(int pos=90; pos<150; pos+=1){ s3.write(pos); //servo bergerak dari 90 derajat ke 150 derajat
delay(20); //delay 20 ms }

for(int pos=160; pos>=80; pos-=1){ s4.write(pos); //servo bergerak dari 160 derajat ke 80 derajat
delay(20); //delay 20 ms } delay(1000); //jeda 1000 ms.

for(int pos=155; pos<170; pos+=1){ s2.write(pos); //servo bergerak dari 155 derajat ke 170 derajat
delay(20); //jeda 20 ms } }

void dua(){ for(int pos=90; pos<180; pos+=1){ s1.write(pos); //servo bergerak dari 90 derajat ke 180
derajat delay(25); //delay 20 ms }

for(int pos=170; pos>=130; pos-=1){ s2.write(pos); //servo bergerak dari 170 derajat ke 130 derajat
delay(20); //delay 20 ms }

for(int pos=150; pos>=35; pos-=1){ s3.write(pos); //servo bergerak dari 150 derajat ke 35 derajat
delay(20); //delay 20 ms }

for(int pos=130; pos>=70; pos-=1){ s2.write(pos); //servo bergerak dari 130 derajat ke 70 derajat
delay(20); //delay 20 ms }
for(int pos=80; pos<160; pos+=1){ s4.write(pos); //servo bergerak dari 80 derajat ke 160 derajat
delay(20); //delay 20 ms } delay(1000); //delay 1000 ms. }

void tiga(){ for(int pos=180; pos>=130; pos-=1){ s2.write(pos); //servo bergerak dari 180 derajat ke
130 derajat delay(20); //delay 20 ms } delay(500);

for(int pos=90; pos<100; pos+=1){ s3.write(pos); //servo bergerak dari 90 derajat ke 100 derajat
delay(20); //delay 20 ms }

for(int pos=160; pos>=80; pos-=1){ s4.write(pos); //servo bergerak dari 160 derajat ke 80 derajat
delay(20); //delay 20 ms }

for(int pos=130; pos<150; pos+=1){ s2.write(pos); //servo bergerak dari 130 derajat ke 150 derajat
delay(20); //delay 20 ms } }

void empat(){ for(int pos=90; pos>=0; pos-=1){ s1.write(pos); //servo bergerak dari 90 derajat ke 0
derajat delay(20); //delay 20 ms }

for(int pos=150; pos>=100; pos-=1){ s2.write(pos); //servo bergerak dari 150 derajat ke 100 derajat
delay(20); //delay 20 ms }

for(int pos=100; pos>=35; pos-=1){ s3.write(pos); //servo bergerak dari 100 derajat ke 35 derajat
delay(20); //delay 20 ms }

for(int pos=100; pos>=60; pos-=1){ s2.write(pos); //servo bergerak dari 100 derajat ke 60 derajat
delay(20); //delay 20 ms }

for(int pos=90; pos<160; pos+=1){ s4.write(pos); //servo bergerak dari 90 derajat ke 160 derajat
delay(20); //delay 20 ms } delay(500); //jeda 500 ms. }

void omah(){ for(int pos=70; pos<180; pos+=1){ s2.write(pos); //servo bergerak dari 70 derajat ke 180
derajat delay(20); //delay 20 ms } for(int pos=180; pos>=90; pos-=1){ s1.write(pos); //servo bergerak dari
180 derajat ke 90 derajat delay(20); //delay 20 ms }

for(int pos=65; pos<90; pos+=1){ s3.write(pos); //servo bergerak dari 65 derajat ke 90 derajat
delay(20); //delay 20 ms

You might also like