daeun

2-5_1

1 +#include <wiringPi.h> // GPIO Access Library 헤더파일 선언
2 +#include <softPwm.h> // Software PWM library 헤더파일 선언
3 +// Motor 핀 설정
4 +#define MOTOR_MT_N_PIN 17
5 +#define MOTOR_MT_P_PIN 4
6 +// Motor 회전 방향 정의
7 +#define LEFT_ROTATE 1
8 +#define RIGHT_ROTATE 2
9 +// Motor 정지 함수
10 +void MotorStop() {
11 +softPwmWrite(MOTOR_MT_N_PIN, 0);
12 +softPwmWrite(MOTOR_MT_P_PIN, 0);
13 +}
14 +// Motor 회전 함수
15 +void MotorControl(int rotate) {
16 +if (rotate == LEFT_ROTATE) {
17 +digitalWrite(MOTOR_MT_P_PIN, LOW);
18 +softPwmWrite(MOTOR_MT_N_PIN, 50);
19 +}
20 +else if (rotate == RIGHT_ROTATE) {
21 +digitalWrite(MOTOR_MT_N_PIN, LOW);
22 +softPwmWrite(MOTOR_MT_P_PIN, 50);
23 +}
24 +}
25 +int main(void)
26 +{
27 +if (wiringPiSetupGpio() == -1)
28 +return 1;
29 +// Motor 핀 출력으로 설정
30 +pinMode(MOTOR_MT_N_PIN, OUTPUT);
31 +pinMode(MOTOR_MT_P_PIN, OUTPUT);
32 +// Motor 핀 PWM 제어 핀으로 설정
33 +// 주기: 100ms
34 +softPwmCreate(MOTOR_MT_N_PIN, 0, 100);
35 +softPwmCreate(MOTOR_MT_P_PIN, 0, 100);
36 +while (1)
37 +{
38 +MotorControl(LEFT_ROTATE); // Motor 왼쪽으로 회전
39 +delay(2000);
40 +MotorStop(); // Motor 정지
41 +delay(1000);
42 +MotorControl(RIGHT_ROTATE); // Motor 오른쪽으로 회전
43 +delay(2000);
44 +MotorStop(); // Motor 정지
45 +delay(1000);
46 +}
47 +return 0;
48 +}
...\ No newline at end of file ...\ No newline at end of file