GPIO Raspberry Pi Sejin Oh GPIO Raspberry Pi
GPIO Raspberry. Pi Sejin Oh
GPIO Raspberry Pi 2
GPIO v Raspberry Pi b+ GPIO 핀 배치 Raspberry Pi 4
GPIO Library 설치 1. 라즈베리 파이의 업데이트 및 업그레이드 실시 $ sudo apt-get update $ sudo apt-get upgrade 2. 소스 관리 툴인 git을 다운로드 $ sudo apt-get install git-core 3. Git을 이용하여 “Wiring Pi” 라이브러리를 다운로드 $ git clone git: //git. drogon. net/wiring. Pi Raspberry Pi 5
GPIO Library 설치 4. 빌드 및 설치 진행 $ cd wiring. Pi $. /build 5. 설치 확인 $ gpio -v 설치 확인 (예시) Gpio version: 2. 08 Copyright © 2012 -2013 Gordon Henderson This is free software with ABSOLUTELY NO WARRANTY For details type: gpio –warranty This Raspberry Pi is a reversion 2 board Raspberry Pi 6
GPIO 출력 테스트 1. 작업 폴더 생성 및 이동 $ mkdir led $ cd led 2. 프로그램 작성 $ sudo nano led. c Raspberry Pi 8
GPIO 출력 테스트 #include <stdio. h> #include <wiring. Pi. h> while(1) { digital. Write(LED, 1); #define LED 23 delay(500); // ms int main(void) { if(wiring. Pi. Setup. Gpio()==-1) return 1; digital. Write(LED, 0); } pin. Mode(LED, OUTPUT); return 0; } Raspberry Pi delay(500); 9
GPIO 출력 테스트 3. 프로그램 빌드 $ sudo gcc –o led. c -lwiring. Pi 4. 프로그램 실행 $ sudo. /led Raspberry Pi 10
GPIO 출력 테스트 1. 작업 폴더 생성 및 이동 $ mkdir led 2 $ cd led 2 2. 프로그램 작성 $ sudo nano led 2. c Raspberry Pi 12
GPIO 출력 테스트 #include <stdio. h> #include <wiring. Pi. h> while(1) { digital. Write(LED 1, 1); digital. Write(LED 2, 1); #define LED 1 23 #define LED 2 24 delay(500); // ms int main(void) { if(wiring. Pi. Setup. Gpio()==-1) return 1; digital. Write(LED 1, 0); digital. Write(LED 2, 0); pin. Mode(LED 1, OUTPUT); pin. Mode(LED 2, OUTPUT); } delay(500); return 0; } Raspberry Pi 13
GPIO 출력 테스트 3. 프로그램 빌드 $ sudo gcc –o led 2. c -lwiring. Pi 4. 프로그램 실행 $ sudo. /led 2 Raspberry Pi 14
GPIO Five LED Lighting Raspberry Pi 15
GPIO Five LED Lighting v 결과확인 Raspberry Pi 16
GPIO 응용 – Five LED Lighting v 5개의 LED 순차적으로 ON/OFF Raspberry Pi 17
GPIO 출력 테스트 v python을 이용한 LED on/off 테스트 § $ sudo python import RPi. GPIO as GPIO import time GPIO. setmode(GPIO. BCM) GPIO. setup(23, GPIO. OUT) GPIO. setup(24, GPIO. OUT) while (True): GPIO. output(23, GPIO. output(24, time. sleep(0. 5) Raspberry Pi True) False) 18
GPIO 입력 테스트 LED : 220Ω Button : 10 KΩ v 스위치 회로 - 회로도 Raspberry Pi 20
GPIO 입력 테스트 v 프로그램 작성 1. 작업 폴더로 이동 • $ sudo cd ~/gpio pin. Mode(SW, INPUT); 2. 프로그램 작성 • $ sudo nano input. c while(1) { digital. Write(LED 1, 0); digital. Write(LED 2, 0); #include <stdio. h> #include <wiring. Pi. h> #define LED 1 23 //gpio 23 #define LED 2 24 //gpio 24 #define SW 25 //gpio 25 if(digital. Read(SW) == 1) { digital. Write(LED 1, 1); digital. Write(LED 2, 1); delay(1000); } int main(void) { if(wiring. Pi. Setup. Gpio() == -1) return 1; } pin. Mode(LED 1, OUTPUT); pin. Mode(LED 2, OUTPUT); Raspberry Pi 21 } return 0;
GPIO 안전 종료를 위한 매크로 버튼 – buttonforhalt. c #include <stdio. h> #include <wiring. Pi. h> #define BT 1 23 #define BT 2 16 int main(void){ if (wiring. Pi. Setup. Gpio() == -1){ return 1; } pin. Mode(BT 1, INPUT); pin. Mode(BT 2, INPUT); Raspberry Pi } while (1){ if (digital. Read(BT 1) == 1){ printf("POWER OFFn"); system("sudo poweroff"); delay(1000); } if (digital. Read(BT 2) == 1){ printf("System Restartn"); system("sudo reboot"); delay(1000); } } 24
- Slides: 24