Simulasi Palang Kereta Otomatis Arduino ini menggunakan sensor ultrasonic untuk mendeteksi kedatangan kereta api.Sensor ultrasonic mendeteksi kedatangan kereta an mengirim sinyal ke mikrokontoler Arduino Uno. Mikrokontroler ini kemudian mengolah data dan mengontrol motor servo untuk membuka dan menutup palang kereta api. Buzzer digunakan sebagai tanda peringatan suara Ketika kereta api akan melewati perlintasannya.
Pendahuluan
Percobaan sederhana sederhana untuk menggerakan motor servo ini yaitu Simulasi Palang Kereta Otomatis Menggunakan Arduino
komponen yang dibutuhkan
1. Arduino uno
2. Buzzer
3. Motor servo
4. Sensor ultrasonic
Langkah Percobaan
1. Pin buzzer 1 dihubungkan ke pin ground Arduino
2. Pin buzzer 2 dihubungkan ke pin 5 Arduino
3. VCC ultrasonic dihubungkan ke pin 5 volt Arduino
4. TRIG ultrasonic dihubungkan ke pin 2 Arduino
5. ECHO ultrasonic dihubungkan ke pin 3 Arduino
6. GND ultrasonic dihubungkan ke pin ground Arduino
7. GND servo dihubungkan ke pin ground Arduino
8. V+ Servo dihubungkan ke pin 5 volt Arduino
9. PMW Servo dihubungkan ke pin 9 Arduino
Sketch Arduino
//Rizki Mulyadi
#define ECHO_PIN 3
#define TRIG_PIN 2
#define pinBuzzer 5
#include <Servo.h>
Servo myservo;
int rotasi = 90;
int interval = 0;
float readDistanceCM(){
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
int duration = pulseIn(ECHO_PIN, HIGH);
return duration * 0.034/2;
}
void soundBuzzer(){
if(interval < 500){
tone(pinBuzzer, 250);
}else
if(interval > 500){
tone(pinBuzzer, 100,800);
};
}
void setup() {
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
Serial.begin(115200);
pinMode(pinBuzzer, OUTPUT);
myservo.attach(9);
myservo.write(90);
}
void loop() {
tutupPalang();
interval +=100;
if(interval>1000) interval = 0;
}
void tutupPalang(){
float jarak = readDistanceCM();
if(jarak > 0 && jarak < 100 ){
soundBuzzer();
tutup();
}else{
buka();
noTone(pinBuzzer);
}
}
void tutup(){
if(rotasi <= 90){
myservo.write(rotasi);
delay(100);
rotasi--;
}
if(rotasi <= 0 ) rotasi = 0;
}
void buka(){
if(rotasi <= 90){
myservo.write(rotasi);
delay(100);
rotasi+=4;
}
if(rotasi >= 90 ) rotasi = 90;
}
Kesimpulan
Pada Simulasi Palang Kereta Otomatis Menggunakan Arduino diatur dalam jarak 0-100 cm sehingga jika kereta berada di jarak tersebut akan menghasilkan output dari buzzer sehingga memiliki respon yang diatur dan mengontrol motor servo untuk membuka dan menutup palang kereta api.Simulasi palang kereta otomatis menggunakan Arduino menunjukkan bahwa sistem ini efektif dalam meningkatkan keselamatan di perlintasan kereta.Implementasi Arduino sebagai pengendali utama memungkinkan pengoperasian yang efisien dan responsif terhadap situasi di lapangan sehingga meningkatkan keandalan sistem.