-->

Bandul Elektromagnetik (Electromagnetic Pendulum) dengan Arduino

 Bandul Elektromagnetik (Electromagnetic Pendulum) dengan Arduino

Pendulum electromagnetic arduino
Bandul Elektromagnetik

Pendulum elektromagnetik adalah pendulum yang bergerak dengan memanfaatkan medan magnet akibat arus listrik yang mengalir pada kumparan. Gaya tolak menolak antara medan magnet yang dihasilkan kumparan berarus dengan batu magnet pada lengan pendulum menganggu kesetimbangan lengan pendulum sehingga terjadilah osilasi.

Untuk membuat bandul elektromagnetik diperlukan dua bagian komponen utama agar bandul dapat berosilasi. Bagian komponen pertama yaitu bandul yang dapat bergerak dengan lancar yang pada ujung bandul tersebut terdapat magnet. Magnet pada ujung bandul ini berguna agar bandul dapat berinteraksi dengan medan magnetik yang dihasilkan oleh kumparan yang membuat bandul dapat berosilasi. Bagian komponen kedua yang diperlukan yaitu kumparan kawat. Kumparan kawat digunakan untuk menghasilkan medan magnet elektromagnetik untuk menggerakkan bandul.

Osilasi Bandul

Prinsip dasar osilasi bandul adalah adanya gaya pemulih yang mengembalikan bandul ke keadaan setimbangnya dalam hal ini yaitu titik terendah bandul. Jadi untuk membuat bandul berosilasi diperlukan gaya pemulih. Pada bandul biasa, gaya pemulih dari bandul adalah gaya gravitasi. Bandul elektromagnetik tentu saja juga harus mempunyai gaya pemulih dari gravitasi, karena kita tidak bisa membuat bandul dengan benda tidak bermassa, sehingga gaya dari gravitasi tidak bisa diabaikan.

Perbedaan bandul elektromagnetik dengan bandul biasa adalah adanya gaya tambahan untuk membuat bandul bergerak, yaitu tentu saja gaya yang ditimbulakan oleh interaksi medan magnetik dari kumparan dan juga magnet tetap pada batang bandul.

Dalam mengaplikasikan elektromagnetik pada bandul untuk membuat bandul berosilasi, setidaknya diperlukan dua stage dalam prosesnya. Stage pertama yaitu mengaktifkan medan magnetik kumparan dan yang kedua mematikannnya yaitu dengan mangalirkan dan memutus arus listrik ke kumparan. Mengapa kita perlu mematikan dan menghidupkan medan magnet kumparan? Ini bertujuan agar gaya interaksi magnetik pada bandul hanya berkontribusi untuk menambah gaya yang membuat bandul berosilasi lebih kuat dan tidak menghambat bandul untuk berosilasi.

Jika kita mengaktifkan medan magnet kumparan secara terus menerus, ini sama saja dengan kita memasangkan magnet permanen pada badul dan statornya, dimana pada suatu kondisi dia akan membantu bandul berosilasi, dan pada kondisi lain dia akan menghambat bandul untuk berosilasi. Sehingga keduanya akan saling mengurangi satu sama lain. Maka kita perlu mengaktifkan kumparan ketika kondisinya membantu bandul berosilasi, dan mematikannya ketika medan magnetnya akan menghambat bandul untuk berosilasi.

Cara Kerja 

Pada tiang pendulum terdapat sebuah sensor. Beberapa saat setelah pendulum melewati sensor, relay akan tersambung dan menghantarkan arus listrik. Akibatnya, timbul medan magnet pada kumparan. Medan magnet ini akan menghasilkan gaya yang tolak-menolak dengan magnet di ujung pendulum. Akibatnya, pendulum akan bergerak ke atas hingga mencapai amplitudonya. Selama pendulum bergerak ke atas, relay akan terputus sehingga arus listrik berhenti mengalir pada kumparan.
Ketika pendulum bergerak turun dan melewati sensor lagi, relay akan menghubungkan Kembali arus listrik. Hal ini menyebabkan medan magnet muncul kembali dan mengakibatkan munculnya gaya yang saling tolak-menolak antara kumparan dan pendulum. Akibatnya,pendulum Kembali bergerak ke atas. Proses ini terjadi secara berulang-ulang sehingga pendulum mengalami osilasi.
Ada beberapa konfigurasi yang dapat dilakukan dalam membuat pendulum elektromagnetik ini
Konfigurasi yang pertama yaitu dengan membuat interaksi medan magnet dari magnet tetap dan medan elektromagnetik dari kumparan saling tarik menarik. Jadi disini interaksi dari medan magnet akan berperan sebagai gaya pemulih yang akan 'membantu' gaya gravitasi. Untuk menerapkan sistem ini, kita harus bisa mengaktifkan mengaktifkan medan magnet ketika bandul bergerak mendekati titik setimbang atau titik terendah bandulnya sehingga medan magnet bandul dan kumparan saling tarik menarik. Kemudian kita harus bisa mematikan medan magnet ketika bandul bergerak menjauhi titik setimbang sehingga tidak tarik menarik dan menghambat bandul saat bergerak menjauhi medan magnet.

