Coding Mixer dmx miniatur untuk 4 beam
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;
}
=============
![]() |
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
Posting Komentar