Coding Mixer dmx miniatur untuk 4 beam

 
Akbar


Tutorial disini tidak kami jelaskan secara lebih detail untuk penyambungan kabel servo nya karna cara perakitan dana bahan masih sama seperti halnya metode perakitan beam miniatur sebelum nya, hanya saja disini kita akan membuat 4 beam (8 servo) 

Akan terapi disini kami akan jelas kan sedikit demi sedikit isi coding cara kerjanya 


Berikut Penjelasan Rinci Kode Arduino

Kode ini dirancang untuk mengontrol 9 servo motor menggunakan 5 tombol dan 1 potensiometer. Setiap tombol berfungsi untuk memilih satu dari lima mode gerakan yang berbeda, sementara potensiometer berfungsi untuk mengatur kecepatan gerakan semua servo.

1. Pin dan Variabel Global

// Define button pins

const int buttonPin1 = A0;  // Pin untuk tombol 1

const int buttonPin2 = A1;  // Pin untuk tombol 2

const int buttonPin3 = A2;  // Pin untuk tombol 3

const int buttonPin4 = A3;  // Pin untuk tombol 4

const int buttonPin5 = A4;  // Pin untuk tombol 5


// Define mode variables

int currentMode = 0;

const int numModes = 5;


// Objek untuk mengontrol 9 servo

Servo servo1;

Servo servo2;

Servo servo3;

Servo servo4;

Servo servo5;

Servo servo6;

Servo servo7;

Servo servo8;

Servo servo9;


// Pin dan variabel untuk potensiometer

const int potPin = A5;  

int maximalpotensio = 1023; // Nilai maksimal pembacaan analog

int minimalpotensio = 0;    // Nilai minimal pembacaan analog

int maximaltime = 1000;     // Kecepatan paling lambat (delay 1000ms)

int minimaltime = 0;        // Kecepatan paling cepat (delay 0ms)


 * const int ...: Mendefinisikan pin-pin untuk tombol dan potensiometer. const membuat nilainya tidak bisa diubah, memastikan kode lebih stabil.

 * Servo ...: Mendeklarasikan objek Servo untuk setiap motor. Ini adalah "identitas" yang akan digunakan untuk memerintah setiap servo.

 * Variabel currentMode dan numModes digunakan untuk melacak mode yang sedang aktif.

 * Variabel potPin, maximalpotensio, minimalpotensio, maximaltime, dan minimaltime digunakan untuk mengonfigurasi potensiometer, yang akan memetakan nilai putaran potensiometer ke nilai delay yang diinginkan.

2. Fungsi setup()

void setup() {

  Serial.begin(9600);

  servo1.attach(3);

  servo2.attach(4);

  servo3.attach(5);

  servo4.attach(6);

  servo5.attach(7);

  servo6.attach(8);  

  servo7.attach(9);  

  servo8.attach(10);   

  servo9.attach(11); 

  (Servo 9 disini adalah kontrol dari asap yang mana servo akan mengatur seberapa asap main nya, jadi untuk servo 9 di kosongkan saja akan tetapi untuk coding biarkan gak usah di ubah) 


  pinMode(buttonPin1, INPUT_PULLUP);

  pinMode(buttonPin2 , INPUT_PULLUP);

  pinMode(buttonPin3, INPUT_PULLUP);

  pinMode(buttonPin4, INPUT_PULLUP);

  pinMode(buttonPin5, INPUT_PULLUP);

}


 * Serial.begin(9600): Menginisialisasi komunikasi serial untuk mengirim data ke komputer, berguna untuk debugging (melihat mode apa yang sedang aktif dan nilai potensiometer).

 * servoX.attach(...): Menghubungkan setiap objek Servo ke pin digital yang sesuai pada Arduino. Ini wajib agar Arduino tahu di pin mana servo terpasang.

3. Fungsi loop() dan checkbutton()

void loop() {

  checkbutton();

  getDelayTimedebug(); // Untuk melihat nilai potensiometer di Serial Monitor

}


void checkbutton() {

  if (digitalRead(buttonPin1) == LOW) {

    delay(10);  

    currentMode = 1;

    Serial.print("Mode changed to: ");

    Serial.println(currentMode);

    while (digitalRead(buttonPin1) == LOW) {}  

    mode1();

  }

  // Logika yang sama untuk buttonPin2 hingga buttonPin5

  // ...

}


 * loop(): Fungsi ini berjalan terus-menerus. Ia terus memanggil checkbutton() untuk mendeteksi penekanan tombol.

 * checkbutton(): Fungsi ini adalah otak dari sistem mode. Ketika sebuah tombol ditekan (LOW), ia akan:

   * Memberi delay(10) untuk mencegah bouncing (pembacaan ganda saat tombol ditekan).

   * Menetapkan nilai currentMode yang baru.

   * Menampilkan mode yang dipilih di Serial Monitor.

   * Memastikan tombol sudah dilepas sebelum menjalankan mode (while (digitalRead(...) == LOW) {}).

   * Memanggil fungsi mode yang bersangkutan (mode1(), mode2(), dst.).

4. Fungsi-Fungsi Gerakan Servo

void move4ServosTogether(Servo &servoA, Servo &servoB, Servo &servoC, Servo &servoD, int startPos, int endPos) {

  int step = (startPos < endPos) ? 1 : -1;

  for (int pos = startPos; pos != endPos + step; pos += step) {

    servoA.write(pos);

    servoB.write(pos);

    servoC.write(pos);

    servoD.write(pos);

    checkbutton();

    delay(getDelayTime()); // Menggunakan delay dari potensiometer

  }

}

// Fungsi-fungsi gerakan lain juga diubah dengan cara yang sama.


 * Fungsi-fungsi ini (move2ServosTogether, move4ServosOpposite, dll.) adalah "gerakan dasar" yang disusun menjadi pola yang lebih rumit di dalam fungsi mode.

 * Penting: Semua parameter delayTime dan panggilan delay(nilai_tetap) dihapus dan diganti dengan delay(getDelayTime()). Ini memastikan kecepatan gerakan servo diatur langsung oleh potensiometer.

 * checkbutton() dipanggil di setiap langkah pergerakan (for loop). Ini memungkinkan Anda untuk mengganti mode kapan saja saat servo sedang bergerak.

