08 - KONTROL RODA BELOK KANAN DAN KIRI
- Sabtu, 09 November 2024
- Administrator
- 0 komentar
Jalanya Robot :
- Robot berjalan maju selama 1 detik - belok kekanan - maju 1 detik - belok kekanan - maju 1 detik - belok kekiri - mundur 1 detik - belok kiri.
- Robot akan mengulang 1 kali lagi.
- Robot Berhenti.
KODING :
Untuk memudahkan pemrograman, kita buat koneksi antara sensor & driver motor dengan pin
Arduino seperti dibawah ini (Perhatikan skematik).
const int L1 = 2;
const int L2 = 3;
const int R1 = 4;
const int R2 = 7;
const int L = 5;
const int R = 6;
void setup()
Tentukan pin sebagai output untuk mengontrol putaran motor.
pinMode(L1, OUTPUT);
pinMode(L2, OUTPUT);
pinMode(R1, OUTPUT);
pinMode(R2, OUTPUT);
pinMode(L, OUTPUT);
pinMode(R, OUTPUT);
Kondisi Awal motor OFF:
analogWrite(L, 0);
analogWrite(R, 0);
Program perulangan 2x, robot akan mengulang proses:
for (char i=0; i<2; i++)
Jalankan Robot maju selama 1 detik:
digitalWrite(L1, HIGH);
digitalWrite(L2, LOW);
digitalWrite(R1, HIGH);
digitalWrite(R2, LOW);
analogWrite(L, 255);
analogWrite(R, 255);
delay(1000);
Robot Belok kanan dengan memutar maju roda kiri (L = 255) sedangkan roda kanan di matikan (R
= 0), sehingga robot berbelok ke kanan selama ½ detik:
analogWrite(L, 255);
analogWrite(R, 0);
delay(500);
Selanjutnya jalankan robot maju:
analogWrite(L, 255);
analogWrite(R, 255);
delay(1000);
Selanjutnya robot belok kanan:
analogWrite(L, 255);
analogWrite(R, 0);
delay(500);
Robot maju selama 1 detik:
analogWrite(L, 255);
analogWrite(R, 255);
delay(1000);
Robot Belok kiri dengan memutar maju roda kanan (R = 255) sedangkan roda kiri di matikan (L =
0), sehingga robot berbelok ke kanan selama ½ detik:
analogWrite(L, 0);
analogWrite(R, 255);
delay(500);
Robot mundur selama 1 detik:
digitalWrite(L1, LOW);
digitalWrite(L2, HIGH);
digitalWrite(R1, LOW);
digitalWrite(R2, HIGH);
analogWrite(L, 255);
analogWrite(R, 255);
delay(1000);
Belok kiri:
analogWrite(L, 255);
analogWrite(R, 0);
delay(500);
Jika belum ada 2x siklus maka robot kembali mengerjakan perintah awal (for).
Robot Stop:
analogWrite(L, 0);
analogWrite(R, 0);
while(1);//PROGRAM LOOPING DISINI