Tutorial 4: 2 Motor DC Berputar
Anda perlu menulis satu aturcara untuk memutarkan 2 motor DC menggunakan
Pemicu Motor L298N dan modul modul ESP32. Penyambungan litar bagi Pemicu
Motor L298N kepada1 biji motor DC adalah seperti yang ditunjukkan di dalam Rajah
5.2 di bawah. Pemicu Motor L298N kemudiannya perlu disambungkan kepada kepada
modul ESP32. Buka fail contoh aturcara ESP32_L298N_DC_2motors untuk melihat
arah pergerakan motor.
Rajah 5.2: Penyambungan 2 Motor DC kepada Pemicu Motor L298N
Penyelesaian:
Berikut adalah aturcara bagi menggerakkan 2 motor DC:-
#include <Robojax_L298N_DC_motor.h>
// tetapan untuk motor 1
#define CHA 0
#define ENA 19 // untuk PWM
#define IN1 18
#define IN2 5
// tetapan untuk motor 2 // untuk PWM
#define IN3 17
#define IN4 16
#define ENB 4
#define CHB 1
const int CCW = 2; // Jangan ubah
44
const int CW = 1; // Jangan ubah
#define motor1 1 // Jangan ubah
#define motor2 2 // Jangan ubah
// Rujuk video YouTube bertajuk Controlling 2 DC Motors using ESP32 and L298N
Motor driver melalui pautan ini: https://youtu.be/2JTMqURJTwg bagi 2 motor tanpa
maklumat debug.
Robojax_L298N_DC_motor robot(IN1, IN2, ENA, CHA, IN3, IN4, ENB, CHB);
// 2 motor dengan debut information
//Robojax_L298N_DC_motor robot(IN1, IN2, ENA, CHA, IN3, IN4, ENB, CHB, true);
void setup() {
Serial.begin(115200);
robot.begin();
}
void loop() {
// robot.demo(1);
robot.rotate(motor1, 80, CW); //kelajuan motor1 60% arah CW
robot.rotate(motor2, 70, CCW); //kelajuan motor2 70% arah CCW
delay(3000);
robot.brake(1);
robot.brake(2);
delay(2000);
robot.rotate(motor1, 100, CW); //kelajuan motor1 100% arah CW
delay(3000);
45
robot.rotate(motor2, 100, CCW);//kelajuan motor2 100% arah CCW
robot.brake(1);
robot.brake(2);
delay(2000);
for(int i=0; i<=100; i++) //kelajuan motor1 i% arah CW
{
robot.rotate(motor1, i, CW);
delay(100);
}
delay(2000);
robot.brake(1);
delay(2000);
for(int i=0; i<=100; i++) //kelajuan motor2 i% arah CW
{
robot.rotate(motor2, i, CW);
delay(100);
}
delay(2000);
robot.brake(2);
delay(2000);
}
46
Tutorial 5: Kawalan Robot menggunakan BLUETOOTH
Panduan ini hanya boleh diguna pakai kepada pengguna telefon Android sahaja. Fail
muat turun aplikasi Bluetooth Robot Remote daripada pautan ke Google Drive yang
telah diberikan. Pasangkan aplikasi tersebut pada telefon.
Tulis aturcara di bawah ini di dalam Arduino IDE dan muat naik ke dalam ESP32.
Namakan Bluetooth menggunakan nama dan nama kelas.
#include "BluetoothSerial.h"
#include <Robojax_L298N_DC_motor.h>
// motor 1 settings
#define CHA 0
#define ENA 19 // pin ini mesti PWM enabled jika papan Arduino digunakan
#define IN1 18
#define IN2 5
// motor 2 settings
#define IN3 17
#define IN4 16
#define ENB 4// pin ini mesti PWM enabled jika papan Arduino digunakan
#define CHB 1
const int CCW = 2; // Jangan ubah
const int CW = 1; // Jangan ubah
#define motor1 1 // Jangan ubah
#define motor2 2 // Jangan ubah
// untuk 1 motor
//Robojax_L298N_DC_motor robot(IN1, IN2, ENA, CHA, true);
// untuk 2 motor tanpa maklumat debug // Rujuk video Youtube untuk arahan ini pada
alamat pautan: https://youtu.be/2JTMqURJTwg
Robojax_L298N_DC_motor robot(IN1, IN2, ENA, CHA, IN3, IN4, ENB, CHB);
47
// untuk 2 motor dengan maklumat debug
//Robojax_L298N_DC_motor robot(IN1, IN2, ENA, CHA, IN3, IN4, ENB, CHB, true);
#if !defined(CONFIG_BT_ENABLED) || !defined(CONFIG_BLUEDROID_ENABLED)
#error Bluetooth is not enabled! Please run `make menuconfig` to and enable it
#endif
BluetoothSerial SerialBT;
char nilai;
void setup() {
Serial.begin(115200);
robot.begin();
//L298N DC Motor by Robojax.com
SerialBT.begin("WAN NAZRAN - DEE4C"); //Berikan nama Bluetooth dengan
nama dan kelas anda
Serial.println("The device started, now you can pair it with bluetooth!");
}
void loop() {
// robot.demo(1);
if (Serial.available())
{
SerialBT.write(Serial.read());
}
if (SerialBT.available())
{
nilai = SerialBT.read();
Serial.print("Data = ");
Serial.print(nilai);
48
Serial.println("");
if (nilai == 'A')
{
robot.rotate(motor1, 100, CW);//putaran motor1 pada 100% kelajuan arah CW
robot.rotate(motor2, 100, CW);// putaran motor1 pada 100% kelajuan arah CW
}
else if (nilai == 'B')
{
robot.rotate(motor1,100, CCW);//putaran motor1 pada 100% kelajuan arah CCW
robot.rotate(motor2,100,CCW);// putaran motor1 pada 100% kelajuan arah CCW
}
else if (nilai == 'C')
{
robot.rotate(motor1, 80, CW);//putaran motor1 at 80% kelajuan arah CW
robot.rotate(motor2, 0, CW);//putaran motor1 at 0% kelajuan arah CW
}
else if (nilai == 'D')
{
robot.rotate(motor1, 0, CW);//putaran motor1 at 0% kelajuan arah CW
robot.rotate(motor2, 80, CW);//putaran motor1 at 80% kelajuan arah CW
}
else if (nilai == 'F')
{
robot.rotate(motor1, 80, CCW);//putaran motor1 at 80% kelajuan arah CCW
robot.rotate(motor2, 80, CW);//putaran motor1 at 80% kelajuan arah CW
}
else if (nilai == 'G')
{
robot.rotate(motor1, 80, CW);//putaran motor1 at 80% kelajuan arah CW
robot.rotate(motor2, 80, CCW);//putaran motor1 at 80% kelajuan arah CCW
49
}
else
{
robot.rotate(motor1, 0, CW);//putaran motor1 at 0% kelajuan arah CW
robot.rotate(motor2, 0, CW);//putaran motor1 at 0% kelajuan arah CW
}
}
delay(20);
}
50
RUJUKAN
Build your own Electronics, IoT, Drones and Robots – Welcome to the Workshop!
(2022 ). Retrieved from DroneBot Workshop:
https://dronebotworkshop.com/esp32-intro/
Dejan. (2022 ). L298N Motor Driver – Arduino Interface, How It Works, Codes,
Schematics. Retrieved from HowToMechatronics:
https://howtomechatronics.com/tutorials/arduino/arduino-dc-motor-control-
tutorial-l298n-pwm-h-bridge/
ESP32 DevKit ESP32-WROOM GPIO Pinout. (2018, December 31). Retrieved from
circuits4you: https://circuits4you.com/2018/12/31/esp32-devkit-esp32-wroom-
gpio-pinout/
Getting Started with the ESP32 Development Board. (2022). Retrieved from
RandomNerdTutorials: https://randomnerdtutorials.com/getting-started-with-
esp32/
Mybotic. (2022). Tutorial for Arduino Mini DC Motor Driver Dual H-Bridge PWM Control
(L293D). Retrieved from instructables circuit:
https://www.instructables.com/Tutorial-for-Dual-Channel-DC-Motor-Driver-
Board-PW/
Tutorials for Arduino. (2014, August 8). Retrieved from funduino:
http://www.funduino.de/Arduino-tutorials-08092014.pdf
51
52