WiringPi는 라즈베리파이 보드용으로 C로 작성된 고성능 GPIO 액세스 라이브러리입니다.
주의: Pi5에서 PWM 지원은 현재 개발 중이며 현재로서는 작동하지 않습니다. 진행 상황이 궁금하신 경우 해당 이슈를 확인하시기 바랍니다.
우선 사용법을 설명하고 설치 방법 두 가지는 아래에 적습니다.
wiringpi를 사용한 코드를 컴파일하려면 wiringpi 와 이어링파이에 대한 링크뿐만 아니라 wiringPi.h를 포함해야 합니다: 보시다시피 p자가 대문자입니다. 주의하세요.
#include <wiringPi.h> // Include WiringPi library!
int main(void)
{
// uses BCM numbering of the GPIOs and directly accesses the GPIO registers.
wiringPiSetupGpio();
// pin mode ..(INPUT, OUTPUT, PWM_OUTPUT, GPIO_CLOCK)
// set pin 17 to input
pinMode(17, INPUT);
// pull up/down mode (PUD_OFF, PUD_UP, PUD_DOWN) => down
pullUpDnControl(17, PUD_DOWN);
// get state of pin 17
int value = digitalRead(17);
if (HIGH == value)
{
// your code
}
}
이 코드를 컴파일하려면 라이브러리를 컴파일시에 포함해야 합니다. 아래 형식을 따르세요: -l wiringPi는 라이브러리로 wiringPi를 함께 링크하여 컴파일 한다는 의미입니다. 뒤에 p는 대문자입니다.
gcc -o myapp myapp.c -l wiringPi
예제를 확인하고 Make를 사용하여 빌드하세요:
cd examples
make <example-name | really-all>
gpio 도구를 사용하면 단일 핀을 설정할 수 있을 뿐만 아니라 모든 핀의 상태를 한 번에 확인할 수 있습니다:
pi@wiringdemo:~ $ gpio readall
+-----+-----+---------+------+---+---Pi 3B--+---+------+---------+-----+-----+
| BCM | wPi | Name | Mode | V | Physical | V | Mode | Name | wPi | BCM |
+-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
| | | 3.3v | | | 1 || 2 | | | 5v | | |
| 2 | 8 | SDA.1 | IN | 1 | 3 || 4 | | | 5v | | |
| 3 | 9 | SCL.1 | IN | 1 | 5 || 6 | | | 0v | | |
| 4 | 7 | GPIO. 7 | IN | 0 | 7 || 8 | 0 | IN | TxD | 15 | 14 |
| | | 0v | | | 9 || 10 | 1 | IN | RxD | 16 | 15 |
| 17 | 0 | GPIO. 0 | IN | 1 | 11 || 12 | 1 | IN | GPIO. 1 | 1 | 18 |
| 27 | 2 | GPIO. 2 | IN | 1 | 13 || 14 | | | 0v | | |
| 22 | 3 | GPIO. 3 | IN | 1 | 15 || 16 | 0 | IN | GPIO. 4 | 4 | 23 |
| | | 3.3v | | | 17 || 18 | 1 | IN | GPIO. 5 | 5 | 24 |
| 10 | 12 | MOSI | IN | 0 | 19 || 20 | | | 0v | | |
| 9 | 13 | MISO | IN | 0 | 21 || 22 | 1 | IN | GPIO. 6 | 6 | 25 |
| 11 | 14 | SCLK | IN | 0 | 23 || 24 | 1 | IN | CE0 | 10 | 8 |
| | | 0v | | | 25 || 26 | 0 | IN | CE1 | 11 | 7 |
| 0 | 30 | SDA.0 | IN | 1 | 27 || 28 | 1 | IN | SCL.0 | 31 | 1 |
| 5 | 21 | GPIO.21 | IN | 0 | 29 || 30 | | | 0v | | |
| 6 | 22 | GPIO.22 | IN | 0 | 31 || 32 | 1 | IN | GPIO.26 | 26 | 12 |
| 13 | 23 | GPIO.23 | IN | 1 | 33 || 34 | | | 0v | | |
| 19 | 24 | GPIO.24 | IN | 1 | 35 || 36 | 1 | IN | GPIO.27 | 27 | 16 |
| 26 | 25 | GPIO.25 | IN | 1 | 37 || 38 | 1 | IN | GPIO.28 | 28 | 20 |
| | | 0v | | | 39 || 40 | 1 | IN | GPIO.29 | 29 | 21 |
+-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
| BCM | wPi | Name | Mode | V | Physical | V | Mode | Name | wPi | BCM |
+-----+-----+---------+------+---+---Pi 3B--+---+------+---------+-----+-----+
wiringPi 설치방법 1. 소스를 다운받아 컴파일 설치
create debian-package
현재 최신 파일의 이름은 아래 이미지와 같습니다.