Konfigurasi yang kedua yaitu dengan membuat interaksi medan magnet permanen pada bandul dan medan magnet dari kumparan saling tolak menolak. Dalam hal ini juga sama, kita perlu mematikan dan juga menghidupkan kumparan pada waktu yang tepat sehingga tidak menghambat pergerakan bandul. Kebalikan dari konfigurasi pertama, pada konfigurasi kedua ini kita harus mengaktifkan kumparan ketika bandul bergerak menjauhi titik setimbangnya agar ketika bandul bergerak menjauhi titik setimbang, bandul akan terdorong oleh gaya tolak karena interaksi kedua medan magnet yang tolak menolak. Ini akan memberikan simpangan yang lebih besar pada bandul. Kemudian ketika bandul bergerak mendekati titik setimbang, kita harus mematikan kumparan agar bandul tidak terhambat oleh gaya tolak menolak kedua medan magnet dan dapat bergerak ke arah berlawanan tanpa hambatan, begitu seterusnya.

Konfigurasi lain yang mungkin adalah kombinasi dari dua konfigurasi yang sudah dijelaskan di atas. yaitu dengan membuat interaksi medan magnet yang dapat berubah tarik menarik atau tolak menolak pada saat yang tepat. Hal ini sangat mungkin diralisasikan karena kita dapat dengan mudah mengubah medan magnet pada kumparan hanya dengan dengan mengubah arah arus yang mengalir pada kumparan ke arah yang berlawanan. Namun hal ini tidak akan dibahas pada tulisan ini karena akan diperlukan juga mekanisme untuk mengubah arah arus pada kumparan.

Setelah mengetahui kunfigurasi yang dapat dilakukan, sekarang yang mana yang akan kita gunakan dalam membuat bandul elektromagnetik? Saya akan membuat bandul elektromagnetik dengan konfigurasi yang kedua yaitu dengan membuat medan magnet tolak menolak, mengapa?

Ada beberapa hal yang harus bisa kita lakukan untuk bisa membuat kedua konfigurasi diatas. Pertama kita harus dapat mengalirkan dan memutus arus listrik yang mengalir ke kumparan. Kedua kita harus dapat mengetahui perberakan bandul, apakah bandul bergerak medekati titik setimbang? Atau bandul bergerak menjauhi titik setimbang? Karena hal ini lah saya memilih konfigurasi yang kedua. Pada konfigurasi yang kedua, kita hanya perlu mengetahui kapan bandul menjauhi titik setimbang. Sederhananya, pada konfigurasi yang kedua kita hanya membutuhkan satu sensor saja. Sedangkan pada konfigurasi yang pertama setidaknya kita butuh tiga sensor. Silahkan dipikirkan sendiri mengapa demikian.

Bahan dan Desain

Berdasarkan apa yang sudah dijelaskan diatas, untuk membuat bandul elektromagnetik kita harus bisa mengontrol beberapa hal, mengalirkan dan memutus arus ke kumparan, dan juga mengetahui posisi bandul. Maka pada pembuatan bandul elektromagnetik ini saya akan menggunakan menggunakan arduino untuk mengontrol apa yang sudah dijelaskan di atas.

Berikut adalah bahan yang dibutuhkan dalam membuat bandul elektromagnetik ini:
  1. Bandul dengan magnet permanen pada ujungnya
  2. Kumparan kawat
  3. Arduino
  4. IR Sensor
  5. Relay
  6. Kabel
Disini saya tidak menjelaskan teknis membuat bandulnya, saya asumsikan kalian sudah punya bandul dengan magnet sehingga hanya tinggal memasang kumparan dan sensornya saja ke bandul tersebut. Berikut adalah rangkaian yang menghubungkan kumparan bandul elektromagnetik dan arduino yang akan kita buat:

Desain pendulum elektromagnetik dengan arduino

Sensor dan arduino bandul elektromagnetik
Letak sensor dan komponen pada bandul

Sebagaimana yang sudah sebelumnya, rangkaian arduino dan sensor akan kita gunakan untuk mengetahui posisi bandul yang bisa kita gunakan untuk mengaktifkan dan menonaktifkan aliran arus ke kumparan. Dengan adanya sensor ini, kita juga dapat menghitung periode dan frekuensi osilasi bandul dengan menggunakan arduino dan menampilkannya ke layar komputer kita secara realtime. 

