최종소스






아두이노 소스


#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