검색
홈으로 마이페이지 주문조회 장바구니
로그인
회원정보 게시판
회사소개 이메일
도서(BOOK)
키트(KIT)
특판 상품
졸업작품&전자기초
응용모듈
전자부품
모터
기구
엔클로져
고객센터 게시판
자유게시판
MCU 통합 게시판
강좌-RaspberryPi
강좌-드론(쿼드콥터)
강좌-아두이노(기초)
강좌-아두이노(응용)
신제품/신기술 소개
DIY 공작 게시판
윤교수의 연구실 칼럼
 ☎ : 02-776-4868

 F: 02-779-6757

☞ 평일 : 09~18시
☞ 주말 : 10~13시


국민822401-04-027758
☞ 예금주 : Ohm사
국민822401-04-027761
☞ 예금주 : R&C사
 
 
1 (주)알트소프트 사이트
 
2 LabVIEW 강좌 사이트
 
3 윤교수의 마이크로프로세서 월드
 
4 전자 엔지니어
 

 
강좌-RaspberryPi
 
[RaspberryPi] 17. GPIO-입력 실험
 
 
2014/02/03 (17:23)
작성자 : ohmsa 조회수 : 11843
 
17. GPIO-입력 실험

이번 강좌에서는 저번 강좌에 이어 C 언어를 이용한 GPIO 입력 실험에 대해서 알아 보도록 한다

코드 입력은 마찬가지로 nano를 이용하지만, 에디터는 사용자가 사용하기에 편리한 것을 사용해도 된다.

프로그램은 다음과 같은 동작을 하도록 작성해 본다.

SW1(GPIO 4) -> LED1(GPIO 0)

SW2(GPIO 5) -> LED2(GPIO 1)

SW3(GPIO 6) -> LED3(GPIO 2)

SW4(GPIO 7) -> LED4(GPIO 3)


$ cd gpio

$ sudo nano sw_led.c

 

 

int main(void)

{

       int value = 0;

 

       if(wiringPiSetup() == -1){

             printf("Please Setup wiringPi");

             return 1;

       }

 

       pinMode(0, OUTPUT); // GPIO 모드 설정

       pinMode(1, OUTPUT);

       pinMode(2, OUTPUT);

       pinMode(3, OUTPUT);

       pinMode(4, INPUT);

       pinMode(5, INPUT);

       pinMode(6, INPUT);

       pinMode(7, INPUT);

 

       while(1){

             value = digitalRead(4); // SW1(GPIO4) 읽어서

             digitalWrite(0, value); // LED1(GPIO0) 출력

 

             value = digitalRead(5);

             digitalWrite(1, value);

 

             value = digitalRead(6);

             digitalWrite(2, value);

 

             value = digitalRead(7);

             digitalWrite(3, value);

       }

 

       return 0;

}


작성이 다 끝났으면, Ctrl+X 후에 저장을 하고 에디터를 종료하면 된다. 위 코드를 보면, 처음 나온 함수가 보인다.

digitalRead(pin)은 해당 pin 값을 읽어서, LOW나 HIGH(0, 1)을 리턴해 주는 함수이다

그 외의 함수는 이전 강좌에서 다뤘기 때문에, 별도로 설명을 하지 않는다. 기억이 나지 않으면 이전 강좌를 참고하기 바란다.

다시 한번 강조하지만, 여기에 사용되는 API는 Gordon이라는 사람이 만든 라이브러리를 이용해서 실험하는 것이기 때문에 반드시 wiringPi 라이브러리를 이용하고 있다는 것을 기억하기 바란다.

참고 https://projects.drogon.net/raspberry-pi/wiringpi/

그럼, 위 코드를 빌드 해 보자.

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

$ sudo ./sw_led

빌드 후에 실행 파일을 실행 한 후에, SW1 ~ SW4까지 눌러 보면 각각 LED1 ~ LED4가 스위치의 상태에 따라 ON/OFF되면 문제없이 동작하는 것이다.

아래 동영상을 확인 해 보도록 한다.

이번 강좌는 스위치를 이용한 GPIO 입력에 대한 C 언어 코드를 작성해 보았다. 다소 간단한 코드이기 때문에 이해에는 문제가 없을 것으로 생각된다.

다음 강좌에서는 PWM 출력에 대해서 알아 보도록 하자.

                     
비밀번호 확인 닫기
 
 
 
 
 
 
[RaspberryPi] 17. GPIO-입력 실험 ohmsa 2014/02/03 11843
 
상호명 : R&C사 사업자등록번호 : 106-02-43112 통신판매업신고번호 : 용산 03564
대표 : 곽민수 사업장소재지 : 서울시 용산구 갈월동 17-1번지 세기빌딩 101호
전화 : ☎ : 02-776-4868 ,F: 02-779-6757 개인정보담당자 : 곽민수
[회사소개] [이용안내] [이용약관] [개인정보취급방침]
Copyright ⓒ 도서출판 OHM사와 학습기기 R&C사 All Rights Reserved.