You are on page 1of 6

Đây là 100% bluetoothmột ví dụ vsdfcode để tích hợp module Bluetooth với

Arduino UNO R3 để kiểm soát một xe đua.

#include <SoftwareSerial.h>

SoftwareSerial bluetooth(10, 11); // Khai báo chân kết nối RX (10) và TX


(11)
// Dùng chân nối kết của Arduino UNO

int motor1Pin1 = 2; // Chân kết nối motor trái


int motor1Pin2 = 3;
int motor2Pin1 = 4; // Chân kết nối motor phải
int motor2Pin2 = 5;

void setup() {
pinMode(motor1Pin1, OUTPUT); // Đặt chân motor là OUTPUT
pinMode(motor1Pin2, OUTPUT);
pinMode(motor2Pin1, OUTPUT);
pinMode(motor2Pin2, OUTPUT);

bluetooth.begin(9600); // Khởi động module Bluetooth


}

void loop() {
while (bluetooth.available()) {
char command = bluetooth.read(); // Đọc dữ liệu gửi từ Bluetooth

// Kiểm tra các lệnh điều khiển từ Bluetooth


switch(command) {
case 'F': // Tiến
forward();
break;
case 'B': // Lùi
backward();
break;
case 'L': // Rẽ trái
left();
break;
case 'R': // Rẽ phải
right();
break;
case 'S': // Dừng
stop();
break;
}
}
}

void forward() {
digitalWrite(motor1Pin1, HIGH);
digitalWrite(motor1Pin2, LOW);
digitalWrite(motor2Pin1, HIGH);
digitalWrite(motor2Pin2, LOW);
}

void backward() {
digitalWrite(motor1Pin1, LOW);
digitalWrite(motor1Pin2, HIGH);
digitalWrite(motor2Pin1, LOW);
digitalWrite(motor2Pin2, HIGH);
}

void left() {
digitalWrite(motor1Pin1, LOW);
digitalWrite(motor1Pin2, HIGH);
digitalWrite(motor2Pin1, HIGH);
digitalWrite(motor2Pin2, LOW);
}

void right() {
digitalWrite(motor1Pin1, HIGH);
digitalWrite(motor1Pin2, LOW);
digitalWrite(motor2Pin1, LOW);
digitalWrite(motor2Pin2, HIGH);
}

void stop() {
digitalWrite(motor1Pin1, LOW);
digitalWrite(motor1Pin2, LOW);
digitalWrite(motor2Pin1, LOW);
digitalWrite(motor2Pin2, LOW);
}

100%điều khiển động cơ L298N - cầu H để


điều khiển động cơ DC

#define IN1 7
#define IN2 6
#define IN3 5
#define IN4 4
#define MAX_SPEED 255 //từ 0-255
#define MIN_SPEED 0
void setup()
{
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
}
void motor_1_Dung() {
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
}

void motor_2_Dung() {
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
}

void motor_1_Tien(int speed) { //speed: từ 0 - MAX_SPEED


speed = constrain(speed, MIN_SPEED, MAX_SPEED);//đảm báo giá trị nằm trong một
khoảng từ 0 - MAX_SPEED - http://arduino.vn/reference/constrain
digitalWrite(IN1, HIGH);// chân này không có PWM
analogWrite(IN2, 255 - speed);
}

void motor_1_Lui(int speed) {


speed = constrain(speed, MIN_SPEED, MAX_SPEED);//đảm báo giá trị nằm trong một
khoảng từ 0 - MAX_SPEED - http://arduino.vn/reference/constrain
digitalWrite(IN1, LOW);// chân này không có PWM
analogWrite(IN2, speed);
}

void motor_2_Tien(int speed) { //speed: từ 0 - MAX_SPEED


speed = constrain(speed, MIN_SPEED, MAX_SPEED);//đảm báo giá trị nằm trong một
khoảng từ 0 - MAX_SPEED - http://arduino.vn/reference/constrain
analogWrite(IN3, speed);
digitalWrite(IN4, LOW);// chân này không có PWM
}

void motor_2_Lui(int speed) {


speed = constrain(speed, MIN_SPEED, MAX_SPEED);//đảm báo giá trị nằm trong một
khoảng từ 0 - MAX_SPEED - http://arduino.vn/reference/constrain
analogWrite(IN4, 255 - speed);
digitalWrite(IN3, HIGH);// chân này không có PWM
}

void loop()
{
motor_1_Tien(MAX_SPEED); // motor 1 tiến
delay(5000);//tiến 5 s
motor_2_Lui(MAX_SPEED); //motor 2 lùi
// motor 1 vẫn tiến
delay(2000);//tiến 2 s
motor_1_Dung();
motor_2_Dung();
delay(10000);//dừng 10s
}

100% xe đua hoàn chình https://youtu.be/7TohEboIngc?


si=bzdrTXaaHu4psN3N

http://arduino.vn/bai-viet/893-cach-dung-module-dieu-khien-dong-co-l298n-cau-h-de-dieu-khien-dong-
co-dc

You might also like