通知パル (NOTICE PAL) に使用されている LED ドライバです。
通知PAL上での制御はボード(BRD) PAL_NOTICEより行います。
Wire.begin(): バスの初期化.setup(): クラスオブジェクトの初期化.reset(): ドライバの初期化4chのLEDドライバです。
setup()メソッド呼び出し前にWire.begin()によりWireが動作状態にしておきます。
スリープ直前もWireバスが動作状態にしておきます(スリープ復帰後自動でWireを回復します)。
#include <SNS_PCA9632>とSNS_PCA9632クラスオブジェクトの宣言が必要です。
...
pca.set_led_duty_all(
127,
127,
127,
127
);
pca.set_led_status(
SNS_PCA9632::LED_PWM,
SNS_PCA9632::LED_NOP,
SNS_PCA9632::LED_PWM,
SNS_PCA9632::LED_NOP);上記の例ではLED1,3をPWM制御により点灯します。
点灯時はドライバが消費する電流値に気を付けてください。
SnsPCA9632(uint8_t i2c_addr = DEFAULT_I2C_ADDRESS)
void setup(uint8_t i2c_addr = DEFAULT_I2C_ADDRESS)コンストラクタではi2c_addrを指定します。
グローバル宣言でクラスオブジェクトを定義した場合、コンストラクタが呼びだされませんので、setup()を呼び出すようにしてください。
デバイスを初期化します。
レジスタアドレス 0x0 から順に{0x81, 0x35, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x0B, 0x00} を書き込みます。
MODE2レジスタに値を書き込みます。
b_pow_onをtrueにすると通常運用、falseにするとスリープします。
点滅(グループPWM)周期を決めます。
u8varを指定すると周期は(u8var+1)/24[秒]となります。
u16msは周期を[ms]で指定します。
点滅(グループPWM)のデューティ比を決めます。点灯期間はu8duty/256となり、0は消灯相当、255は全灯相当になります。
明るさ(PMW制御のデューティ比)を指定します。
portは対象のLED(SNS_PCA9632::LED1..4)を指定します。
dutyは0..255を指定し、比率duty/256で点灯します。
全てのLEDに対して明るさ(PMW制御のデューティ比)を指定します。
p1,p2,p3,p4はLED1..4のデューティで0..255を指定します。比率duty/256で点灯します。
全てのLEDの点灯状態を変更します。
u8led1..4は順にLED1..4の状態を指定します。
指定できる状態は、以下の通りです。
| 内容 | |
|---|---|
SNS_PCA9632::LED_OFF |
消灯 |
SNS_PCA9632::LED_ON |
全灯 |
SNS_PCA9632::LED_PWM |
照度制御(PWM) |
SNS_PCA9632::LED_BLINK |
点滅制御(グループPWM) |
SNS_PCA9632::LED_NOP |
状態を変更しない |
I2Cバス上にデバイスが存在すればtrueを返します。
レジスタ(0x0-0x8)の値を表示します。