5. Fungsi Mode (mode1 sampai mode5)

void mode1() {

Mode1:

  Serial.println("MODE1");

  move4ServosTogether(servo1, servo2,servo3, servo4, 20, 80);

  move4ServosTogether(servo1, servo2,servo3, servo4, 80, 20);

  // ... pola gerakan lainnya

  goto Mode1;           

}

// Fungsi mode lainnya juga diubah dengan cara yang sama.


 * Setiap fungsi mode (mode1, mode2, dst.) berisi urutan panggilan ke fungsi-fungsi gerakan.

 * Perintah goto ModeX; menciptakan loop tak terbatas di dalam setiap fungsi mode. Program akan terus mengulang pola gerakan ini sampai checkbutton() mendeteksi tombol lain ditekan, lalu melompat ke fungsi mode yang baru.

6. Fungsi Potensiometer

int getDelayTime() { 

    int potValue = analogRead(potPin); 

    int delayTimes = map(potValue, minimalpotensio, maximalpotensio, minimaltime, maximaltime); 

    return delayTimes;

}


int getDelayTimedebug() { 

    int potValue = analogRead(potPin); 

    int delayTimes = map(potValue, minimalpotensio, maximalpotensio, minimaltime, maximaltime); 

    Serial.print("Potensiometer: ");

    Serial.print(potValue);

    Serial.print(" -> Delay: ");

    Serial.println(delayTimes);

    return delayTimes;

}


 * getDelayTime(): Fungsi ini membaca nilai analog dari potensiometer (pin A5) yang berkisar antara 0-1023. Fungsi map() lalu mengubah nilai ini menjadi rentang delay yang telah ditentukan (0-1000 ms). Nilai inilah yang dikembalikan dan digunakan oleh delay().

 * getDelayTimedebug(): Fungsi ini sama, tetapi juga mencetak nilai mentah potensiometer dan nilai delay yang di-map ke Serial Monitor. Ini sangat membantu untuk memastikan potensiometer berfungsi dengan benar.

Pastikan pin dan servo sesuai dengan yang sahabat miniatur rangkai , apabila sahabat miniatur mengikuti seperti di coding urutkan servo dan pin seperti berikut

Servo1 pin3                                                            Servo2 pin4                                                            Servo3 pin5                                                            Servo4 pin6                                               

Ke empat servo itu di posisi bawah bisa di mulai dari kanan/ kiri, 

Servo5 pin7                                                            Servo6 pin8                                                            Servo7 pin9                                                            Servo8 pin10

S5-8 ini berada di bagian atas yang akan menggerakkan lampu /led untuk urutan led samakan dengan urutan servo bagian bawah , bila servo bawah dari kanan maka urutan servo atas juga dari kanan.                                                     

Kode Lengkap bisa sahabat miniatur salin di bawah ini

================================

#include <Servo.h>


const int buttonPin1 = A0;  

const int buttonPin2 = A1;  

const int buttonPin3 = A2;  

const int buttonPin4 = A3;  

const int buttonPin5 = A4;  


int currentMode = 0;

const int numModes = 5;


Servo servo1;

Servo servo2;

Servo servo3;

Servo servo4;

Servo servo5;

Servo servo6;

Servo servo7;

Servo servo8;

Servo servo9;


const int potPin = A5;  

int maximalpotensio = 1023;

int minimalpotensio = 0;

int maximaltime = 1000;

int minimaltime = 0;


void setup() {

  Serial.begin(9600);

  servo1.attach(3);

  servo2.attach(4);

  servo3.attach(5);

  servo4.attach(6);

  servo5.attach(7);

  servo6.attach(8);  

  servo7.attach(9);  

  servo8.attach(10);   

  servo9.attach(11); 

  

  pinMode(buttonPin1, INPUT_PULLUP);

  pinMode(buttonPin2 , INPUT_PULLUP);

  pinMode(buttonPin3, INPUT_PULLUP);

  pinMode(buttonPin4, INPUT_PULLUP);

  pinMode(buttonPin5, INPUT_PULLUP);

}


void loop() {

  checkbutton();

  getDelayTimedebug();

}


int getDelayTime() { 

    int potValue = analogRead(potPin); 

    int delayTimes = map(potValue, minimalpotensio, maximalpotensio, minimaltime, maximaltime); 

    return delayTimes;

}


int getDelayTimedebug() { 

    int potValue = analogRead(potPin); 

    int delayTimes = map(potValue, minimalpotensio, maximalpotensio, minimaltime, maximaltime); 

    Serial.print("Potensiometer: ");

    Serial.print(potValue);

    Serial.print(" -> Delay: ");

    Serial.println(delayTimes);

    return delayTimes;

}


void checkbutton() {

  if (digitalRead(buttonPin1) == LOW) {

    delay(10);  

    currentMode = 1;

    Serial.print("Mode changed to: ");

    Serial.println(currentMode);

    while (digitalRead(buttonPin1) == LOW) {}  

    mode1();

  }

  

  if (digitalRead(buttonPin2) == LOW) {

    delay(10);  

    currentMode = 2;

    Serial.print("Mode changed to: ");

    Serial.println(currentMode);

    while (digitalRead(buttonPin2) == LOW) {}  

    mode2();

  }

  

  if (digitalRead(buttonPin3) == LOW) {

    delay(10);  

    currentMode = 3;

    Serial.print("Mode changed to: ");

    Serial.println(currentMode);

    while (digitalRead(buttonPin3) == LOW) {}  

    mode3();

  }

  

  if (digitalRead(buttonPin4) == LOW) {

    delay(10);  

    currentMode = 4;

    Serial.print("Mode changed to: ");

    Serial.println(currentMode);

    while (digitalRead(buttonPin4) == LOW) {}  

    mode4();

  }

    

  if (digitalRead(buttonPin5) == LOW) {

    delay(10);  

    currentMode = 5;

    Serial.print("Mode changed to: ");

    Serial.println(currentMode);

    while (digitalRead(buttonPin5) == LOW) {}  

    mode5();

  } 

}