Rangkaian

Sebelum kita memprogram arduino agar dapat melakukan apa yang kita inginkan dengan sensor dan juga relay, kita harus merangkai sensor dan relay sesuai skema. Harap berhati-hati dan mengecek lagi rangkaian dengan benar sebelum menghidupkannya, karena kesalahan pada rangkaian dapat menyebabkan kerusakan baik pada sensor ataupun arduinonya sendiri.
Berikut adalah rangkaiannya:
Rangkaian arduino bandul elektromagnetik (electromagnetic pendulum)
Rangkaian arduino dan sensor
Saya akan menjelaskan rangkaian yang ada pada gambar diatas.

1. Arduino

Arduino yang digunakan pada pendulum elektromagnetik ini dapat menggunakan arduino apa saja, seperti arduino uno pada gambar diatas, arduino nano, arduino mega dan arduino tipe lain, silahkan sesuaikan koneksi pin pada arduinonya.

2. IR Sensor

IR sensor yang digunakan bebas, seperti sensor infrared FC-51, atau kalian juga bisa menggunakan tipe lain seperti TCRT5000, sama saja. Berikut adalah rangkaiannya.
  1. VCC pada sensor ke 5V arduino.
  2. GND pada sensor ke GND arduino.
  3. OUT pada sensor ke pin 2 arduino.

3. Relay

Relay 5 volt, pada skema tersebut merupakan relay 1 channel. Kalian juga bisa menggunakan relay lebih dari 1 channel, yang terpenting adalah tegangan relaynya harus 5 volt supaya bisa digunakan dengan arduino.
  1. VCC pada relay ke 5V arduino.
  2. GND pada relay ke GND arduino.
  3. IN1 pada relayke pin 3 arduino.

4. Kumparan, Relay, dan DC input

Bisa dilihat pada gambar kumparan terhubung ke sumber tegangan, namun salah satu kabel ke kumparan dihubungkan ke relay normally open agar dapat memutus arus ke kumparan. Jika masih bingung silahkan perhatikan gambar, atau pelajari prinsip penggunaan relay.
Sumber tegangan yang digunakan boleh dari mana saja dan tegangannya boleh berapa saja, bisa dari baterai, aki, atau juga power supply. Tegangan jangan terlalu tinggi karena akan membuat kumparan sangat panas. 

Program Arduino

Setelah semua komponen selesai kita rangkai dan dipasang pada bandul, selanjutnya kita akan memprogram arduino agar dapat menggerakkan bandul dan juga menampilkan periode, dan frekuensi dari osilasi ke layar komputer kita.
Sebelum memprogram arduino kalian harus menginstall Arduino IDE pada komputer kalian. Cara menginstall Arduino IDE . Jika sudah, selanjutnya kita akan memprogram arduino. Berikut adalah program arduino lengkapnya: 

const int relay = 3;            //Relay
const int irsensor = 2;         //IR Sensor
int relayON = LOW;              //relay nyala
int relayOFF = HIGH;            //relay mati

double start_time = millis();
double T = 0;                   //Periode Osilasi
double f = 0;                   //Frekuensi Osilasi
int iterate = 0;                //Variabel pengulangan   
bool once = false;                   

void setup(){
  pinMode(relay, OUTPUT);
  pinMode (2, INPUT);
  Serial.begin(115200);
  Serial.print("== Menghitung periode dan frekuensi ==");
  Serial.println("");
  start_time = millis();
}

void loop(){
  int hasil = digitalRead(irsensor);
  while (hasil == LOW){                   //Selama bandul melewati sensor
    digitalWrite(relay, relayON);
    delay(15);
    hasil = digitalRead(irsensor);
    if (iterate % 3 == 0){                //Setiap 1 periode atau 3 kali melewati sensor
      if (once == false ){                //Print ke layar sekali
        T = (millis()-start_time)/1000;   //Periode
        f = 1000/(millis()-start_time);   //Frekuensi
        start_time = millis();            //Inisiasi waktu awal
        Serial.print("T= ");
        Serial.print(T);
        Serial.print("   ");
        Serial.print("f= ");
        Serial.print(f);
        Serial.println("");
        once = true;
      }
    }
  }
  while (hasil == HIGH ){                 //Selama bandul tidak melewati sensor
    digitalWrite (13, LOW);
    digitalWrite(relay, relayOFF);
    hasil = digitalRead(irsensor);
  }
  iterate = iterate + 1;
  once = false;
}
Selanjutnya mari kita bahas bagian program ini satu persatu.
Bagian ini merupakan bagian deklarasi variabel dan setup input output, jika sudah pernah menggunakan arduino selalu menuliskan ini


