code thiết kế xe bluetooth có điều chỉnh tốc độ từ mức 0 đến mức 3 sử dụng smartphone android với app Bluetooth RC Controller. linh kiện Arudino Uno R3, 4 bánh xe, còi, 4 đèn led trang trí 4 góc xe, 1 đèn pha soi sáng
Trang 1APP: Bluetooth RC Controller
#include <AFMotor.h>
AF_DCMotor motor1(1, MOTOR12_64KHZ); // tạo động cơ #1, 64KHz pwm AF_DCMotor motor2(2, MOTOR12_64KHZ); // tạo động cơ #2, 64KHz pwm AF_DCMotor motor3(3, MOTOR12_64KHZ); // tạo động cơ #3, 64KHz pwm AF_DCMotor motor4(4, MOTOR12_64KHZ); // tạo động cơ #4, 64KHz pwm
const int nhanSauT = A0; //
const int nhanTruocT = A1; //
const int nhanSauP = A2; //
const int nhanTruocP = A3; //
const int denpha = A4; //
const int coi = A5;
byte i;
char state;
void setup() {
motor1.setSpeed(200); // chọn tốc độ
motor2.setSpeed(200); // chọn tốc độ
motor3.setSpeed(200); // chọn tốc độ
motor4.setSpeed(200); // chọn tốc độ
Serial.begin(9600); // Kết nối bluetooth module ở tốc độ 9600
pinMode(nhanSauT,OUTPUT);
pinMode(nhanTruocT,OUTPUT);
pinMode(nhanSauP,OUTPUT);
pinMode(nhanTruocP,OUTPUT);
Trang 2pinMode(coi,OUTPUT);
}
void lui()
{
motor1.run(BACKWARD); // động cơ 1 lùi
motor3.run(BACKWARD); // động cơ 3 lùi
digitalWrite(nhanSauP, HIGH); //nếu sử dung NPN thì HIGH là bật digitalWrite(nhanSauT, HIGH); // nếu sử dung PNP thì LOW là bật }
void loop() {
if(Serial.available() > 0)
{
state = Serial.read();
} else
state = 0;
Serial.println(state);
switch (state) {
Trang 3case 'S':
//Dung
motor1.run(RELEASE); // dừng động cơ
motor2.run(RELEASE); // dừng động cơ
motor3.run(RELEASE); // dừng động cơ
motor4.run(RELEASE); // dừng động cơ
digitalWrite(nhanTruocT, LOW);
digitalWrite(nhanTruocP, LOW);
digitalWrite(nhanSauT, LOW);
digitalWrite(nhanSauP, LOW);
break;
case 'F':
//xe Tien
motor1.run(FORWARD); // động cơ 1 tiến
motor2.run(FORWARD);
motor3.run(FORWARD); // động cơ 3 tiến
motor4.run(FORWARD);
digitalWrite(nhanTruocT, HIGH);
digitalWrite(nhanTruocP, HIGH); // B t 2 led trươcâ break;
case 'L':
//xe Re trai
motor1.run(FORWARD); // động cơ 1 tiến
motor2.run(FORWARD);
motor3.run(BACKWARD); // động cơ 3 lùi
motor4.run(BACKWARD);
digitalWrite(nhanSauP, HIGH);
Trang 4digitalWrite(nhanTruocP, HIGH); // B t 2 led Phaiâ break;
case 'R':
//xe Re phai
motor1.run(BACKWARD); // động cơ 1 lùi
motor2.run(BACKWARD);
motor3.run(FORWARD); // động cơ 3 tiến
motor4.run(FORWARD);
digitalWrite(nhanTruocT, HIGH);
digitalWrite(nhanSauT, HIGH); // B t 2 led traiâ
break;
case 'B':
//xe Lui
motor1.run(BACKWARD); // động cơ 1 lùi
motor2.run(BACKWARD);
motor3.run(BACKWARD); // động cơ 3 lùi
motor4.run(BACKWARD);
digitalWrite(nhanSauP, HIGH);
digitalWrite(nhanSauT, HIGH); // B t 2 led Sauâ
break;
case 'W':
//B t đen phaâ
digitalWrite(denpha, HIGH);
break;
case 'w':
Trang 5//Tắt đen pha
digitalWrite(denpha, LOW); break;
case 'V':
//B t còiâ
digitalWrite(coi, HIGH);
break;
case 'v':
//Tắt còi
digitalWrite(coi, LOW);
break;
case 'N':
//B t đen ledâ
digitalWrite(nhanTruocT, HIGH); digitalWrite(nhanTruocP, HIGH); digitalWrite(nhanSauT, HIGH); digitalWrite(nhanSauP, HIGH); break;
case 'n':
//Tăt đen led
digitalWrite(nhanTruocT, LOW); digitalWrite(nhanTruocP, LOW); digitalWrite(nhanSauT, LOW); digitalWrite(nhanSauP, LOW);
Trang 6break;
case '0' :
i = 0;
motor1.setSpeed(i); motor2.setSpeed(i); motor3.setSpeed(i); motor4.setSpeed(i);
break;
case '1' :
i=100;
motor1.setSpeed(i); motor2.setSpeed(i); motor3.setSpeed(i); motor4.setSpeed(i); break;
case '2':
i=165;
motor1.setSpeed(i); motor2.setSpeed(i); motor3.setSpeed(i); motor4.setSpeed(i); break;
case '3':
i=255;
motor1.setSpeed(i); motor2.setSpeed(i); motor3.setSpeed(i);
Trang 7motor4.setSpeed(i);
break;
case 'X':
//xe Tien auto
i = 170;
motor1.setSpeed(i);
motor2.setSpeed(i);
motor3.setSpeed(i);
motor4.setSpeed(i);
motor1.run(FORWARD); // động cơ 1 tiến motor2.run(FORWARD);
motor3.run(FORWARD); // động cơ 3 tiến motor4.run(FORWARD);
digitalWrite(nhanTruocT, HIGH);
digitalWrite(nhanTruocP, HIGH); // B t 2 led trươcâ delay (3000);
motor1.run(BACKWARD); // động cơ 1 lùi motor2.run(BACKWARD);
motor3.run(FORWARD); // động cơ 3 tiến motor4.run(FORWARD);
digitalWrite(nhanTruocT, HIGH);
digitalWrite(nhanSauT, HIGH); // B t 2 led traiâ delay (250);
motor1.run(FORWARD); // động cơ 1 tiến motor2.run(FORWARD);
motor3.run(FORWARD); // động cơ 3 tiến motor4.run(FORWARD);
Trang 8digitalWrite(nhanTruocT, HIGH);
digitalWrite(nhanTruocP, HIGH); // B t 2 led trươcâ delay (3000);
motor1.run(BACKWARD); // động cơ 1 lùi motor2.run(BACKWARD);
motor3.run(FORWARD); // động cơ 3 tiến motor4.run(FORWARD);
digitalWrite(nhanTruocT, HIGH);
digitalWrite(nhanSauT, HIGH); // B t 2 led traiâ delay (250);
break;
case 'x':
//Dung
motor1.run(RELEASE); // dừng động cơ
motor2.run(RELEASE); // dừng động cơ
motor3.run(RELEASE); // dừng động cơ
motor4.run(RELEASE); // dừng động cơ
digitalWrite(nhanTruocT, HIGH);
digitalWrite(nhanTruocP, HIGH);
digitalWrite(nhanSauT, HIGH);
digitalWrite(nhanSauP, HIGH);
break;
}
}