아두이노 블루투스 LED, 모터제어

 

아두이노 보드와 블루투스 어플을 사용하여 LED 및 DC 모터를 제어하는 방법을 소개합니다.

 

적용어플은 이번에 적용할 코드에 특성화된 어플이기에 하기와 같이 접속하여 다운받으시기

바랍니다.

 

# 어플 다운로드 방법

  플레이스토어에서 Arduino Bluetooth 검색

 

 

 

# 아두이노 회로구성은 다음과 같습니다.

   - led에 220Ω 저항하나 추가해주세요. 저항 위치는 LED +,-극 어디에 연결해도

     상관없습니다.

 

 

DC 모터를 연결하고 싶다면 시 LED를 제거 후 모터를 연결하면 됩니다. ↓↓

위와 같은 종류의 DC 모터는 무극성 타입이며 +,- 연결 순서에 따라 회전방향이 달라집니다.

 

아두이노 코드는 다음과 같습니다.

 

#include <SoftwareSerial.h>

 

int bluetoothTx = 2;             // 디지털 2번핀 블루투스 TX핀 지정

int bluetoothRx = 3;            // 디지털 3번핀 블루투스 RX핀 지정

int led = 13;                      // 디지털 13번 핀 led 지정

int buttonPin1 = 7;             // 디지털 7번 핀 1번 버튼 지정

int buttonPin2 = 8;             // 디지털 8번 핀 2번 버튼 지정

int button1State = 0;          // 1번 버튼 상태 초기화

int button2State = 0;          // 2번 버튼 상태 초기화

int dataFromBt;                 // Bluetooth 앱으로부터 입력이 담길 변수 지정 

 

boolean lightBlink = false;    //boolean 변수 lightBlink에 거짓값 담는다. (초기화)

 

SoftwareSerial bluetooth(bluetoothTx, bluetoothRx);   //소프트웨어 시리얼 채널 지정

//하드웨어 시리얼인 아두이노의 Tx, Rx 핀을 사용하면 코드 업로드 및 다운로드 시  충돌 발생

 

void setup()

{

  Serial.begin(9600);            // 초당 9600비트 시리얼 통신 시작

  bluetooth.begin(9600);      // 초당 9600비트 블루투스 통신 시작

  pinMode(led, OUTPUT);     // led 연결 핀  출력지정

  pinMode(buttonPin1, INPUT); // 1번 버튼 연결 핀 입력지정

  pinMode(buttonPin2, INPUT); // 2번 버튼 연결 핀 입력지정

}

 

void loop()

{

 

  if (bluetooth.available())                 //bluetooth 사용 가능시

  { 

    // Serial.println((char)bluetooth.read());

    dataFromBt = bluetooth.read();     // bluetooth 입력값이 변수에 담긴다

 

    if (dataFromBt == '1')                 // bluetooth 입력이 1이면 

    {             

        Serial.println("led on");            // 시리얼모니터에 "led on" 출력

        digitalWrite(led, HIGH);           // led ON

        bluetooth.print("1");              // bluetooth 1을 출력한다.

    }

   if (dataFromBt == '0')                 //bluetooth 입력이 0이면 

   {

      Serial.println("led off");             // 시리얼모니터에 "led off" 출력

      digitalWrite(led, LOW);             // led OFF

      bluetooth.print("0");                 // bluetooth 앱의 off 버튼 동작

    }

    if (dataFromBt == 'b')                // 변수에 b가 입력되면(앱에서 b입력시)

    {

       Serial.println("a");                  // 시리얼 모니터 a출력

       lightBlink = true;                  // lightBlink 변수에 참값을 넣는다.

    }

    else                                       //변수에 b가 입력되지 않을 시

    {

       lightBlink = false;                 // lightBlink 변수에 거짓값을 넣는다.

    }

  }

    if (lightBlink)                         // lightBlink 참이면 (블루투수 b 입력시) led 점멸 반복

    {

       digitalWrite(led, HIGH);        // led ON

       bluetooth.print("1");            // 블루투스 1출력

       Serial.println("HIGH");          // 시리얼 모니터에서 "HIGH"를 출력

       delay(500);                       // 0.5초 딜레이

       digitalWrite(led, LOW);        // led OFF

       bluetooth.print("0");            // 블루투스 0 출력

       Serial.println("LOW");           //시리얼 모니터에서 "LOW"를 출력

       delay(500);                        // 0.5초 딜레이

  }

 

  //------arduino push button code----------------

 

  button1State = digitalRead(buttonPin1);      // 1번 버튼 상태값 변수에 7번핀 입력값을 대입

  button2State = digitalRead(buttonPin2);      // 2번 버튼 상태값 변수에 8번핀 입력값을 대입

  if (button1State == HIGH)                        // 버튼1번 누를 시

  { 

     digitalWrite(led, HIGH);                         // led ON

     bluetooth.print("1");                             // 블루투스 앱 1 출력

     Serial.println("on");                               //시리얼모니터 "on" 출력

  }

  if (button2State == HIGH)                         //버튼2번 누를 시 

  { 

      digitalWrite(led, LOW);                         // led OFF

      bluetooth.print("0");                             // 블루투스 앱 0 출력

      Serial.println("off");                              //시리얼모니터 "off" 출력

   }

}

 

 

원본 작성자가 올린코드는 약간의 에러가 있어 하기를 주석처리 하였습니다.

// Serial.println((char)bluetooth.read());

 

그로인해 시리얼 모니터 출력내용 코드 일부는 실행되지 않고 있습니다.

 

원본내용은 유투브 동영상에 연결되어 있으니 링크를 눌러주세요.

'아두이노' 카테고리의 다른 글

포토센서  (0) 2016.07.27
신호등제어  (0) 2016.07.27
코드밴더  (0) 2016.07.27
아두이노 블루투스 연결기초  (0) 2016.07.20
아두이노 개발환경 설치  (0) 2016.07.20

+ Recent posts