Processor
【라즈베리파이】 wiringPi C 언어 : DC모터 제어 - L298 모터 드라이버 모듈 사용
작성자 임베디드코리아
작성일26-02-17 18:05
조회89회
댓글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