Table of Contents
백라이트 제어하기
컴파일 파이의 백라이트는 GPIO 에 연결되어 있습니다. 모델에 따라 연결된 GPIO포트번호는 다릅니다. 따라서 백라이트를 코멘드라인 또는 프로그래밍 언어에 의해서 On/Off 할 수 있습니다.
코멘드라인 에서 제어
CPi-A & CPi-B & CPi-S : 포트 34
끄기
# 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
CPi-C : 포트 44
끄기
# 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
C 프로그램
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
Backlight Dimming
백라이트 밝기 조정을 위해서 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
