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.4_arm64.deb .
# install it
sudo apt install ./wiringpi_3.4_arm64.deb
wiringPi 설치방법 2. 이미 빌트한 파일로 설치
여기에서 최근 버전의 파일을 다운 받습니다. 아래 명령어를 순서대로 실행하세요. 마찬가지로 최근 파일을 받아서 파일 이름을 변경한 후 실행하시면 됩니다.
# 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 |
더욱 좋은 정보를 제공하겠습니다.~ ^^