void move2ServosTogether(Servo &servoA, Servo &servoB, int startPos, int endPos) {

  int step = (startPos < endPos) ? 1 : -1;

  int pos;

  for (pos = startPos; pos != endPos + step; pos += step) {

    servoA.write(pos);

    servoB.write(pos);

    checkbutton();

    delay(getDelayTime());

  }

}

void move4ServosTogether(Servo &servoA, Servo &servoB, Servo &servoC, Servo &servoD, int startPos, int endPos) {

  int step = (startPos < endPos) ? 1 : -1;

  for (int pos = startPos; pos != endPos + step; pos += step) {

    servoA.write(pos);

    servoB.write(pos);

    servoC.write(pos);

    servoD.write(pos);

    checkbutton();

    delay(getDelayTime());

  }

}

void moveServoAlone(Servo &servo, int startPos, int endPos) {

  int step = (startPos < endPos) ? 1 : -1;

  int pos;

  for (pos = startPos; pos != endPos + step; pos += step) {

    servo.write(pos);

    checkbutton();

    delay(getDelayTime());

  }

}


void move2ServosOpposite(Servo &servoA, Servo &servoB, int startPos, int endPos)   {

     int step = (startPos < endPos) ? 1 : -1; 

     int posA;                    

     int posB; 

   for (posA = startPos; posA != endPos + step; posA += step) { 

      posB = startPos + (endPos - posA);       

      servoA.write(posA); 

      servoB.write(posB); 

      checkbutton(); 

      delay(getDelayTime()); 

        } 

    }


void move4ServosOpposite(Servo &servoA, Servo &servoB, Servo &servoC, Servo &servoD, int startPos, int endPos) { 

    int step = (startPos < endPos) ? 1 : -1; 

    int posA, posB, posC, posD; 

    for (int pos = startPos; pos != endPos + step; pos += step) { 

        posA = pos; 

        posB = pos; 

        posC = startPos + (endPos - pos); 

        posD = startPos + (endPos - pos); 

        servoA.write(posA); 

        servoB.write(posB); 

        servoC.write(posC); 

        servoD.write(posD); 

        checkbutton(); 

        delay(getDelayTime()); 

        } 

    }

                

void mode1() {

Mode1:

Serial.println("MODE1");

move4ServosTogether(servo1, servo2,servo3, servo4, 20, 80);

    

move4ServosTogether(servo1, servo2,servo3, servo4, 80, 20);

    

move4ServosTogether(servo1, servo2,servo3, servo4, 20, 50);

    

move4ServosTogether(servo5, servo6,servo7, servo8, 20, 50);

move4ServosTogether(servo5, servo6,servo7, servo8, 50, 20);

    

moveServoAlone(servo5,20, 60);

moveServoAlone(servo6,20, 60);    

moveServoAlone(servo7,20, 60);

moveServoAlone(servo8,20, 60);     

moveServoAlone(servo5,60, 20);

moveServoAlone(servo6,60, 20);   

moveServoAlone(servo7,60, 20);

moveServoAlone(servo8,60, 20);   

moveServoAlone(servo5,20, 60);

moveServoAlone(servo6,20, 60);    

moveServoAlone(servo7,20, 60);

moveServoAlone(servo8,20, 60);     

moveServoAlone(servo5,60, 20);

moveServoAlone(servo6,60, 20);   

moveServoAlone(servo7,60, 20);

moveServoAlone(servo8,60, 20);   

move2ServosTogether(servo5, servo6, 20, 60);                

move2ServosTogether(servo7, servo8, 20, 60);                   

move2ServosTogether(servo5, servo6, 60, 20);                

move2ServosTogether(servo7, servo8, 60, 20);                   

move2ServosTogether(servo5, servo6, 20, 60);                

move2ServosTogether(servo7, servo8, 20, 60);                   

move2ServosTogether(servo5, servo6, 60, 20);                

move2ServosTogether(servo7, servo8, 60, 20);                   

move2ServosTogether(servo5, servo6, 20, 60);                

move2ServosTogether(servo7, servo8, 20, 60);                   

move2ServosTogether(servo5, servo6, 60, 20);                

move2ServosTogether(servo7, servo8, 60, 20);                   

move4ServosTogether(servo5, servo6,servo7, servo8, 20, 50);

move2ServosTogether(servo1, servo3, 50, 20); 

move2ServosTogether(servo5, servo7, 50, 20);      

move2ServosTogether(servo1, servo3, 20, 80); 

move2ServosTogether(servo5, servo7, 20, 60);           

move2ServosTogether(servo1, servo3, 80, 20); 

move2ServosTogether(servo5, servo7, 60, 20);               

move2ServosTogether(servo1, servo3, 20, 80); 

move2ServosTogether(servo5, servo7, 20, 60);           

move2ServosTogether(servo1, servo3, 80, 20); 

move2ServosTogether(servo5, servo7, 60, 20);       

move2ServosTogether(servo1, servo3, 20, 50); 

move2ServosTogether(servo5, servo7, 20, 50);       

        

move2ServosTogether(servo2, servo4, 50, 20); 

move2ServosTogether(servo6, servo8, 50, 20);           

move2ServosTogether(servo2, servo4, 20, 80); 

move2ServosTogether(servo6, servo8, 20, 60);            

move2ServosTogether(servo2, servo4, 80, 20); 

move2ServosTogether(servo6, servo8, 60, 20);               

move2ServosTogether(servo2, servo4, 20, 80); 

move2ServosTogether(servo6, servo8, 20, 60);            

move2ServosTogether(servo2, servo4, 80, 20); 

move2ServosTogether(servo6, servo8, 60, 20);               

move2ServosTogether(servo2, servo4, 20, 50); 

move2ServosTogether(servo6, servo8, 20, 50);           

    

move2ServosTogether(servo2, servo3, 50, 20); 

move2ServosTogether(servo6, servo7, 50, 20);           

move2ServosTogether(servo2, servo3, 20, 80); 

move2ServosTogether(servo6, servo7, 20, 60);            

move2ServosTogether(servo2, servo3, 80, 20); 

move2ServosTogether(servo6, servo7, 60, 20);               

move2ServosTogether(servo2, servo3, 20, 80); 

move2ServosTogether(servo6, servo7, 20, 60);            

move2ServosTogether(servo2, servo3, 80, 20); 

move2ServosTogether(servo6, servo7, 60, 20);               

move2ServosTogether(servo2, servo3, 20, 50); 

move2ServosTogether(servo6, servo7, 20, 50);           

             

move4ServosTogether(servo1, servo2,servo3, servo4, 50, 20);

moveServoAlone(servo4,20, 50);    

moveServoAlone(servo3,20, 50);    

moveServoAlone(servo2,20, 50);   

moveServoAlone(servo1,20, 50);    

move4ServosTogether(servo1, servo2,servo3, servo4, 50, 80);

moveServoAlone(servo1,80, 50);        

moveServoAlone(servo2,80, 50);    

moveServoAlone(servo3,80, 50);      

moveServoAlone(servo4,80, 50);     

moveServoAlone(servo4,20, 50);    

moveServoAlone(servo4,20, 50);     

                                                                          

goto Mode1;           

}