# fetch the source
sudo apt install git
git clone https://github.com/WiringPi/WiringPi.git
cd WiringPi
# build the package
./build debian
mv debian-template/wiringpi_3.14_arm64.deb .
# install it
sudo apt install ./wiringpi_3.14_arm64.deb
wiringPi 설치방법 2. 이미 빌트한 파일로 설치
여기에서 최근 버전의 파일을 다운 받습니다. 아래 명령어를 순서대로 실행하세요. 마찬가지로 최근 파일을 받아서 파일 이름을 변경한 후 실행하시면 됩니다. 최신 파일이름은 WiringPi-3.14.tar.gz 입니다. 그러니까 아래 tar 명령을 아래처럼 합니다. 위에서 다운로드 했으면 아마 있을 것 같은데 없으면 다운받으세요. git clone~~ 머 이렇게? ^^
tar -xfv WiringPi-3.14.tar.gz 아시겠죠?
# unzip the archive
tar -xfv wiringpi_3.0.tar.gz
Install the debian package:
# install a dpkg
sudo apt install ./wiringpi-3.0-1.deb
설치하시고 gpio readall 명령어로 아레와 같은 아름다운 이미지를 확인하실 수 있습니다. 즐 개발 하세요!

'라즈베리파이 5' 카테고리의 다른 글
| 라즈베리 파이 애호가 퀴즈 II (1) | 2024.05.14 |
|---|---|
| 라즈베리 파이5에 관해 얼마나 알고 계십니까? - 파이 애호가 퀴즈 III (0) | 2024.05.10 |
| 라즈베리 파이 5 FAQ - 라즈베리 파이 5에 관해 자주 묻는 질문 (0) | 2024.05.09 |
| 라즈베리파이5 GPIO 40핀 헤더 기능 뜯어보기 (1) | 2024.05.08 |
| 라즈베리파이5 PCIe 활성화 방법 (1) | 2024.05.07 |
| 라즈베리파이 사용할 때 필요한 3가지 무료 프로그램 (0) | 2024.05.06 |
| 라즈베리파이에서 반드시 알아야 할 것들 (1) | 2024.05.03 |
| 라즈베리 파이 5에서 두 개의 카메라 모듈을 사용하는 방법 (2) | 2024.05.01 |
취업, 창업의 막막함, 외주 관리, 제품 부재!
당신의 고민은 무엇입니까? 현실과 동떨어진 교육, 실패만 반복하는 외주 계약,
아이디어는 있지만 구현할 기술이 없는 막막함.
우리는 알고 있습니다. 문제의 원인은 '명확한 학습, 실전 경험과 신뢰할 수 있는 기술력의 부재'에서 시작됩니다.
이제 고민을 멈추고, 캐어랩을 만나세요!
코딩(펌웨어), 전자부품과 디지털 회로설계, PCB 설계 제작, 고객(시장/수출) 발굴과 마케팅 전략으로 당신을 지원합니다.
제품 설계의 고수는 성공이 만든 게 아니라 실패가 만듭니다. 아이디어를 양산 가능한 제품으로!
귀사의 제품을 만드세요. 교육과 개발 실적으로 신뢰할 수 있는 파트너를 확보하세요.
캐어랩