ROBOT BERODA KENDALI BLUETOOTH HC 05 MODUL DRIVER L298N
TOPOLOGI ROBOT 2WD PENGENDALI BT HC 05
Gambar 5.7.
Topologi Robot Beroda 2WD kendali BT HC 05
A.
SETTING BLUETOOTH HC-05
1.
Memberikan Nama Bluetooth dan Password dengan
AT COMMAND
2.
Penjelasan akan diuraikan di lampiran 2
B.
MENDOWNLOAD APLIKASI DI HP ANDROID
1.
Buka Google Play Store
2.
Ketik pada tab search “Arduino BT(HC-05)” lalu
Install
3.
Password robot “1234”
C. SKETCH ROBOT 2WD PENGENDALI BT HC 05
//CODER
M.FIRDAUS,S.PD
//SEBELUM
UPLOAD PROGRAM,CABUT DULU BT HC05 DAN SERVO
//HC05
RXD>pin 1
//HC05
TXD>pin 0
//HC05
GND>pin GND
//HC05
VCC>pin 5V
//menggunakan
modul motor driver L298N
//PIN
BLUETOOTH 1234
#include
<SoftwareSerial.h>
char
val;
//
Penetapan Nama Variabel motor dan pin yang ditentukan
int
ENA = 10; // pengatur kecepatan motor kiri di pin 10 pwm
int
IN1 = 9; //IN1 motor kiri
int
IN2 = 8; //IN2 motor kiri
int
IN3 = 5; //IN3 motor kanan
int
IN4 = 4; //IN4 motor kanan
int
ENB = 3; // pengatur kecepatan motor kanan di pin 3 pwm
void
setup()
{
pinMode(IN1, OUTPUT); // in1 kiri
pinMode(IN2, OUTPUT); // in2 kiri
pinMode(IN3, OUTPUT); // in3 kanan
pinMode(IN4, OUTPUT); // in4 kanan
pinMode(ENA, OUTPUT); // nilai kecepatan
motor kiri
pinMode(ENB, OUTPUT); // nilai kecepatan
motor kanan
Serial.begin(9600); //Kecepatan
komunikasi serial
}
void
loop(){
if(
Serial.available() >0 )
{
//Variable val untuk
menyimpan sementara hasil dari bluetooth
val = Serial.read();
Serial.println(val);
}
if( val == 'F' ) {
//Motor Maju
forward();
}
if( val == 'B') {
//Motor Mundur
reverse();
}
if( val == 'R' ) {
//Motor Berbelok kanan
right();
}
if( val == 'L' ) {
//Motor Berbelok kiri
left();
}
if( val == 'S' ) {
//Motor Berhenti
stop_bot();
}
delay(100);
if( val == '1' ) {
//Motor Serong Kiri depan
left();
}
if( val == '2' ) {
//Motor Serong Kanan depan
right();
}
if( val == '3' ) {
//Motor Serong Kiri belakang
sharpLeftTurn();
}
if( val == '4' ) {
//Motor Serong Kanan belakang
sharpRightTurn();
}
}
void
forward(){
analogWrite(ENA, 250); //Left Motor
Speed
analogWrite(ENB, 250); //Right Motor
Speed
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
}
void
reverse(){
analogWrite(ENA, 250); //Left Motor
Speed
analogWrite(ENB, 250); //Right Motor
Speed
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
}
void
right(){
analogWrite(ENA, 250); //Left Motor
Speed
analogWrite(ENB, 250); //Right Motor
Speed
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
}
void
left(){
analogWrite(ENA, 250); //Left Motor
Speed
analogWrite(ENB, 250); //Right Motor
Speed
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
}
void
sharpRightTurn(){
analogWrite(ENA, 250); //Left Motor
Speed
analogWrite(ENB, 250); //Right Motor
Speed
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
}
void
sharpLeftTurn() {
analogWrite(ENA, 250); //Left Motor
Speed
analogWrite(ENB, 250); //Right Motor
Speed
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
}
void
stop_bot(){
analogWrite(ENA, 0); //Left Motor Speed
analogWrite(ENB, 0); //Right Motor Speed
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
A. SKETCH ROBOT 2WD PENGENDALI Radio
Frekuensi 4 Channel
const int
val1 = A0; // pin terjemah untuk maju
const int
val2 = A1; // pin terjemah untuk mundur
const int
val3 = A2; // pin terjemah untuk kanan
const int
val4 = A3; // pin terjemah untuk kiri
//
Penetapan Nama Variabel motor dan pin yang ditentukan
int ENA =
10; // pengatur kecepatan motor kiri di pin 10 pwm
int IN1 =
9; //IN1 motor kiri
int IN2 =
8; //IN2 motor kiri
int IN3 =
5; //IN3 motor kanan
int IN4 =
4; //IN4 motor kanan
int ENB =
3; // pengatur kecepatan motor kanan di pin 3 pwm
int
readState = 0;
void
setup() {
pinMode(val1, INPUT);
pinMode(val2, INPUT);
pinMode(val3, INPUT);
pinMode(val4, INPUT);
pinMode(IN1, OUTPUT); // in1 kiri
pinMode(IN2, OUTPUT); // in2 kiri
pinMode(IN3, OUTPUT); // in3 kanan
pinMode(IN4, OUTPUT); // in4 kanan
pinMode(ENA, OUTPUT); // nilai kecepatan
motor kiri
pinMode(ENB, OUTPUT); // nilai kecepatan
motor kanan
}
void
loop() {
//untuk tombol pertama D2 ke A0
readState = digitalRead(val1);
if (readState == HIGH) {//Arah Maju
forward();
}
else {//Motor Berhenti
stop_bot();
}
delay(100);
//untuk tombol kedua D0 ke A1
readState = digitalRead(val2);
if (readState == HIGH){//Arah Mundur
reverse();
}
else {//Motor Berhenti
stop_bot();
}
delay(100);
//untuk tombol ketiga D3 ke A2
readState = digitalRead(val3);
if (readState == HIGH){//Arah Kanan
right();
}
else {//Motor Berhenti
stop_bot();
}
delay(100);
//untuk tombol keempat D1 ke A3
readState = digitalRead(val4);
if (readState == HIGH){// Arah
Kiri
left();
}
else {//Motor Berhenti
stop_bot();
}
delay(100);
}
void
forward(){
analogWrite(ENA, 250); //Left Motor
Speed
analogWrite(ENB, 250); //Right Motor
Speed
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
}
void
reverse(){
analogWrite(ENA, 250); //Left Motor Speed
analogWrite(ENB, 250); //Right Motor
Speed
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
}
void
right(){
analogWrite(ENA, 250); //Left Motor
Speed
analogWrite(ENB, 250); //Right Motor
Speed
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
}
void
left(){
analogWrite(ENA, 250); //Left Motor
Speed
analogWrite(ENB, 250); //Right Motor
Speed
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
}
void
sharpRightTurn(){
analogWrite(ENA, 250); //Left Motor
Speed
analogWrite(ENB, 250); //Right Motor
Speed
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
}
void
sharpLeftTurn() {
analogWrite(ENA, 250); //Left Motor
Speed
analogWrite(ENB, 250); //Right Motor
Speed
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
}
void
stop_bot(){
analogWrite(ENA, 0); //Left Motor Speed
analogWrite(ENB, 0); //Right Motor Speed
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);