void mode2() {

Mode2:

Serial.println("MODE2");

move4ServosTogether(servo1, servo2,servo3, servo4, 20, 50);    

          

move4ServosTogether(servo5, servo6,servo7, servo8, 20, 60);

move4ServosTogether(servo5, servo6,servo7, servo8, 60, 40);

move4ServosTogether(servo5, servo6,servo7, servo8, 40, 60);

move4ServosTogether(servo5, servo6,servo7, servo8, 60, 40);

move4ServosTogether(servo5, servo6,servo7, servo8, 40, 60);                

move4ServosTogether(servo5, servo6,servo7, servo8, 60, 40);

move4ServosTogether(servo5, servo6,servo7, servo8, 40, 60);

move4ServosTogether(servo5, servo6,servo7, servo8, 60, 40);

move4ServosTogether(servo5, servo6,servo7, servo8, 40, 60);    

move4ServosTogether(servo5, servo6,servo7, servo8, 60, 40);

move4ServosTogether(servo5, servo6,servo7, servo8, 40, 60);

move4ServosTogether(servo5, servo6,servo7, servo8, 60, 40);

move4ServosTogether(servo5, servo6,servo7, servo8, 40, 60);

move4ServosTogether(servo5, servo6,servo7, servo8, 60, 40);

move4ServosTogether(servo5, servo6,servo7, servo8, 40, 60);

move4ServosTogether(servo5, servo6,servo7, servo8, 60, 40);

move4ServosTogether(servo5, servo6,servo7, servo8, 40, 60);

move4ServosTogether(servo5, servo6,servo7, servo8, 60, 40);

move4ServosTogether(servo5, servo6,servo7, servo8, 40, 60);       

move4ServosTogether(servo5, servo6,servo7, servo8, 60, 40);

move4ServosTogether(servo5, servo6,servo7, servo8, 40, 60);

move4ServosTogether(servo5, servo6,servo7, servo8, 60, 40);

move4ServosTogether(servo5, servo6,servo7, servo8, 40, 60);   

move4ServosTogether(servo5, servo6,servo7, servo8, 60, 40);

move4ServosTogether(servo5, servo6,servo7, servo8, 40, 60);    

move4ServosTogether(servo5, servo6,servo7, servo8, 60, 40);

move4ServosTogether(servo5, servo6,servo7, servo8, 40, 60);

move4ServosTogether(servo5, servo6,servo7, servo8, 60, 40);

move4ServosTogether(servo5, servo6,servo7, servo8, 40, 60);   

move4ServosTogether(servo5, servo6,servo7, servo8, 60, 40);

move4ServosTogether(servo5, servo6,servo7, servo8, 40, 60);    

move4ServosTogether(servo5, servo6,servo7, servo8, 60, 40);

move4ServosTogether(servo5, servo6,servo7, servo8, 40, 60);                           

moveServoAlone(servo9,80, 20); 

    

move4ServosOpposite(servo5, servo7,servo6, servo8, 60, 40);    

move4ServosOpposite(servo5, servo7,servo6, servo8, 40, 60);    

move4ServosOpposite(servo5, servo7,servo6, servo8, 60, 40);    

move4ServosOpposite(servo5, servo7,servo6, servo8, 40, 60);    

move4ServosOpposite(servo5, servo7,servo6, servo8, 60, 40);    

move4ServosOpposite(servo5, servo7,servo6, servo8, 40, 60);    

move4ServosOpposite(servo5, servo7,servo6, servo8, 60, 40);    

move4ServosOpposite(servo5, servo7,servo6, servo8, 40, 60);    

move4ServosOpposite(servo5, servo7,servo6, servo8, 60, 40);    

move4ServosOpposite(servo5, servo7,servo6, servo8, 40, 60);    

move4ServosOpposite(servo5, servo7,servo6, servo8, 60, 40);    

move4ServosOpposite(servo5, servo7,servo6, servo8, 40, 60);    

move4ServosOpposite(servo5, servo7,servo6, servo8, 60, 40);    

move4ServosOpposite(servo5, servo7,servo6, servo8, 40, 60);    

move4ServosOpposite(servo5, servo7,servo6, servo8, 60, 40);    

move4ServosOpposite(servo5, servo7,servo6, servo8, 40, 60);    

move4ServosOpposite(servo5, servo7,servo6, servo8, 60, 40);    

move4ServosOpposite(servo5, servo7,servo6, servo8, 40, 60);    

move4ServosOpposite(servo5, servo7,servo6, servo8, 60, 40);    

move4ServosOpposite(servo5, servo7,servo6, servo8, 40, 60);    

move4ServosOpposite(servo5, servo7,servo6, servo8, 60, 40);    

move4ServosOpposite(servo5, servo7,servo6, servo8, 40, 60);    

move4ServosOpposite(servo5, servo7,servo6, servo8, 60, 40);    

move4ServosOpposite(servo5, servo7,servo6, servo8, 40, 60);    

move4ServosOpposite(servo5, servo7,servo6, servo8, 60, 40);    

move4ServosOpposite(servo5, servo7,servo6, servo8, 40, 60);    

move4ServosOpposite(servo5, servo7,servo6, servo8, 60, 40);    

move4ServosOpposite(servo5, servo7,servo6, servo8, 40, 60);    

move4ServosOpposite(servo5, servo7,servo6, servo8, 60, 40);    

move4ServosOpposite(servo5, servo7,servo6, servo8, 40, 60);    

move4ServosOpposite(servo5, servo7,servo6, servo8, 60, 40);    

move4ServosOpposite(servo5, servo7,servo6, servo8, 40, 60);    

move4ServosOpposite(servo5, servo7,servo6, servo8, 60, 40);    

move4ServosOpposite(servo5, servo7,servo6, servo8, 40, 60);    

move4ServosOpposite(servo5, servo7,servo6, servo8, 60, 20);                                                                                                                                           

         

               

goto Mode2;

}


