본문 바로가기

아두이노

블루투스 센서와 서보 모터 제어

반응형

블루투스 센서와 서보 모터를 사용하여 원격으로 서보 모터를 제어하는 아두이노 프로젝트를 만들어 보겠습니다. 이 프로젝트는 스마트 홈 자동화 또는 로봇 프로젝트에 유용할 수 있습니다. 아래는 이 프로젝트의 파트별 설명입니다.

  1. 이론 소개:
    • 이 프로젝트의 목표는 블루투스를 통해 아두이노와 연결된 스마트폰 또는 컴퓨터에서 서보 모터를 원격으로 제어하는 것입니다.
  2. 준비물:
    • 아두이노 보드 (예: Arduino Uno 또는 Arduino Nano)
    • 블루투스 모듈 (예: HC-05 또는 HC-06)
    • 서보 모터
    • 서보 모터 드라이버 (예: SG90 서보 모터와 호환되는 드라이버)
    • 점퍼 와이어
    • 전원 공급장치 (아두이노와 서보 모터를 위한)
  3. 비슷한 센서 모델명:
    • 블루투스 모듈: HC-05, HC-06
    • 서보 모터: SG90, MG90S
  4. 추천 보드 및 간단한 설명:
    • Arduino Uno 또는 Arduino Nano: 서보 모터 및 블루투스 모듈과 잘 호환되는 아두이노 보드입니다.
  5. 회로 구성:
    • 아래와 같이 회로를 연결합니다.
      • 블루투스 모듈: VCC - 5V, GND - GND, TX - RX, RX - TX
      • 서보 모터: 신호선(Signal) - 아두이노 디지털 핀 (예: 9번 핀), VCC - 5V, GND - GND
      • 서보 모터 드라이버: 서보 모터와 연결
      • 아두이노: 전원 공급을 위한 외부 전원 공급장치와 접지(GND) 연결
  6. 코딩 내용:
    • 아래 코드는 블루투스를 통해 받은 명령에 따라 서보 모터를 제어합니다.

 

#include <Servo.h>
Servo myservo;
int pos = 0;

void setup() {
  myservo.attach(9);  // 서보 모터를 9번 핀에 연결
  Serial.begin(9600); // 시리얼 통신 시작
}

void loop() {
  if (Serial.available() > 0) {
    char command = Serial.read(); // 시리얼로부터 명령을 읽음
    if (command == 'O') { // 'O' 명령을 받으면 서보 모터를 열린 상태로 이동
      for (pos = 0; pos <= 180; pos += 1) {
        myservo.write(pos);
        delay(15);
      }
    } else if (command == 'C') { // 'C' 명령을 받으면 서보 모터를 닫힌 상태로 이동
      for (pos = 180; pos >= 0; pos -= 1) {
        myservo.write(pos);
        delay(15);
      }
    }
  }
}

 

 

 

7. 코딩 내용 설명:

  • 블루투스 모듈을 통해 시리얼 명령을 받고, 'O' 명령을 받으면 서보 모터를 열린 상태로, 'C' 명령을 받으면 닫힌 상태로 이동합니다.

8. 코드 업로드 및 테스트:

  • 위 코드를 아두이노 보드에 업로드합니다.
  • 블루투스 모듈을 아두이노와 연결하고, 시리얼 통신 프로그램을 사용하여 블루투스 모듈에 연결합니다.
  • 'O'를 입력하면 서보 모터가 열린 상태로, 'C'를 입력하면 서보 모터가 닫힌 상태로 움직이는지 확인합니다.

9. 응용 업그레이드:

  • 블루투스를 통해 다양한 제어 명령을 추가할 수 있습니다.
  • 블루투스 앱을 개발하여 사용자가 스마트폰을 통해 제어할 수도 있습니다.

10. 전문용어 및 설명:

  • 블루투스 모듈: 무선 통신 기술로, 짧은 거리에서 데이터를 주고받을 수 있게 해주는 기술입니다.
  • 서보 모터: 특정 각도로 정확하게 움직일 수 있는 모터입니다.

11. 기타:

  • 이 프로젝트를 확장하여 로봇, 스마트 장치 또는 스마트 홈 제어 시스템에 적용할 수 있습니다.

 

반응형