블루투스 제어 로봇

이 블로그에서는 HC-05 블루투스 모듈과 Arduino 마이크로컨트롤러로 블루투스 제어 로봇을 만드는 방법을 보여드리겠습니다. Playstore에서 사용할 수 있는 모든 블루투스 모바일 앱을 사용하여 모바일을 블루투스 모듈에 연결할 수 있습니다.



필요한 구성 요소


  • 아두이노 우노
  • HC-05
  • 기어 모터
  • IC L293D

  • 아두이노 우노



    Arduino는 사용하기 쉬운 하드웨어 및 소프트웨어를 기반으로 하는 오픈 소스 전자 플랫폼입니다. Arduino 보드는 센서의 빛, 버튼의 손가락 또는 트위터 메시지와 같은 입력을 읽고 모터를 활성화하고 LED를 켜고 온라인에 무언가를 게시하는 출력으로 바꿀 수 있습니다. 이를 위해서는 아두이노 프로그래밍 언어(배선 기반)와 프로세싱 기반 아두이노 소프트웨어(IDE)를 사용한다.

    HC-05 블루투스 모듈



    HC-05는 프로젝트에 양방향(전이중) 기능을 추가할 수 있는 널리 사용되는 무선 모듈입니다. 이 모듈을 사용하여 Arduino와 같은 두 개의 마이크로컨트롤러 간에 통신하거나 전화나 노트북과 같은 Bluetooth 지원 장치와 통신할 수 있습니다. 많은 Android 애플리케이션을 이미 사용할 수 있으므로 이 프로세스가 훨씬 쉬워집니다.

    기어 모터



    속도를 낮추고 토크와 힘을 증가시키기 위한 기어박스가 있는 DC 모터입니다. 이러한 유형의 모터는 일반적으로 로봇 응용 분야에 사용됩니다.

    IC L293D



    IC L293D는 4.5~36볼트의 전압 범위에서 최대 600mA의 전류를 구동할 수 있는 듀얼 H-브리지 모터 드라이버 집적 회로입니다.



    해당 Bluetooth 앱에서 0를 누르면 모터가 꺼지고 1를 누르면 모터 1이 오른쪽으로 회전합니다. 이와 유사하게 2 , 34 를 탭하면 모터 1이 왼쪽으로, 모터 2가 오른쪽으로, 모터 2가 왼쪽으로 회전합니다.

    암호




    int motorPin1 = 3;
    int motorPin2 = 4;
    int motorPin3 = 5;
    int motorPin4 = 6;
    int state;
    int flag;
    void setup() {
      Serial.begin(9600);
      pinMode(3, OUTPUT);
      pinMode(4, OUTPUT);
      pinMode(5, OUTPUT);
      pinMode(6, OUTPUT);
    }
    
    void loop() {
      if (Serial.available() > 0) {
        state = Serial.read();
        flag = 0;
      }
      if (state == '0') {
        digitalWrite(3, LOW);
        digitalWrite(4, LOW);
        digitalWrite(5, LOW);
        digitalWrite(6, LOW );
        if (flag = 0) {
          Serial.println("MOTOR:off");
          flag = 1;
        }
      }
      else if (state == '1') {
        digitalWrite(3, LOW);
        digitalWrite(4, HIGH);
        if (flag == 0) {
          Serial.println("MOTOR1:right");
          flag = 1;
        }
      }
      else if (state == '2') {
        digitalWrite(3, HIGH);
        digitalWrite(4, LOW );
        if (flag == 0) {
          Serial.println("MOTOR1:left");
          flag = 1;
        }
      }
      else if (state == '3') {
        digitalWrite(5, LOW);
        digitalWrite(6, HIGH);
        if (flag == 0) {
          Serial.println("MOTOR2:right");
          flag = 1;
        }
      }
      else if (state == '4') {
        digitalWrite(5, HIGH);
        digitalWrite(6, LOW );
        if (flag == 0) {
          Serial.println("MOTOR2:LEFT");
          flag = 1;
        }
      }
    }
    

    좋은 웹페이지 즐겨찾기