#include <Arduino.h>
#include <SoftwareSerial.h>
#define LED_RUN 8 // 8GREEN LED
#define BT_TX 12
#define BT_RX 13
#define PIN_COUNT_SENSOR 4
#define leftSpeed 5 //ia1
#define leftWheel 6 //ib1
#define rightSpeed 10 //ia2
#define rightWheel 11 //ib2
#define DEFAULT_FORWARD_COUNT 31
#define DEFAULT_LEFT_COUNT 17
#define DEFAULT_RIGHT_COUNT 17
uint8_t R_SPEED = 250;
uint8_t L_SPEED = 250;
SoftwareSerial BT(BT_TX, BT_RX); //RX,TX
void forward()
{
digitalWrite(leftWheel, LOW);
analogWrite(leftSpeed, L_SPEED);
digitalWrite(rightWheel, LOW);
analogWrite(rightSpeed, R_SPEED);
}
void backward()
{
digitalWrite(leftWheel, HIGH);
analogWrite(leftSpeed, 0);
digitalWrite(rightWheel, HIGH);
analogWrite(rightSpeed, 0);
}
void turnLeft()
{
digitalWrite(leftWheel, LOW);
analogWrite(leftSpeed, L_SPEED);
digitalWrite(rightWheel, HIGH);
analogWrite(rightSpeed, 0);
}
void turnRight()
{
digitalWrite(leftWheel, HIGH);
analogWrite(leftSpeed, 0);
digitalWrite(rightWheel, LOW);
analogWrite(rightSpeed, R_SPEED);
}
void endstop()
{
digitalWrite(leftWheel, LOW);
digitalWrite(rightWheel, LOW);
analogWrite(leftSpeed,0);
analogWrite(rightSpeed,0);
digitalWrite(LED_RUN,LOW);
}
void setup() {
pinMode(PIN_COUNT_SENSOR, INPUT);
pinMode(leftSpeed, OUTPUT);
pinMode(leftWheel, OUTPUT);
pinMode(rightSpeed, OUTPUT);
pinMode(rightWheel, OUTPUT);
pinMode(LED_RUN, OUTPUT);
digitalWrite(LED_RUN, LOW);
Serial.begin(9600);
BT.begin(9600);//
// digitalWrite(LED_RUN, HIGH);
}
void loop() {
if (BT.available()) {
char c = BT.read();
if(c != 'S') digitalWrite(LED_RUN,HIGH);
// Serial.println(c);
switch (c) {
case 'F':
forward();
break;
case 'B':
backward();
break;
case 'L':
turnLeft();
break;
case 'R':
turnRight();
break;
case 'S':
endstop();
digitalWrite(LED_RUN, LOW);
break;
default:
endstop();
digitalWrite(LED_RUN, LOW);
break;
}
}
delay(1);
}
Google Play 안드로이드 앱
Arduino Bluetooth RC Car
MIRO_BT.ino
MIRO_BT.ino.hex