Intel Edison Breakout Board에서 C++로 DC 모터 제어하기 3 - 소프트웨어 실행
Small Devices/intel edison 2015. 10. 26. 00:19[Intel Edison Breakout Board에서 C++로 DC모터 제어하기]
Intel Edison Breakout Board에서 C++로 DC모터 제어하기 1 - 모터드라이버 준비
Intel Edison Breakout Board에서 C++로 DC모터 제어하기 2 - 하드웨어 연결
Intel Edison Breakout Board에서 C++로 DC모터 제어하기 3 - 소프트웨어 실행
eclipse에서 새로운 Intel Iot C/C++ Project를 생성하고 다음의 코드를 입력한다.
이번 포스팅에서는 "Intel Edison Breakout Board에서 C++로 LED Blink 하기 1(소프트웨어 구성 편)" 에서 설명하지 않은 API를 설명한다.
1. mraa::Pwm은 Pwm 관련 클래스로 다음의 Public Member Function을 포함한다.
2. PWM 생성자는 Pwm(int pin, bool owner=true, int chipid=-1) 의 인자를 받는다. pin은 MRAA Pin Number이고 owner는 destructor 호출시 해당 pin을 닫을 것인지를 설정한다. chipid는 pwmchip을 사용하는 것으로 raw mode에서만 사용된다.
3. pwm_pin->enable(true) 의 enable 함수는 PWM을 활성화 시킨다.
4. pwm_pin->config_percent(period, duty_cycle)은 PWM 출력을 설정하는 것으로 이번 실험에서는 주기는 1ms로, duty_cycle은 %를 변화시키면서 입력한다. DC모터드라이버가 동작하려면 어느 이상의 duty_cycle이 되어야 하기 때문에 30-100% 사이를 왔다갔다 하도록 하였다.
이 프로그램은 특정 방향으로 PWM Duty Cycle을 30-100%로 1초에 10%씩 증가시키고 100%에 도달하면 다시 30%까지 -10%로 조정한다. 30%로 돌아오면 방향을 바꾸는 것을 반복하는 프로그램이다.
다음은 동작 화면이다.