Processor

【라즈베리파이】 wiringPi C 언어 : DC모터 제어 - L298 모터 드라이버 모듈 사용

작성자 임베디드코리아 작성일26-02-17 18:05 조회93회 댓글0건
◆ 라즈베리파이에서 DC모터를 제어하기 위해서 일단 DC모터가 저전류 모터여야 한다.
◆ 모터를 외부 전압을 사용하여 모터의 실제 허용 전류를 맞추어 주기 위해선  모듈을 사용한다.
◆  L298N 모터 드라이버 모듈을 사용한다.

--->>> 예제  DC-Motor_L298N.c  <<<------------------------
#include <stdio.h>
#include <wiringPi.h>
 
#define MOTOR_PLUS 4    // BCM_GPIO 23
#define MOTOR_MINUS 5    // BCM_GPIO 24
 
int main (void)
{
  if (wiringPiSetup () == -1)
  return 1 ;
 
  pinMode (MOTOR_PLUS, OUTPUT) ;    // 기본이 input 이므로 output 초기화 필요
  pinMode (MOTOR_MINUS, OUTPUT) ;
 
  for (;;)
  {
    digitalWrite (MOTOR_PLUS, 1) ;    // 앞으로  돌기
    digitalWrite (MOTOR_MINUS, 0) ;
 
    delay (1000) ; // ms
 
    digitalWrite (MOTOR_PLUS, 0) ;    // 뒤로 돌기
    digitalWrite (MOTOR_MINUS, 1) ;
 
    delay (1000) ; // ms
 
    digitalWrite (MOTOR_PLUS, 0) ;    // 멈추기
    digitalWrite (MOTOR_MINUS, 0) ;
 
    delay (1000) ; // ms
  }
    return;
}
---------------------------------------------------------------------------------
$ gcc  -o  DC-Motor_L298N  DC-Motor_L298N.c  -lwiringPi
$ sudo  ./DC-Motor_L298N


---> 예제  DC-Motor_L293D.c  <<<-------------------------
/*
    L293D 모터 드라이버 칩을 통한 서보형 DC모터 제어
    gcc -o 실행파일명 소스명 -lwiringPi
*/
 
#include <stdio.h>
#include <wiringPi.h>
 
#define MOTOR_PLUS 4    // BCM_GPIO 23
#define MOTOR_MINUS 5    // BCM_GPIO 24
 
int main (void)
{
  if (wiringPiSetup () == -1)
  return 1 ;
 
  pinMode (MOTOR_PLUS, OUTPUT) ;    // 기본이 input 이므로 output 초기화 필요
  pinMode (MOTOR_MINUS, OUTPUT) ;
 
  for (;;)
  {
    digitalWrite (MOTOR_PLUS, 1) ;    // 앞으로 돌기
    digitalWrite (MOTOR_MINUS, 0) ;
 
    delay (1000) ; // ms
 
    digitalWrite (MOTOR_PLUS, 0) ;        // 멈춰주는 부분이 필요
    digitalWrite (MOTOR_MINUS, 0) ;    // + - 전환이 너무 빠르면 보드 전원이 나간다
 
    delay (1000) ; // ms
 
    digitalWrite (MOTOR_PLUS, 0) ;    // 뒤로 돌기
    digitalWrite (MOTOR_MINUS, 1) ;
 
    delay (1000) ; // ms
 
    digitalWrite (MOTOR_PLUS, 0) ;        // 멈춰주는 부분이 필요
    digitalWrite (MOTOR_MINUS, 0) ;    // + - 전환이 너무 빠르면 보드 전원이 나간다
 
    delay (1000) ; // ms
  }
 
    return;
}
---------------------------------------------------------------------------------
$ gcc  -o  DC-Motor_L293D  DC-Motor_L293D.c  -lwiringPi
$ sudo  ./DC-Motor_L293D