const int relay = 3;            //Relay
const int irsensor = 2;         //IR Sensor
int relayON = LOW;              //relay nyala
int relayOFF = HIGH;            //relay mati

double start_time = millis();
double T = 0;                   //Periode Osilasi
double f = 0;                   //Frekuensi Osilasi
int iterate = 0;                //Variabel pengulangan   
bool once = false;                   

void setup(){
  pinMode(relay, OUTPUT);
  pinMode (2, INPUT);
  Serial.begin(115200);
  Serial.print("== Menghitung periode dan frekuensi ==");
  Serial.println("");
  start_time = millis();
}
Blok program sebelum void setup adalah deklarasi variabel, dan bagian program yang ada dalam void setup adalah program yang akan dijalankan sekali pada saat arduino pertama dihidupkan. Serial.begin adalah untuk memulai komunikasi serial dengan komputer untuk menggunakan serial monitor sehingga dapat menampilkan data.

Selanjutnya bagian utama program yaitu void loop. void loop ini adalah bagian kode program yang akan diajalankan secara terus menerus oleh arduino.


void loop(){
  int hasil = digitalRead(irsensor);
  while (hasil == LOW){                   //Selama bandul melewati sensor
    digitalWrite(relay, relayON);
    delay(15);
    hasil = digitalRead(irsensor);
    if (iterate % 3 == 0){                //Setiap 1 periode atau 3 kali melewati sensor
      if (once == false ){                //Print ke layar sekali
        T = (millis()-start_time)/1000;   //Periode
        f = 1000/(millis()-start_time);   //Frekuensi
        start_time = millis();            //Inisiasi waktu awal
        Serial.print("T= ");
        Serial.print(T);
        Serial.print("   ");
        Serial.print("f= ");
        Serial.print(f);
        Serial.println("");
        once = true;
      }
    }
  }
  while (hasil == HIGH ){                 //Selama bandul tidak melewati sensor
    digitalWrite (13, LOW);
    digitalWrite(relay, relayOFF);
    hasil = digitalRead(irsensor);
  }
  iterate = iterate + 1;
  once = false;
}
Pada program diatas ada dua kondisi pengulangan while, pengulangan while yang pertama yaitu ketika hasil pembacaan sensor == LOW, yang berarti bandul sedang melewati sensor(tepat berada di depan sensor). while yang kedua adalah ketika bandul tidak sedang melewati sensor. Mari kita bahas, yang pertama ketika bandul tepat berada di depan sensor yang mana posisi sensor sejajar dengan kumparan, maka kita akan mengaktifkan relay sehingga medan magnet akan ada pada kumparan dan mendorong bandul. Ketika bandul tidak berada di depan sensor, kita matikan relay, sehingga kumparan tidak memiliki medan magnet, dan tidak menghambat bandul untuk bergerak. Sederhananya kita hanya perlu mengaktifkan kumparan ketika bandul berada tepat di depan sensor. Dengan dua kondisi pengulangan while ini saja sebenarnya kita sudah dapat menggerakkan bandul, untuk dapat menghitung periode dan frekuensi osilasi, maka kita akan menggunakan fungsi millis() 

Pada osilasi pendulum, selama satu periode bandul akan sebanyak 3 kali melewati sensor. Maka dengan ini, kita dapat menghitung periode dengan menghitung waktu yang dibutuhkan bandul untuk melewati sensor sebanyak 3 kali. Pada program diatas, untuk menghitung periode, kita menghitung waktu 3 kali pengulangan dimana iterate kelipatan 3 yaitu if (iterate % 3 == 0) yang artinya jika iterate habis dibagi 3. Jika habis dibagi 3, maka kita akan menghitung waktu dari waktu kelipatan 3 sebelumnya, dan itulah periodenya. Karena looping arduino ini sangat cepat, maka agar yang ditampilkan ke layar sekali saja, maka digunakan if (once == false ). Dengan begitu, nilai periode dan frekuensi akan tampil ke layar sekali setiap satu periode.
Berikut adalah tampilan serial monitor yang menampilkan hasil pembacaan nilai periode dan frekuensi osilasi pendulum elektromagnetik yang sudah kita buat
Serial monitor menampilkan periode dan frekuensi osilasi
Serial monitor menampilkan periode dan frekuensi osilasi



Demikianlah cara pembuatan bandul elektromagnetik dengan arduino yang dapat menghitung periode dan frekuensi osilasi. Jika ada kesalahan atau pertanyaan silahkan tulis di komentar, terima kasih.

LihatTutupKomentar