1 ok
void setup() {
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
// KIRI
digitalWrite(7, HIGH);
digitalWrite(8, LOW);
// KANAN
digitalWrite(10, HIGH);
digitalWrite(11, LOW);
}
void loop() {
}
// ======================================================
// ROBOT 4WD BLUETOOTH
// ARDUINO UNO + L298N + HC-05 / HC-06
// ======================================================
//
// KONTROL:
// F = MAJU
// B = MUNDUR
// L = KIRI
// R = KANAN
// S = STOP
//
// KECEPATAN:
// 1 = 80
// 2 = 130
// 3 = 180
// 4 = 220
// 5 = 255
// ======================================================
// ======================================================
// LIBRARY BLUETOOTH
// ======================================================
#include <SoftwareSerial.h>
// RX Arduino = D2
// TX Arduino = D3
SoftwareSerial bluetooth(2, 3);
// ======================================================
// PIN L298N
// ======================================================
// MOTOR KIRI
#define ENA 6
#define IN1 7
#define IN2 8
// MOTOR KANAN
#define ENB 9
#define IN3 10
#define IN4 11
// ======================================================
// KECEPATAN AWAL
// ======================================================
int speedMotor = 180;
// ======================================================
// SETUP
// ======================================================
void setup() {
// Motor kiri
pinMode(ENA, OUTPUT);
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
// Motor kanan
pinMode(ENB, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
// Bluetooth
bluetooth.begin(9600);
// Serial Monitor
Serial.begin(9600);
// Pastikan robot berhenti
stopMotor();
delay(1000);
Serial.println("================================");
Serial.println(" ROBOT 4WD BLUETOOTH");
Serial.println(" HC-05 / HC-06");
Serial.println("================================");
Serial.println("F = MAJU");
Serial.println("B = MUNDUR");
Serial.println("L = KIRI");
Serial.println("R = KANAN");
Serial.println("S = STOP");
Serial.println("1-5 = KECEPATAN");
}
// ======================================================
// LOOP
// ======================================================
void loop() {
// Jika ada data dari Bluetooth
if (bluetooth.available()) {
char command = bluetooth.read();
Serial.print("Perintah: ");
Serial.println(command);
kontrolRobot(command);
}
// Bisa juga dikontrol dari Serial Monitor
if (Serial.available()) {
char command = Serial.read();
kontrolRobot(command);
}
}
// ======================================================
// KONTROL ROBOT
// ======================================================
void kontrolRobot(char command) {
// Ubah huruf kecil menjadi huruf besar
if (command >= 'a' && command <= 'z') {
command = command - 32;
}
switch (command) {
// ==========================
// MAJU
// ==========================
case 'F':
maju();
bluetooth.println("MAJU");
break;
// ==========================
// MUNDUR
// ==========================
case 'B':
mundur();
bluetooth.println("MUNDUR");
break;
// ==========================
// KIRI
// ==========================
case 'L':
kiri();
bluetooth.println("KIRI");
break;
// ==========================
// KANAN
// ==========================
case 'R':
kanan();
bluetooth.println("KANAN");
break;
// ==========================
// STOP
// ==========================
case 'S':
stopMotor();
bluetooth.println("STOP");
break;
// ==========================
// KECEPATAN 1
// ==========================
case '1':
speedMotor = 80;
bluetooth.println("KECEPATAN
1");
break;
// ==========================
// KECEPATAN 2
// ==========================
case '2':
speedMotor = 130;
bluetooth.println("KECEPATAN
2");
break;
// ==========================
// KECEPATAN 3
// ==========================
case '3':
speedMotor = 180;
bluetooth.println("KECEPATAN
3");
break;
// ==========================
// KECEPATAN 4
// ==========================
case '4':
speedMotor = 220;
bluetooth.println("KECEPATAN
4");
break;
// ==========================
// KECEPATAN 5
// ==========================
case '5':
speedMotor = 255;
bluetooth.println("KECEPATAN
5");
break;
}
}
// ======================================================
// MAJU
// ======================================================
void maju() {
// SISI KIRI
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
// SISI KANAN
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
analogWrite(ENA, speedMotor);
analogWrite(ENB, speedMotor);
}
// ======================================================
// MUNDUR
// ======================================================
void mundur() {
// SISI KIRI
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
// SISI KANAN
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
analogWrite(ENA, speedMotor);
analogWrite(ENB, speedMotor);
}
// ======================================================
// BELOK KIRI
// ======================================================
void kiri() {
// KIRI MUNDUR
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
// KANAN MAJU
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
analogWrite(ENA, speedMotor);
analogWrite(ENB, speedMotor);
}
// ======================================================
// BELOK KANAN
// ======================================================
void kanan() {
// KIRI MAJU
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
// KANAN MUNDUR
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
analogWrite(ENA, speedMotor);
analogWrite(ENB, speedMotor);
}
// ======================================================
// STOP
// ======================================================
void stopMotor() {
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
analogWrite(ENA, 0);
analogWrite(ENB, 0);
}
=====================================================================
| Tombol/karakter | Fungsi robot |
|---|---|
F | Maju |
B | Mundur |
L | Belok kiri |
R | Belok kanan |
S | Stop |
1 | Kecepatan rendah |
2 | Sedang |
3 | Cepat |
4 | Lebih cepat |
5 | Maksimal |
0 Comments