컴파일 파이의 백라이트는 GPIO 에 연결되어 있습니다. 모델에 따라 연결된 GPIO포트번호는 다릅니다. 따라서 백라이트를 코멘드라인 또는 프로그래밍 언어에 의해서 On/Off 할 수 있습니다.
끄기
# using Bullseye raspi-gpio set 34 op raspi-gpio set 34 dl # using Buster or prior OSes gpio mode 34 output gpio write 34 0
켜기
# using Bullseye raspi-gpio set 34 op raspi-gpio set 34 dh # using Buster or prior OSes gpio mode 34 output gpio write 34 1
끄기
# using Bullseye raspi-gpio set 44 op raspi-gpio set 44 dl # using Buster or prior OSes gpio mode 44 output gpio write 44 0
켜기
# using Bullseye raspi-gpio set 44 op raspi-gpio set 44 dh # using Buster or prior OSes gpio mode 44 output gpio write 44 1
pigpio 라이브러리를 사용해서 작성한 C소스입니다.
#include <pigpiod_if2.h> #define PIN 34 // CPi-A & CPi-B & CPi-S // #define PIN 44 // CPi-C void backlight_on() { auto instance = pigpio_start(NULL, NULL); set_mode(instance, PIN, PI_OUTPUT); gpio_write(instance, PIN, 1); pigpio_stop(instance); } void backlight_off() { auto instance = pigpio_start(NULL, NULL); set_mode(instance, PIN, PI_OUTPUT); gpio_write(instance, PIN, 0); pigpio_stop(instance); }
Note:
set_mode
펑션이 PI_NOT_PERMITTED
을 리턴할 수 있으므로, 아래와 같이 /lib/systemd/system/pigpiod.service
을 수정해서 사용하세요.
ExecStart=/usr/bin/pigpiod -l -x0x00FFFFFFFFFFFF
백라이트 밝기 조정을 위해서 CPi-A, CPi-B, CPi-S는 GPIO31, CPi-C는 GPIO26핀에 PWM을 사용하여 제어 할 수 있습니다. pigpio 라이브러리를 사용하여 백라이트의 밝기를 조정합니다.
#include <pigpiod_if2.h> #include <iostream> #include <string> using namespace std; #define PIN 31 // CPi-A & CPi-B // #define PIN 26 // CPi-C int main(int argc, char *argv[]) { int value = stoi(argv[1]); auto instance = pigpio_start(NULL, NULL); set_mode(instance, PIN, PI_OUTPUT); set_PWM_frequency(instance, PIN, 200); set_PWM_dutycycle(instance, PIN, value); pigpio_stop(instance); }
컴파일 및 실행 :
g++ backlight.cpp -lpigpiod_if2 -lpthread -o backlight ./backlight 0 # minimum brightness ./backlight 128 # medium brightness ./backlight 255 # maximum brightness