void mode3() {

Mode3:

Serial.println("MODE3");


move4ServosTogether(servo5, servo6,servo7, servo8, 20, 50);    

move4ServosTogether(servo1, servo2,servo3, servo4, 20, 80);        

move4ServosTogether(servo1, servo2,servo3, servo4, 80, 20);        

move4ServosTogether(servo1, servo2,servo3, servo4, 20, 80);        

move4ServosTogether(servo1, servo2,servo3, servo4, 80, 20);        

move4ServosTogether(servo1, servo2,servo3, servo4, 20, 80);        

move4ServosTogether(servo1, servo2,servo3, servo4, 80, 20);        

move4ServosTogether(servo1, servo2,servo3, servo4, 20, 80);        

move4ServosTogether(servo1, servo2,servo3, servo4, 80, 20);        

move4ServosTogether(servo1, servo2,servo3, servo4, 20, 80);        

move4ServosTogether(servo1, servo2,servo3, servo4, 80, 20);        

move4ServosTogether(servo1, servo2,servo3, servo4, 20, 80);        

move4ServosTogether(servo1, servo2,servo3, servo4, 80, 20);        

move4ServosTogether(servo1, servo2,servo3, servo4, 20, 80);        

move4ServosTogether(servo1, servo2,servo3, servo4, 80, 20);        

move4ServosTogether(servo1, servo2,servo3, servo4, 20, 80);        

move4ServosTogether(servo1, servo2,servo3, servo4, 80, 20);        

move4ServosTogether(servo1, servo2,servo3, servo4, 20, 80);        

move4ServosTogether(servo1, servo2,servo3, servo4, 80, 20);        

move4ServosTogether(servo1, servo2,servo3, servo4, 20, 80);        

move4ServosTogether(servo1, servo2,servo3, servo4, 80, 20);        

move4ServosTogether(servo1, servo2,servo3, servo4, 20, 80);        

move4ServosTogether(servo1, servo2,servo3, servo4, 80, 20);        

move4ServosTogether(servo1, servo2,servo3, servo4, 20, 80);        

move4ServosTogether(servo1, servo2,servo3, servo4, 80, 20);        

move4ServosTogether(servo1, servo2,servo3, servo4, 20, 80);        

move4ServosTogether(servo1, servo2,servo3, servo4, 80, 20);        

move4ServosTogether(servo1, servo2,servo3, servo4, 20, 80);        

move4ServosTogether(servo1, servo2,servo3, servo4, 80, 20);        

move4ServosTogether(servo1, servo2,servo3, servo4, 20, 80);        

move4ServosTogether(servo1, servo2,servo3, servo4, 80, 20);        

move4ServosTogether(servo1, servo2,servo3, servo4, 20, 80);        

move4ServosTogether(servo1, servo2,servo3, servo4, 80, 20);        

move4ServosTogether(servo1, servo2,servo3, servo4, 20, 80);        

move4ServosTogether(servo1, servo2,servo3, servo4, 80, 20);        

move4ServosTogether(servo1, servo2,servo3, servo4, 20, 80);        

move4ServosTogether(servo1, servo2,servo3, servo4, 80, 20);        

move4ServosTogether(servo1, servo2,servo3, servo4, 20, 80);        

move4ServosTogether(servo1, servo2,servo3, servo4, 80, 20);        

move4ServosTogether(servo1, servo2,servo3, servo4, 20, 80);        

move4ServosTogether(servo1, servo2,servo3, servo4, 80, 20);        

move4ServosTogether(servo1, servo2,servo3, servo4, 20, 80);        

move4ServosTogether(servo1, servo2,servo3, servo4, 80, 20);        

move4ServosTogether(servo1, servo2,servo3, servo4, 20, 80);        

move4ServosTogether(servo1, servo2,servo3, servo4, 80, 20);        

move4ServosTogether(servo1, servo2,servo3, servo4, 20, 80);        

move4ServosTogether(servo1, servo2,servo3, servo4, 80, 20);        

move4ServosTogether(servo1, servo2,servo3, servo4, 20, 80);        

move4ServosTogether(servo1, servo2,servo3, servo4, 80, 20);   

         

move4ServosOpposite(servo1, servo2,servo3, servo4, 20, 80);        

move4ServosOpposite(servo1, servo2,servo3, servo4, 80, 20);        

move4ServosOpposite(servo1, servo2,servo3, servo4, 20, 80);        

move4ServosOpposite(servo1, servo2,servo3, servo4, 80, 20);        

move4ServosOpposite(servo1, servo2,servo3, servo4, 20, 80);        

move4ServosOpposite(servo1, servo2,servo3, servo4, 80, 20);        

move4ServosOpposite(servo1, servo2,servo3, servo4, 20, 80);        

move4ServosOpposite(servo1, servo2,servo3, servo4, 80, 20);        

move4ServosOpposite(servo1, servo2,servo3, servo4, 20, 80);        

move4ServosOpposite(servo1, servo2,servo3, servo4, 80, 20);        

move4ServosOpposite(servo1, servo2,servo3, servo4, 20, 80);        

move4ServosOpposite(servo1, servo2,servo3, servo4, 80, 20);        

move4ServosOpposite(servo1, servo2,servo3, servo4, 20, 80);        

move4ServosOpposite(servo1, servo2,servo3, servo4, 80, 20);        

move4ServosOpposite(servo1, servo2,servo3, servo4, 20, 80);        

move4ServosOpposite(servo1, servo2,servo3, servo4, 80, 20);        

move4ServosOpposite(servo1, servo2,servo3, servo4, 20, 80);        

move4ServosOpposite(servo1, servo2,servo3, servo4, 80, 20);        

                                                                                                                                                                                                                                                                                                                                                                                                                                                        

move2ServosOpposite(servo1,servo3, 20, 80);        

move2ServosOpposite(servo2,servo4, 20, 80);                            

move2ServosOpposite(servo1,servo3, 80, 20);        

move2ServosOpposite(servo2,servo4, 80, 20);                            

move2ServosOpposite(servo1,servo3, 20, 80);        

move2ServosOpposite(servo2,servo4, 20, 80);                            

move2ServosOpposite(servo1,servo3, 80, 20);        

move2ServosOpposite(servo2,servo4, 80, 20);             

move2ServosOpposite(servo1,servo3, 20, 80);        

move2ServosOpposite(servo2,servo4, 20, 80);                            

move2ServosOpposite(servo1,servo3, 80, 20);        

move2ServosOpposite(servo2,servo4, 80, 20);         

move2ServosOpposite(servo1,servo3, 20, 80);        

move2ServosOpposite(servo2,servo4, 20, 80);                            

move2ServosOpposite(servo1,servo3, 80, 20);        

move2ServosOpposite(servo2,servo4, 80, 20);     

move2ServosOpposite(servo1,servo3, 20, 80);        

move2ServosOpposite(servo2,servo4, 20, 80);                            

move2ServosOpposite(servo1,servo3, 80, 20);        

move2ServosOpposite(servo2,servo4, 80, 20);         

move2ServosOpposite(servo1,servo3, 20, 80);        

move2ServosOpposite(servo2,servo4, 20, 80);                            

move2ServosOpposite(servo1,servo3, 80, 20);        

move2ServosOpposite(servo2,servo4, 80, 20);         

move2ServosOpposite(servo1,servo3, 20, 80);        

move2ServosOpposite(servo2,servo4, 20, 80);                            

move2ServosOpposite(servo1,servo3, 80, 20);        

move2ServosOpposite(servo2,servo4, 80, 20);         

move2ServosOpposite(servo1,servo3, 20, 80);        

move2ServosOpposite(servo2,servo4, 20, 80);                            

move2ServosOpposite(servo1,servo3, 80, 20);        

move2ServosOpposite(servo2,servo4, 80, 20);         

move2ServosOpposite(servo1,servo3, 20, 80);        

move2ServosOpposite(servo2,servo4, 20, 80);                            

move2ServosOpposite(servo1,servo3, 80, 20);        

move2ServosOpposite(servo2,servo4, 80, 20);     

move2ServosOpposite(servo1,servo3, 20, 80);        

move2ServosOpposite(servo2,servo4, 20, 80);                            

move2ServosOpposite(servo1,servo3, 80, 20);        

move2ServosOpposite(servo2,servo4, 80, 20);         

move2ServosOpposite(servo1,servo3, 20, 80);        

move2ServosOpposite(servo2,servo4, 20, 80);                            

move2ServosOpposite(servo1,servo3, 80, 20);        

move2ServosOpposite(servo2,servo4, 80, 20);         

move2ServosOpposite(servo1,servo3, 20, 80);        

move2ServosOpposite(servo2,servo4, 20, 80);                            

move2ServosOpposite(servo1,servo3, 80, 20);        

move2ServosOpposite(servo2,servo4, 80, 20);     

                

goto Mode3;

}


