L298n모터 드라이버

코드

void setup() {
  BT.begin(115200);

  
  pinMode(7,OUTPUT);
  pinMode(8,OUTPUT);
  pinMode(9,OUTPUT);
  pinMode(10,OUTPUT);

}

void loop() {
  if (BT.available()) {
    char c = BT.read();

  
    if (c == 'f'){      //전진
      digitalWrite(10,HIGH);
      digitalWrite(9,LOW);
      digitalWrite(8,HIGH);
      digitalWrite(7,LOW);
    }if (c == 'b'){     //후진
      digitalWrite(10,LOW);
      digitalWrite(9,HIGH);
      digitalWrite(8,LOW);
      digitalWrite(7,HIGH);
    }if (c == 'l'){   //좌회전
      digitalWrite(10,LOW);
      digitalWrite(9,HIGH);
      digitalWrite(8,HIGH);
      digitalWrite(7,LOW);
    }if (c == 'r'){    //우회전
      digitalWrite(10,HIGH);
      digitalWrite(9,LOW);
      digitalWrite(8,LOW);
      digitalWrite(7,HIGH);
    }if (c == 's'){
      
      digitalWrite(10,LOW);
      digitalWrite(9,LOW);
      digitalWrite(8,LOW);
      digitalWrite(7,LOW);
      
    }
  }
}

잘못된 점

  1. 통신 속도가 코드에는 9600이고 코드에는 115200이라서 틀림

코드

 BT.begin(115200);

아두이노 통신 속도 {Arduino}

9600

  1. 코드에서 불루투스핀 설정을 안함

바꾸지 않은 코드

void setup() {
  BT.begin(115200);

  
  pinMode(7,OUTPUT);
  pinMode(8,OUTPUT);
  pinMode(9,OUTPUT);
  pinMode(10,OUTPUT);

}

void loop() {
  if (BT.available()) {
    char c = BT.read();

  
    if (c == 'f'){      //전진
      digitalWrite(10,HIGH);
      digitalWrite(9,LOW);
      digitalWrite(8,HIGH);
      digitalWrite(7,LOW);
    }if (c == 'b'){     //후진
      digitalWrite(10,LOW);
      digitalWrite(9,HIGH);
      digitalWrite(8,LOW);
      digitalWrite(7,HIGH);
    }if (c == 'l'){   //좌회전
      digitalWrite(10,LOW);
      digitalWrite(9,HIGH);
      digitalWrite(8,HIGH);
      digitalWrite(7,LOW);
    }if (c == 'r'){    //우회전
      digitalWrite(10,HIGH);
      digitalWrite(9,LOW);
      digitalWrite(8,LOW);
      digitalWrite(7,HIGH);
    }if (c == 's'){
      
      digitalWrite(10,LOW);
      digitalWrite(9,LOW);
      digitalWrite(8,LOW);
      digitalWrite(7,LOW);
      
    }
  }
}

바꾼 코드

#include <SoftwareSerial.h>

SoftwareSerial BT(2, 3);

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

  pinMode(7,OUTPUT);
  pinMode(8,OUTPUT);
  pinMode(9,OUTPUT);
  pinMode(10,OUTPUT);

}

void loop() {
  if (BT.available()) {
    char c = BT.read();

  
    if (c == 'f'){      //전진
      digitalWrite(10,HIGH);
      digitalWrite(9,LOW);
      digitalWrite(8,HIGH);
      digitalWrite(7,LOW);
    }if (c == 'b'){     //후진
      digitalWrite(10,LOW);
      digitalWrite(9,HIGH);
      digitalWrite(8,LOW);
      digitalWrite(7,HIGH);
    }if (c == 'l'){   //좌회전
      digitalWrite(10,LOW);
      digitalWrite(9,HIGH);
      digitalWrite(8,HIGH);
      digitalWrite(7,LOW);
    }if (c == 'r'){    //우회전
      digitalWrite(10,HIGH);
      digitalWrite(9,LOW);
      digitalWrite(8,LOW);
      digitalWrite(7,HIGH);
    }if (c == 's'){
      
      digitalWrite(10,LOW);
      digitalWrite(9,LOW);
      digitalWrite(8,LOW);
      digitalWrite(7,LOW);
      
    }
  }
}

회로도

선 연결

n298l 모터 드라이버

  1. GND