아두이노 소스
#include <SoftwareSerial.h>
#include <Servo.h>
#define CENTER 90
#define LEFT 50
#define RIGHT 130
int blueTx=2;
int blueRx=3;
int HandlePin = 8;
int MotorPin1 = 5;
int MotorPin2 = 6;
int MotorPin3 = 10;
int MotorPin4 = 11;
Servo handle;
SoftwareSerial BTSerial(blueTx, blueRx);
void setup() {
Serial.begin(9600);
BTSerial.begin(9600);
handle.attach(HandlePin);
pinMode(MotorPin1, OUTPUT);
pinMode(MotorPin2, OUTPUT);
pinMode(MotorPin3, OUTPUT);
pinMode(MotorPin4, OUTPUT);
handle.write(CENTER);
digitalWrite(MotorPin1, LOW);
digitalWrite(MotorPin2, LOW);
digitalWrite(MotorPin3, LOW);
digitalWrite(MotorPin4, LOW);
}
void loop() {
if(Serial.available() > 0) {
int val = Serial.read();
doRemote(val);
}
if(BTSerial.available() > 0) {
int val = BTSerial.read();
doRemote(val);
}
}
void doRemote(int val) {
//HANDLE
if(val == 'l') {
handle.write(LEFT);
} else if(val == 'c') {
handle.write(CENTER);
} else if(val == 'r') {
handle.write(RIGHT);
}
//MOTOR
else if(val == 'f') {
digitalWrite(MotorPin1, HIGH);
digitalWrite(MotorPin2, LOW);
digitalWrite(MotorPin3, HIGH);
digitalWrite(MotorPin4, LOW);
//analogWrite(SpeedPin, 255 *3 / val);
} else if(val == 's') {
digitalWrite(MotorPin1, LOW);
digitalWrite(MotorPin2, LOW);
digitalWrite(MotorPin3, LOW);
digitalWrite(MotorPin4, LOW);
} else if(val == 'b') {
digitalWrite(MotorPin1, LOW);
digitalWrite(MotorPin2, HIGH);
digitalWrite(MotorPin3, LOW);
digitalWrite(MotorPin4, HIGH);
//analogWrite(SpeedPin, -1 * 255 *3 / val);
}
}
안드로이드 소스
BT_Remote.aia