void mode4() {

Mode4:

Serial.println("MODE4");

move4ServosTogether(servo5, servo6,servo7, servo8, 20, 50);      

                                        

move4ServosOpposite(servo1, servo2,servo3, servo4, 20, 80);

        

move4ServosTogether(servo5, servo6,servo7, servo8, 50, 70);                         

move4ServosOpposite(servo1, servo2,servo3, servo4, 80, 20);        

move4ServosTogether(servo5, servo6,servo7, servo8, 70, 50);        

move4ServosOpposite(servo1, servo2,servo3, servo4, 20, 80);        

move4ServosTogether(servo5, servo6,servo7, servo8, 50, 70);      

move4ServosOpposite(servo1, servo2,servo3, servo4, 80, 20);        

move4ServosTogether(servo5, servo6,servo7, servo8, 70, 50);          

move4ServosOpposite(servo1, servo2,servo3, servo4, 20, 80);        

move4ServosTogether(servo5, servo6,servo7, servo8, 50, 70);  

move4ServosOpposite(servo1, servo2,servo3, servo4, 80, 20);        

move4ServosTogether(servo5, servo6,servo7, servo8, 70, 50); 

move4ServosOpposite(servo1, servo2,servo3, servo4, 20, 80);        

move4ServosTogether(servo5, servo6,servo7, servo8, 50, 70); 

move4ServosOpposite(servo1, servo2,servo3, servo4, 80, 20);        

move4ServosTogether(servo5, servo6,servo7, servo8, 70, 50); 

    

    

move2ServosTogether( servo3,servo2, 20, 50);   

move2ServosOpposite(servo1,servo4, 80, 20);      

                  

moveServoAlone(servo5,50, 90);

moveServoAlone(servo6,50, 90);

moveServoAlone(servo7,50, 90);

moveServoAlone(servo8,50, 90);

move2ServosOpposite(servo1,servo4, 20, 80);     

move2ServosOpposite(servo1,servo4, 80, 20);         

move2ServosOpposite(servo1,servo4, 20, 80);     

move2ServosOpposite(servo1,servo4, 80, 20);       

move2ServosTogether (servo1,servo4, 20, 50);          

move4ServosOpposite( servo5, servo7, servo6, servo8, 90, 70);       

move4ServosOpposite( servo5, servo7, servo6, servo8, 70, 50);       

move4ServosOpposite( servo5, servo7, servo6, servo8, 50, 70);       

move4ServosOpposite( servo5, servo7, servo6, servo8, 70, 50);       

move4ServosOpposite( servo5, servo7, servo6, servo8, 50, 70);       

move4ServosOpposite( servo5, servo7, servo6, servo8, 70, 50);       

move4ServosOpposite( servo5, servo7, servo6, servo8, 50, 70);       

move4ServosOpposite( servo5, servo7, servo6, servo8, 70, 50);       

move4ServosOpposite( servo5, servo7, servo6, servo8, 50, 70);       

move4ServosOpposite( servo5, servo7, servo6, servo8, 70, 50);       

move4ServosOpposite( servo5, servo7, servo6, servo8, 50, 70);       

move4ServosOpposite( servo5, servo7, servo6, servo8, 70, 50);       

move4ServosOpposite( servo5, servo7, servo6, servo8, 50, 70);       

move4ServosOpposite( servo5, servo7, servo6, servo8, 70, 50);       

move4ServosOpposite( servo5, servo7, servo6, servo8, 50, 70);       

move4ServosOpposite( servo5, servo7, servo6, servo8, 70, 50);       

move4ServosOpposite( servo5, servo7, servo6, servo8, 50, 70);       

move4ServosOpposite( servo5, servo7, servo6, servo8, 70, 50);       

move4ServosOpposite( servo5, servo7, servo6, servo8, 50, 70);       

move4ServosOpposite( servo5, servo7, servo6, servo8, 70, 50);       

move4ServosOpposite( servo5, servo7, servo6, servo8, 50, 70);       

move4ServosOpposite( servo5, servo7, servo6, servo8, 70, 50);       

move4ServosOpposite( servo5, servo7, servo6, servo8, 50, 70);       

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            

moveServoAlone(servo9,10, 180);


    

goto Mode4;

}



