라즈베리 파이 2 GPIO LED 라즈베리 GPIO PIN MAP이다 BCM은 Broad CoM , 라즈베리파이2는 CPU를 BCM2836 사용 pi@raspberrypi:~/c_project $ ls /sys/class/gpio/ export gpiochip0 unexport pi@raspberrypi:~/c_project $ echo 18 > /sys/class/gpio/export pi@raspberrypi:~/c_project $ ls /sys/class/gpio/ export gpio18 gpiochip0 unexport pi@raspberrypi:~/c_project $ echo out > /sys/class/gpio/gpio18/direction pi@raspberrypi:~/c_project $ echo 1 > /sys/class/gpio/gpio18/value 불이 켜진다. pi@raspberrypi:~/c_project $ echo 0 > /sys/class/gpio/gpio18/value 불이 꺼진다. 끝나고 났따면 echo 18 > /sys/class/gpio/unexport c언어 코딩을 이용한 led 제어 gpio_led 프로젝트를 생성한다. gpio_led.c 소스파일을 입력한다. #include <stdio.h> #include <fcntl.h> #include <unistd.h> #include <string.h> int main( int argc, char **argv) { int gpio_pin = 18; int fd; char buff[BUFSIZ]; fd = open("/sys/class/gpio/export", O_WRONLY ); if (fd == -1) { perror("fail to open export." ); return 1; } sprintf(buff, "%d" , gpio_pin); if (write (fd, buff, sizeof(buff)) == -1) { perror("fail to export GPIO" ); return 1; } close(fd); sprintf(buff, "/sys/class/gpio/gpio%d/direction" , gpio_pin); fd = open(buff, O_WRONLY); if (fd == -1) { perror("fail to open GPIO Direction File" ); return 1; } if (write (fd, "out" , 4) == -1) { perror("fail to set direction\n" ); return 1; } close(fd); sprintf(buff, "/sys/class/gpio/gpio%d/value" , gpio_pin); fd = open(buff, O_WRONLY); int i=0; for(i=0; i<10; i++) { // 1oop 열 번 돌면서 깜빡깜빡 거림. if (write (fd, "1" , sizeof("1")) == -1) { perror("fail to set value:1" ); return 1; } printf("set gpio %d value as HIGH\n", gpio_pin); sleep(1); if (write (fd, "0" , sizeof("0")) == -1) { perror("fail to set value:0" ); return 1; } printf("set gpio %d value as LOW\n", gpio_pin); sleep(1); } close(fd); fd = open("/sys/class/gpio/unexport" , O_WRONLY ); sprintf(buff, "%d" , gpio_pin); write(fd, buff, strlen(buff)); close(fd); return 0; } 컴파일 한다. Run As Configurations에 설정을 들어간다. Remote Absoulute File Path 시에 디렉터리를 설정하고 C파일 이름 gpio_led를 맞춰야 한다. 실행파일은 c언어 파일 이름이므로 붙여야 한다. Run을 실행하면 오류가 뜬다. Permission Deny putty로 돌아와 unexport를 하고, sudo ./gpio_led를 실행한다. pi@raspberrypi:~/c_project $ echo 18 > /sys/class/gpio/unexport pi@raspberrypi:~/c_project $ sudo ./gpio_led라즈베리 GPIO PIN MAP
Raspberry PI2 GPIO LED
'라즈베리파이' 카테고리의 다른 글
라즈베리 파이2 Wiring PI 이용한 LED_BTN (0) | 2016.03.09 |
---|---|
라즈베리 파이2 Wiring PI 설치 및 이용하여 LED_BLINK (0) | 2016.03.09 |
라즈베리 파이2 GPIO LED (0) | 2016.03.09 |
라즈베리 파이2 Eclipse 사용 하기 (0) | 2016.03.09 |
라즈베리 PI 2 초기 설정 (0) | 2016.03.09 |