Palang pintu kereta api merupakan salah satu sarana prasarana kereta api yang berfungsi sebagai simbol bahwa kereta api akan melintasi rel dan para pengendara harus berhenti karena kereta akan melintas. Kali ini kita akan membuat palang pintu yang secara otomatis akan menutup apabila kereta akan melintas.
Palang pintu kereta api adalah bagian penting dari sistem keselamatan pada perlintasan kereta api. Palang pintu ini digunakan untuk memberi sinyal kepada pengguna jalan bahwa kereta api akan melintas. Fungsi utamanya adalah untuk mengatur lalu lintas di perlintasan kereta api agar kendaraan dan pejalan kaki tidak melintas saat kereta sedang melintas.
[membership level=”0,1,2,4″]
1. Alat / Bahan
- Arduino IDE Download
- Library: Servo Download
- Arduino UNO 1 Buah
- Servo 2 Buah
- Sensor IR Obstacle 2 Buah
- Project Board 1 Buah
- Kabel Jumper Secukupnya
Untuk mendapatkan komponen elektronik di atas silahkan temukan disini.
2. Skema Rangkaian
Berikut Rangkaian Palang Pintu Kereta Api Otomatis
Keterangan:
- 5V – VCC Servo1, VCC Servo2, VCC IR1, VCC IR2
- GND – GND Servo, GND Servo, GND IR1, GND IR2
- D2 – Pin Data IR1
- D3 – Pin Data IR2
- D10 – Pin Data Servo1
- D11 – Pin Data Servo2
[/membership]
3. Langkah Kerja
- Siapkan alat dan juga bahan
- Lakukan proses wiring dengan menggunakan Gambar skematik rangkaian diatas
- Buka software Arduino IDE yang telah terinstal pada laptop/komputer
- Unduh semua library di atas dan masukkan libray tersebut dengan cara buka Arduino IDE pilih Sketch->Include Library->Add.Zip Library
- Ketikkan sketch program pada halaman Arduino IDE
- terakhir Lakukan proses uploading program
4. Sketch Program
Dapatkan puluhan ebook gratis dengan registrasi melalui tombol di bawah!
/* Program Palang Pintu Kereta Api Otomatis dibuat oleh Indobot */ #include <Servo.h> //Library servo Servo myservo1; //Deklarasi nama servo Servo myservo2; //Deklarasi nama servo #define in 2 //Sensor IR masuk pada pin D2 #define out 3 //Sensor IR keluar pada pin D3 bool buka = true; bool sensorIn = false; void setup() { myservo1.attach(10); //Servo pada pin D10 myservo2.attach(11); //Servo pada pin D11 pinMode(in, INPUT); //Setting I/O pinMode(out, INPUT); myservo1.write(90); myservo2.write(90); } void loop() { int nilai_in = digitalRead(in); //Baca sensor int nilai_out = digitalRead(out); if(nilai_in == LOW && buka){ //Jika sensor IN bernilai LOW dan Servo terbuka, maka myservo1.write(0); myservo2.write(0); sensorIn = true; buka = false; } else if (nilai_out == LOW && buka){ //Jika sensor OUT bernilai LOW dan Servo terbuka, maka myservo1.write(0); myservo2.write(0); sensorIn = false; buka = false; } if(!buka && nilai_out == LOW && sensorIn){ myservo1.write(90); myservo2.write(90); buka = true; delay(3000); } else if(!buka && nilai_in == LOW && !sensorIn){ myservo1.write(90); myservo2.write(90); buka = true; delay(3000); } }
Kesimpulan:
Ketika kereta mengenai sensor 1 atau 2 maka servo akan menutup. Servo akan membuka kembali ketika kereta mengenai sensor lainnya.
[/membership]
Kamu ingin memperbanyak jam terbang dan juga portofolio bikin project elektronika/ Arduino/ IoT? Ikuti program dari Indobot!