본문 바로가기
Arduino(아두이노) 활용 강좌

L298P 다기능 모터쉴드 사용법 알아보기

by 오마이엔지니어 2019. 4. 7.
반응형

L298P 다기능 모터쉴드의 간단한 사용법을 알아보는 프로젝트 입니다

<L298P 다기능 모터 쉴드 이미지>


Arduino Uno 또는 그외 호환보드에 장착하여 DC모터, 스텝모터, 서보모터, 블루투스, 초음파센서, RGB LED 등을 사용할 수 있게 제작 된
L29P 듀얼 브릿지 드라이버 기반의 다기능 모터 쉴드 입니다

아두이노에 장착하여 블루투스나  기타 센서등을 사용해 간편하게 다양한 모터를 제어할 수 있어 유용합니다
(사용시 구동전압 5V, 외부전원 4.8~12V & 허용전류 2A 주의)



사용된 부품

Arduino Uno R3 (Italy)
L298P 다기능 모터쉴드
HC-06 블루투스 슬레이브 모듈

SG90 마이크로 서보모터
42BYGHN1641A-05-C

브래드 보드
5mm LED - 블루

가변저항 220 (Ohm)

점퍼케이블

 
구성 배선도-2개의 DC모터 구동시켜 보기


구성 배선도-2상 4선 바이폴라 스테핑 모터 구동시켜 보기

구성 배선도-HC-06 블루투스 모듈을 장착해서 LED 제어해 보기


구성 배선도-HC-06 블루투스 모듈을 장착해서 SG90 마이크로 서보모터 제어해 보기




사용된 예제소스

L298P DC모터 2개 구동 테스트.txt

L298P Stepper Motor 구동 테스트.txt

HC-06 Arduino LED Code.txt

HC-06 SG90 0_6.txt

HC-06 DHT.txt


사용된 라이브러리

DHT.zip


주의사항

스테핑모터 구동예제 테스트시 스테핑 모터 42BYGHN1641A-05-C 가 5V 0.8A 사양임을 확인해야 합니다
전원인가시 전압&전류에 주의 하도록 해야 합니다
특히 전류(A)가 부족하거나 PC 또는 노트북의 전류가 불안정하게 공급되면 모터가 구동하지 않을 수 있습니다

모터구동 예제코드를 확인해 보면 알수 있듯이
  int value;
  for(value = 0 ; value <= 255; value+=5)
 매개변수 int value: 듀티 사이클: 0 (언제나 꺼짐)과 255 (언제나 켜짐) 가 눈에 띕니다

블루투스를 사용하는 예제는 Serial Bluetooth Terminal 어플을 사용하였습니다

구글 플레이 스토어에서 Serial Bluetooth Terminal 앱을 다운로드 해서 설치해 줍니다
https://play.google.com/store/apps/details?id=de.kai_morich.serial_bluetooth_terminal


자세한 앱 사용방법은 아래 링크의 포스팅을 확인해 주세요
http://blog.daum.net/rockjjy99/2657

HC-06 Arduino LED Code 는 블루투스 앱을 사용해서 a, b 를 입력래서 LED가 온/오프 시키는 예제입니다
HC-06 SG90 0_6 는 블루투스 앱을 사용해서 0~6 까지 숫자를 입력해서 서보모터 각도를 제어하는 예제입니다
HC-06 DHT 는 블루투스 앱을 사용해서 실내 온습도를 확인해 보는 예제입니다 (위 첨부 된 DHT 라이브러리 설치가 필요합니다)

예제코드를 살펴보면
#include <SoftwareSerial.h>
#include <Servo.h>
Servo SG90;
SoftwareSerial BTSerial(0, 1); //Connect HC-06. Use your (TX, RX) settings  
기본 SoftwareSerial.h 라이브러리와 Servo.h 라이브러리를 사용합니다
TX, RX 배선은 0번, 1번 입니다 (아두이노에 쉴드 타입으로 장착했기 때문입니다)

void setup() 
{
  SG90.attach(9);
  Serial.begin(9600);
  BTSerial.begin(9600);  // set the data rate for the BT port
  SG90.write(0);
}
시리얼 통신속도 9600 이며 SG90서보모터 제어핀 9번 입니다

 void loop()
{
  if (BTSerial.available()) {
   // Serial.write(BTSerial.read());
   char s = BTSerial.read();
    if (s=='0') {SG90.write(0); s=20; delay(100);}
    if (s=='1') {SG90.write(30); s=20; delay(100);}
    if (s=='2') {SG90.write(60); s=20; delay(100);}
    if (s=='3') {SG90.write(90); s=20; delay(100);}
    if (s=='4') {SG90.write(120); s=20; delay(100);}
    if (s=='5') {SG90.write(150); s=20; delay(100);}
    if (s=='6') {SG90.write(180); s=20; delay(100);}
  }
  delay(100);
}
예제코드를 보면 알수 있듯이 블루투스 터미널 어플을 사용해서 0~6번을 입력해서

SG90 서보모터의 회전각도 0~180도까지 조정할 수 있습니다 (SG90 서보모터의 회전각도는 0~180도 사양입니다)


SG90 서보모터 구동예제 역시 모터를 구동시키는 예제이기때문에
전류(A)가 부족하거나 PC 또는 노트북의 전류가 불안정하게 공급되면 모터가 구동하지 않을 수 있습니다

#include "DHT.h"

#define DHTPIN 2     // what digital pin we're connected to
DHT.h 라이브러리를 사용하며 센서 연결핀은 2번 입니다

void loop() {
  // Give it time to calibrate
  delay(20000);

보정 타임입니다 (보정 타임이 너무 길다고 생각 된다면 숫자를 조정할수 있습니다)

void setup() {
  Serial.begin(9600);
  Serial.println("BlueCore Tech Temperature and Humidity");
시리얼 통신속도 9600에 통신이 시작되면 시리얼 모니터로 BlueCore... 메세지가 출력 되며 온습도가 출력 됩니다

  Serial.println("Humidity: ");
  Serial.print(h);
  Serial.println(" %.");
  Serial.println("  ");
  Serial.println("Temperature: ");
  Serial.print(t);
  Serial.println(" Degrees ");


프로젝트 동영상-2개의 DC모터 구동시켜 보기


프로젝트 동영상-2상 4선 바이폴라 스테핑 모터 구동시켜 보기


프로젝트 동영상-HC-06 블루투스 모듈을 장착해서 LED 제어해 보기


프로젝트 동영상-HC-06 블루투스 모듈을 장착해서 SG90 마이크로 서보모터 제어해 보기


프로젝트 동영상-HC-06 블루투스 모듈을 장착해서 DHT11 온습도센서로 실내 온습도 확인해 보기

L298P 다기능 모터쉴드는 이름에 걸맞게 다양한 모듈을 장착해서 테스트 할 수 있습니다
다른 모듈들을 테스트 할 기회가 생기게되면 추가로 포스팅을 이어나가겠습니다~



HC-06 DHT.txt
0.0MB
L298P Stepper Motor 구동 테스트.txt
0.0MB
HC-06 Arduino LED Code.txt
0.0MB
DHT.zip
0.01MB
L298P DC모터 2개 구동 테스트.txt
0.0MB
HC-06 SG90 0_6.txt
0.0MB
반응형

댓글