라즈베리파이 5

raspberry pi5 GPIO 제어 WiringPi 설치 방법

지구빵집 2024. 5. 7. 14:13
반응형

 

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 명령어로 아레와 같은 아름다운 이미지를 확인하실 수 있습니다. 즐 개발 하세요!

 

 

 

 

참고: WiringPi Git 링크

 

 

반응형