Mengendalikan Lengan Robot Otomatis dengan Arduino Uno


 

List Program:

#include <Servo.h>


Servo myservo1; // create servo object to control a servo

Servo myservo2;

Servo myservo3;

Servo myservo4;


// twelve servo objects can be created on most boards


int pos1 = 0; // variabel menentukan posisi motor servo

int pos2 = 0;

int pos3 = 0;

int pos4 = 0;


void setup() {

  myservo1.attach(6); // pin keluaran arduino

  myservo2.attach(7);

  myservo3.attach(5);

  myservo4.attach(9);

}


void loop() {

  //langkah 1

  for (pos3 = 30; pos3 <= 120; pos3 += 1) { // berputar dari 0 derajat ke 180 derajat

    // langkah dalam 1 derajat

    myservo3.write(pos3); // memberitahukan motor servo untuk ke posisi sesuai variabel 'pos'

    delay(15); // tunda 15ms untuk bergerak posisi ke 180 derajat

  }

  delay(1000);


  //langkah 2

  for (pos2 = 90; pos2 <= 150; pos2 += 1) { // berputar dari 0 derajat ke 180 derajat

    // langkah dalam 1 derajat

    myservo2.write(pos2); // memberitahukan motor servo untuk ke posisi sesuai variabel 'pos'

    delay(15); // tunda 15ms untuk bergerak posisi ke 180 derajat

  }

  delay(1000);


  for (pos3 = 120; pos3 >= 60; pos3 -= 1) { // berputar dari 180 derajat ke 0 derajat

    myservo3.write(pos3); // memberitahukan motor servo untuk ke posisi sesuai variabel 'pos'

    delay(15); // tunda 15ms untuk bergerak posisi ke 0 derajat

  }

  delay(1000);

  

  //langkah 3

  for (pos4 = 60; pos4 <= 90; pos4 += 1) { // berputar dari 0 derajat ke 180 derajat

    // langkah dalam 1 derajat

    myservo4.write(pos4); // memberitahukan motor servo untuk ke posisi sesuai variabel 'pos'

    delay(15); // tunda 15ms untuk bergerak posisi ke 180 derajat

  }

  delay(1000);

  

    for (pos3 = 60; pos3 <= 120; pos3 += 1) { // berputar dari 0 derajat ke 180 derajat

    // langkah dalam 1 derajat

    myservo3.write(pos3); // memberitahukan motor servo untuk ke posisi sesuai variabel 'pos'

    delay(15); // tunda 15ms untuk bergerak posisi ke 180 derajat

  }

  delay(1000);

  

  //langkah 4

  for (pos2 = 150; pos2 >= 90; pos2 -= 1) { // berputar dari 180 derajat ke 0 derajat

    myservo2.write(pos2); // memberitahukan motor servo untuk ke posisi sesuai variabel 'pos'

    delay(15); // tunda 15ms untuk bergerak posisi ke 0 derajat

  }

delay(1000);


  //langkah 5

  for (pos1 = 15; pos1 <= 120; pos1 += 1) { // berputar dari 0 derajat ke 180 derajat

    // langkah dalam 1 derajat

    myservo1.write(pos1); // memberitahukan motor servo untuk ke posisi sesuai variabel 'pos'

    delay(15); // tunda 15ms untuk bergerak posisi ke 180 derajat

  }

  delay(1000);

  

  //langkah 6

  for (pos2 = 90; pos2 <= 150; pos2 += 1) { // berputar dari 0 derajat ke 180 derajat

    // langkah dalam 1 derajat

    myservo2.write(pos2); // memberitahukan motor servo untuk ke posisi sesuai variabel 'pos'

    delay(15); // tunda 15ms untuk bergerak posisi ke 180 derajat

  }

delay(1000);

  

  for (pos3 = 120; pos3 >= 60; pos3 -= 1) { // berputar dari 180 derajat ke 0 derajat

    myservo3.write(pos3); // memberitahukan motor servo untuk ke posisi sesuai variabel 'pos'

    delay(15); // tunda 15ms untuk bergerak posisi ke 0 derajat

  }

  delay(1000);

  

  //langkah 7

  for (pos4 = 90; pos4 >= 60; pos4 -= 1) { // berputar dari 180 derajat ke 0 derajat

    myservo4.write(pos4); // memberitahukan motor servo untuk ke posisi sesuai variabel 'pos'

    delay(15); // tunda 15ms untuk bergerak posisi ke 0 derajat

  }

  delay(1000);

  

      for (pos3 = 60; pos3 <= 120; pos3 += 1) { // berputar dari 0 derajat ke 180 derajat

    // langkah dalam 1 derajat

    myservo3.write(pos3); // memberitahukan motor servo untuk ke posisi sesuai variabel 'pos'

    delay(15); // tunda 15ms untuk bergerak posisi ke 180 derajat

  }

  delay(1000);

  

  //langkah 8

  for (pos2 = 150; pos2 >= 90; pos2 -= 1) { // berputar dari 180 derajat ke 0 derajat

    myservo2.write(pos2); // memberitahukan motor servo untuk ke posisi sesuai variabel 'pos'

    delay(15); // tunda 15ms untuk bergerak posisi ke 0 derajat

  }

  delay(1000);

  

  //langkah 9

  for (pos3 = 120; pos3 >= 30; pos3 -= 1) { // berputar dari 180 derajat ke 0 derajat

    myservo3.write(pos3); // memberitahukan motor servo untuk ke posisi sesuai variabel 'pos'

    delay(15); // tunda 15ms untuk bergerak posisi ke 0 derajat

  }

  delay(1000);

  

  //langkah 10

  for (pos1 = 120; pos1 >= 15; pos1 -= 1) { // berputar dari 180 derajat ke 0 derajat

    myservo1.write(pos1); // memberitahukan motor servo untuk ke posisi sesuai variabel 'pos'

    delay(15); // tunda 15ms untuk bergerak posisi ke 0 derajat

  }

  delay(1000);

}


Comments