산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

고성능 아두이노 DC 모터 제어 라이브러리

부품 및 소모품

Arduino UNO1개
범용 NPN 트랜지스터2개
범용 PNP 트랜지스터2개
저항 1kΩ2개
1N4007 다이오드4개

앱 및 온라인 서비스

프로젝트 소개

고성능 아두이노 DC 모터 제어 라이브러리

산업용 모션 제어 요구사항을 충족하도록 설계된 아두이노 DC 모터 제어 라이브러리를 소개합니다. 16가지 기능으로 모터를 매우 다채롭게 제어할 수 있습니다.

주요 기능

  1. 모터 회전 방향 제어
  2. 속도 0~100% 제어
  3. 소프트 스타트: 지정된 시간 동안 0%에서 목표 속도까지 부드럽게 가속
  4. 스무스 스톱: 현재 속도에서 0%까지 지정된 시간 동안 감속
  5. 조그 제어: 지정된 방향으로 짧은 충격(저크) 동작
  6. DC 브레이크: 즉각적인 비상 정지 (모터와 드라이버 회로가 동적 제동 저항 등 적절히 설계된 경우에만 작동)

라이브러리 함수 상세

함수설명
DC_Motor(int pin1, int pin2)DC 모터 구동용 아두이노 핀 선언
DC_Motor(int pin1, int pin2, int speed_flag)아날로그 출력 핀 선언(속도 제어용, speed_flag=1)
start_motor(int dir)지정된 방향으로 모터 시작(1=정방향, 0=역방향)
forward()정방향 회전 시작
reverse()역방향 회전 시작
dc_break()즉시 정지 (DC 브레이크, 하드웨어 지원 필요)
stop_motor()모터 정지
jogg_full_speed(int dir)5초간 최대 속도로 저크 동작
set_speed(int speed)속도 설정 0~100% (아날로그 핀 초기화 필요)
forward_with_set_speed()설정 속도로 정방향 회전
reverse_with_set_speed()설정 속도로 역방향 회전
run_motor(int dir, int speed)지정 방향/속도로 회전
jogg_set_speed(int dir, int speed)지정 속도로 저크 동작
motor_speed_zero()속도를 0으로 줄여 정지 (아날로그 출력)
soft_start(int dir, int speed, int time_in_sec)0→목표 속도까지 지정 초 동안 소프트 스타트
smooth_stop(int time_in_sec)현재 속도→0까지 지정 초 동안 스무스 스톱

주의: 속도 제어 기능(9~16번)은 아날로그 출력 핀으로 초기화해야 합니다(DC_Motor(pin1, pin2, 1)). stop_motor()는 디지털 출력이므로 속도 제어 시에는 motor_speed_zero()를 사용하세요.

예제 코드

1) 속도 제어 없이 정/역 회전

#include 
DC_Motor motor(8, 12);
void setup() {}
void loop() {
  motor.forward(); delay(5000);
  motor.stop_motor(); delay(2000);
  motor.reverse(); delay(5000);
  motor.stop_motor(); delay(2000);
}

2) 속도 제어로 정/역 회전

#include 
DC_Motor motor2(9, 10, 1); // 아날로그 핀 9,10
void setup() {}
void loop() {
  motor2.set_speed(40);
  motor2.forward_with_set_speed(); delay(5000);
  motor2.motor_speed_zero(); delay(2000);
  motor2.set_speed(80);
  motor2.reverse_with_set_speed(); delay(5000);
  motor2.motor_speed_zero(); delay(2000);
}

3) 조그 제어 (속도 제어 유/무)

#include 
DC_Motor motor(8, 12);
DC_Motor motor2(9, 10, 1);
void setup() {}
void loop() {
  motor.jogg_full_speed(1);
  motor.jogg_full_speed(0);
  motor2.jogg_set_speed(0, 80);
  motor2.jogg_set_speed(1, 30);
}

4) 소프트 스타트와 스무스 스톱

#include 
DC_Motor motor2(9, 10, 1);
void setup() {}
void loop() {
  motor2.soft_start(1, 90, 10); // 정방향, 90%, 10초
  delay(3000);
  motor2.smooth_stop(5);        // 5초 감속
  motor2.soft_start(0, 50, 6);  // 역방향, 50%, 6초
  delay(3000);
  motor2.smooth_stop(3);        // 3초 감속
}

회로도

아두이노 UNO와 H-브리지 드라이버를 사용한 DC 모터 제어 회로

고성능 아두이노 DC 모터 제어 라이브러리

라이브러리 사용법

DC_Motor 폴더를 아두이노 라이브러리 폴더(예: C:\arduino-1.6.7\libraries)에 복사하면 스케치에서 #include <DC_Motor.h>로 사용할 수 있습니다.

제조공정

  1. Satellite CCRMA 키트로 센서 구동 오디오 이펙트 만들기
  2. 집에서 직접 만드는 DIY 숙제 작성 머신 (펜 플로터)
  3. 아두이노 우노 기반 인간 감지 로봇: 센서 통합 단계별 가이드
  4. 아두이노용 양극성 스테퍼 모터 종합 라이브러리
  5. 라즈베리파이 모터 쉴드로 만드는 안드로이드 제어 원격 주행 로봇
  6. 서보 모터 구동 장애물 회피 로봇: 아두이노 & HC-SR04로 제작하기
  7. 아두이노 우노로 자율 주행 라인 트레이서 로봇 만들기
  8. 아두이노와 안드로이드로 룸바 크리에이트 2 제어하기: 단계별 가이드
  9. 아두이노 & MPU6050: SG90 & MG996R 서보 모터 정밀 제어
  10. 아두이노 프로젝트를 위한 스마트 실내 내비게이션 로봇 키트