도서(BOOK)
키트(KIT)
특판 상품
졸업작품&전자기초
응용모듈
전자부품
모터
기구
엔클로져
개인결제용
 
고객센터 게시판
자유게시판
MCU 통합 게시판
강좌-RaspberryPi
강좌-드론(쿼드콥터)
강좌-아두이노(기초)
강좌-아두이노(응용)
신제품/신기술 소개
DIY 공작 게시판
윤교수의 연구실 칼럼
 
 
 
1 python_iot 제어 & 통신 프..
 
 
2 자료실이용시 참고사항
 
 
3 2024년 갑진년 (甲辰年) 새..
 
 
4 사무실 이전 안내
 
 
5 2023 계묘년 새해 복 많이..
 
 
 
 
 
 
 ☎ : 02-776-4868

 F: 02-779-6757
이메일문의
 
☞ 평일(월~금) : 10~17시
☞ 주말, 공휴일 휴무
 
국민822437-04-008415
☞ 예금주 : 이민희(옴사(OHM사))
 
 
1 윤교수의 마이크로프로세서 월드
 
2 (주)석영브라이스톤
 

 
강좌-RaspberryPi
 
[RaspberryPi] 18. GPIO-PWM 실험
 
 
2014/02/04 (03:03)
작성자 : ohmsa 조회수 : 8720
 

18. GPIO-PWM 실험

 

이전 강좌에서는 GPIO의 입출력에 관해서 C 언어를 이용해서 프로그램을 작성하는 방법에 대해서 알아 보았다. 이번 강좌에서는 GPIO 출력 포트를 PWM 신호로 출력하는 방법에 대해서 알아 보도록 한다.

 

16강좌에서 언급했듯이 GPIO 1 포트가 PWM 출력을 지원하기 때문에, 제작한 테스트 보드의 LED 2에 PWM 신호를 출력하여 단순히 ON/OFF 되는 것이 아니고, 밝기가 밝아 지거나 어두워 지는 코드를 작성해 보기로 한다.

 

           $ nano pwm.c

 

 

#include

#include

 

int main(void)

{

       int pwm;

 

       if(wiringPiSetup() == -1){

             printf("Please setup wiringPi");

             return 1;

       }

 

       pinMode(1, PWM_OUTPUT); //GPIO 1 -> PWM_OUTPUT

 

       while(1){

             for(pwm = 0; pwm < 1024; pwm++){

                    pwmWrite(1, pwm); // pwm 출력

                    delay(1);

             }

 

             for(pwm = 1023; pwm > 0; pwm--){

                    pwmWrite(1, pwm);

                    delay(1);

             }

       }

 

       return 0;

 

위 코드에서 새로 나온 함수 하나가 나온다.

 

pwmWrite(pin, value)는 PWM 신호를 해당 핀에 출력을 하는 함수로, value 값은 0 ~ 1023로 1024 레벨로 출력이 가능하다.

 

pinMode(1, PWM_OUTPUT)에서 볼 수 있듯이, 이전 강좌에서 GPIO 핀 모드를 INPUT 혹은 OUTPUT으로 설정을 하는 것이 아니고, PWM_OUTPUT이라고 정의해 준다.

 

에디터를 종료하면서 저장을 한 후에, 빌드 해 보자.

 

           $ gcc pwm.c –o pwm –I/usr/local/include –L/usr/local/lib –lwiringPi

           $ sudo ./pwm

 

별 문제 없다면 빌드가 정상적으로 완료되고, 실행을 시켜 보면 LED 2(OUTPUT 1)가 밝아 졌다가 어두워 지는 동작을 반복할 것이다.

 

아래 동영상을 한번 확인해 보자.

 

 

                     
비밀번호 확인 닫기
 
 
 
 
 
 
[RaspberryPi] 18. GPIO-PWM 실험 ohmsa 2014/02/04 8720
 


Copyright ⓒ 도서출판 옴사 All Rights Reserved. ☎ : 02-776-4868 ,F: 02-779-6757
상호명 : 옴사(OHM사) 사업장소재지 : 서울특별시 성북구 아리랑로 7길11,206호
사업자등록번호 : 416-18-31168 [사업자정보확인] 통신판매업신고번호 : 제2025-서울 성북-0591 호
대표 : 이민희 개인정보 보호 책임자 : 이민희