void mode5() {

Mode5:

Serial.println("MODE5");


move4ServosTogether(servo5, servo6,servo7, servo8, 20, 50);   

        

move4ServosTogether(servo1, servo2,servo3, servo4, 20, 50);

     

moveServoAlone(servo9,10, 180);

move4ServosTogether(servo5, servo6,servo7, servo8, 50, 20);   

                

move4ServosOpposite(servo1, servo2,servo3, servo4, 50, 20);            

move4ServosOpposite(servo1, servo2,servo3, servo4, 20, 80);   

move4ServosOpposite(servo1, servo2,servo3, servo4, 80, 20);       

move4ServosOpposite(servo1, servo2,servo3, servo4, 20, 80);   

move4ServosOpposite(servo1, servo2,servo3, servo4, 80, 20);       

move4ServosOpposite(servo1, servo2,servo3, servo4, 20, 80);   

move4ServosOpposite(servo1, servo2,servo3, servo4, 80, 20);       

move4ServosOpposite(servo1, servo2,servo3, servo4, 20, 80);   

move4ServosOpposite(servo1, servo2,servo3, servo4, 80, 20);       

move4ServosOpposite(servo1, servo2,servo3, servo4, 20, 80);   

move4ServosOpposite(servo1, servo2,servo3, servo4, 80, 20);       

move4ServosOpposite(servo1, servo2,servo3, servo4, 20, 80);   

move4ServosOpposite(servo1, servo2,servo3, servo4, 80, 20);       

move4ServosOpposite(servo1, servo2,servo3, servo4, 20, 80);   

move4ServosOpposite(servo1, servo2,servo3, servo4, 80, 20);       

move4ServosOpposite(servo1, servo2,servo3, servo4, 20, 80);   

move4ServosOpposite(servo1, servo2,servo3, servo4, 80, 20);       

move4ServosOpposite(servo1, servo2,servo3, servo4, 20, 80);   

move4ServosOpposite(servo1, servo2,servo3, servo4, 80, 20);       

move4ServosOpposite(servo1, servo2,servo3, servo4, 20, 80);   

move4ServosOpposite(servo1, servo2,servo3, servo4, 80, 20);       

move4ServosOpposite(servo1, servo2,servo3, servo4, 20, 80);   

move4ServosOpposite(servo1, servo2,servo3, servo4, 80, 20);       

move4ServosOpposite(servo1, servo2,servo3, servo4, 20, 80);   

move4ServosOpposite(servo1, servo2,servo3, servo4, 80, 20);       

move4ServosOpposite(servo1, servo2,servo3, servo4, 20, 80);   

move4ServosOpposite(servo1, servo2,servo3, servo4, 80, 20);       

move4ServosOpposite(servo1, servo2,servo3, servo4, 20, 80);   

move4ServosOpposite(servo1, servo2,servo3, servo4, 80, 20);       

move4ServosOpposite(servo1, servo2,servo3, servo4, 20, 80);   

move4ServosOpposite(servo1, servo2,servo3, servo4, 80, 20);       

move4ServosOpposite(servo1, servo2,servo3, servo4, 20, 80);   

move4ServosOpposite(servo1, servo2,servo3, servo4, 80, 20);       

move4ServosOpposite(servo1, servo2,servo3, servo4, 20, 80);   

move4ServosOpposite(servo1, servo2,servo3, servo4, 80, 20);       

move4ServosOpposite(servo1, servo2,servo3, servo4, 20, 80);   

move4ServosOpposite(servo1, servo2,servo3, servo4, 80, 20);       

move4ServosOpposite(servo1, servo2,servo3, servo4, 20, 80);   

move4ServosOpposite(servo1, servo2,servo3, servo4, 80, 20);       

move4ServosOpposite(servo1, servo2,servo3, servo4, 20, 80);   

move4ServosOpposite(servo1, servo2,servo3, servo4, 80, 20);       

move4ServosOpposite(servo1, servo2,servo3, servo4, 20, 80);   

move4ServosOpposite(servo1, servo2,servo3, servo4, 80, 20);       

move4ServosOpposite(servo1, servo2,servo3, servo4, 20, 80);   

move4ServosOpposite(servo1, servo2,servo3, servo4, 80, 20);       

move4ServosOpposite(servo1, servo2,servo3, servo4, 20, 80);   

move4ServosOpposite(servo1, servo2,servo3, servo4, 80, 20);       

move4ServosOpposite(servo1, servo2,servo3, servo4, 20, 80);   

move4ServosOpposite(servo1, servo2,servo3, servo4, 80, 20);       

move4ServosOpposite(servo1, servo2,servo3, servo4, 20, 80);   

move4ServosOpposite(servo1, servo2,servo3, servo4, 80, 20);       

move4ServosOpposite(servo1, servo2,servo3, servo4, 20, 80);   

move4ServosOpposite(servo1, servo2,servo3, servo4, 80, 20);       

move4ServosOpposite(servo1, servo2,servo3, servo4, 20, 80);   

move4ServosOpposite(servo1, servo2,servo3, servo4, 80, 20);       

move4ServosOpposite(servo1, servo2,servo3, servo4, 20, 80);   

move4ServosOpposite(servo1, servo2,servo3, servo4, 80, 20);       

move4ServosOpposite(servo1, servo2,servo3, servo4, 20, 80);   

move4ServosOpposite(servo1, servo2,servo3, servo4, 80, 20);       

move4ServosOpposite(servo1, servo2,servo3, servo4, 20, 80);   

move4ServosOpposite(servo1, servo2,servo3, servo4, 80, 20);       

move4ServosOpposite(servo1, servo2,servo3, servo4, 20, 80);   

move4ServosOpposite(servo1, servo2,servo3, servo4, 80, 20);       

                                                                                                            

move4ServosOpposite(servo1, servo3,servo2, servo4, 20, 80);   

move4ServosOpposite(servo1, servo3,servo2, servo4, 80, 20);       

move4ServosOpposite(servo1, servo3,servo2, servo4, 20, 80);   

move4ServosOpposite(servo1, servo3,servo2, servo4, 80, 20);       

move4ServosOpposite(servo1, servo3,servo2, servo4, 20, 80);   

move4ServosOpposite(servo1, servo3,servo2, servo4, 80, 20);       

move4ServosOpposite(servo1, servo3,servo2, servo4, 20, 80);   

move4ServosOpposite(servo1, servo3,servo2, servo4, 80, 20);       

move4ServosOpposite(servo1, servo3,servo2, servo4, 20, 80);   

move4ServosOpposite(servo1, servo3,servo2, servo4, 80, 20);       

move4ServosOpposite(servo1, servo3,servo2, servo4, 20, 80);   

move4ServosOpposite(servo1, servo3,servo2, servo4, 80, 20);       

move4ServosOpposite(servo1, servo3,servo2, servo4, 20, 80);   

move4ServosOpposite(servo1, servo3,servo2, servo4, 80, 20);       

move4ServosOpposite(servo1, servo3,servo2, servo4, 20, 80);   

move4ServosOpposite(servo1, servo3,servo2, servo4, 80, 20);       

move4ServosOpposite(servo1, servo3,servo2, servo4, 20, 80);   

move4ServosOpposite(servo1, servo3,servo2, servo4, 80, 20);       

move4ServosOpposite(servo1, servo3,servo2, servo4, 20, 80);   

move4ServosOpposite(servo1, servo3,servo2, servo4, 80, 20);       

move4ServosOpposite(servo1, servo3,servo2, servo4, 20, 80);   

move4ServosOpposite(servo1, servo3,servo2, servo4, 80, 20);       

move4ServosOpposite(servo1, servo3,servo2, servo4, 20, 80);   

move4ServosOpposite(servo1, servo3,servo2, servo4, 80, 20);       

move4ServosOpposite(servo1, servo3,servo2, servo4, 20, 80);   

move4ServosOpposite(servo1, servo3,servo2, servo4, 80, 20);       

move4ServosOpposite(servo1, servo3,servo2, servo4, 20, 80);   

move4ServosOpposite(servo1, servo3,servo2, servo4, 80, 20);       

move4ServosOpposite(servo1, servo3,servo2, servo4, 20, 80);   

move4ServosOpposite(servo1, servo3,servo2, servo4, 80, 20);       

moveServoAlone(servo9,10, 180);

moveServoAlone(servo9,10, 180);

        

goto Mode5;

=============




Dengan coding di atas sahabat miniatur bisa menggerakkan servo dengan 5 button (tombol) untuk memisah gerakan gerakan nya dan mengatur kecepatan dengan potensio sesuai selera kecepatan dan lambatnya

Bila sahabat miniatur mau menggabungkan dengan 2 modul maka permainan beam akan lebih bagus karna kita dapat menyesuaikan  beam dengan gerakan dan sorot led yang lebih estetik


#Arduinoproject #membuatbeamminiatur #movingheadbeamrakitan #Elektronika #Arduino #DMX512 #Miniatur #DIY #AkbarAudio95 #Lighting #Tutorial

Komentar

Postingan populer dari blog ini

Tutorial membuat mixer beam miniatur

Coding arduino untuk beam

Membuat strobo dan whal waser dari led ws