12
Arduino Part 송송송

아두이노 RC카 만들기

  • Upload
    -

  • View
    259

  • Download
    0

Embed Size (px)

Citation preview

PowerPoint

Arduino Part

Bluetooth

HC-06 Bluetooth module (Slave)VCC : 5V GND : GND TXD : D2 RXD : D2

#include // 1

int blueTx=2;int blueRx=3;

SoftwareSerial BTSerial(blueTx, blueRx); // 2

void setup() { BTSerial.begin(9600); // 3}

void loop() { if(BTSerial.available() > 0) { // 4 int val = BTSerial.read(); doRemote(val); // 5 }} . SoftwareSerial .SoftwareSerial BTSerial . TXD RXD . . 9600 . . val , .

#include

const char bt_name[] = "REMOTE_CAR";const char bt_pwd[] = "9999"; int bTx=2;int bRx=3;SoftwareSerial BT(bTx, bRx);

bool sendMessage(String command) { BT.print(command); String result = BT.readString(); if(result.startsWith("OK")) return true; return false;}

void loop(){}

void setup() { Serial.begin(9600); BT.begin(9600);

String settingState; Serial.println("Processing...");

settingState = "Handshake"; if(!sendMessage("AT")) goto ERROR; settingState = "Set Name"; if(!sendMessage(String("AT+NAME") + bt_name)) goto ERROR; settingState = "Set Password"; if(!sendMessage(String("AT+PIN") + bt_pwd)) goto ERROR;

// 1:1200, 2:2400, 3:4800, 4:9600, 5:19200, // 6:28400, 7:57600, 8:115200 settingState = "Set Speed"; if(!sendMessage(String("AT+BAUD4"))) goto ERROR;

Serial.print("BT_NAME : "); Serial.println(bt_name); Serial.print("BT_PWD : "); Serial.println(bt_pwd); Serial.println("BT_BAUD : 9600"); Serial.println("Setting Complete!"); return;

ERROR: Serial.println("Setting Fail : " + settingState);}HC-06 - : HC06 - : 1234 . AT .

- : AT+NAMEREMOTE_RC - : AT+PIN1234 - : AT_BAUD4 OK .

Servo ()

SG90 Micro Servo MotorVCC () : 5V GND () : GND SIG () : D8

#include // 1

#define CENTER 90#define LEFT 50#define RIGHT 130

int HandlePin = 8;Servo handle; // 2

void setup() { handle.attach(HandlePin); // 3 handle.write(CENTER); // 4}

void loop() {}

void doRemote(int val) { //HANDLE if(val == 'l') { handle.write(LEFT); // 5 } else if(val == 'c') { handle.write(CENTER); // 5 } else if(val == 'r') { handle.write(RIGHT); // 5 }}Servo .Servo handle . . . (90) . (130) (50) .

DC ()H-Bridge DC Motor Driver

MOTOR A / B : VCC : (+) GND : (-) A-IA : D5 A-IB : D6 B-IA : D10 B-IB : D11

int MotorPin1 = 5;int MotorPin2 = 6;int MotorPin3 = 10;int MotorPin4 = 11;

void setup() { pinMode(MotorPin1, OUTPUT); // 1 pinMode(MotorPin2, OUTPUT); pinMode(MotorPin3, OUTPUT); pinMode(MotorPin4, OUTPUT);}

void loop() {}

void doRemote(int val) { //MOTOR if(val == 'f') { digitalWrite(MotorPin1, HIGH); // 2 digitalWrite(MotorPin2, LOW); digitalWrite(MotorPin3, HIGH); digitalWrite(MotorPin4, LOW); } 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); }} , , . : : LOW :

#include #include

#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() { 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(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); } 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); }}

Mobile Part(Android)