MWX Library
v0.2.0
v0.2.0
  • The MWX Library
  • 改版履歴
  • MWXライブラリについて
    • License
    • 用語
    • 設計情報
  • インストール・ビルド
    • 環境 (OSなど)
    • TWELITE SDK のインストール
    • アクトのビルド
    • 新しいプロジェクトの作成
    • VSCodeのインストール
    • ビルド定義 Makefile
    • 他のプラットフォーム
  • サンプルアクト
    • act0 .. 4
    • Scratch
    • Slp_Wk_and_Tx
    • Parent_MONOSTICK
    • PingPong
    • BRD_APPTWELITE
    • BRD_I2C_TEMPHUMID
    • BRD_ARIA
    • PAL_AMB
    • PAL_AMB-usenap
    • PAL_AMB-bhv
    • PAL_MAG
    • PAL_MOT-single
    • PAL_MOT-fifo
    • PulseCounter
    • WirelessUART
    • Rcv_Univsl
    • Unit_???
  • API
    • 定義
    • クラスオブジェクト
      • the_twelite
      • Analogue
      • Buttons
      • EEPROM
      • PulseCounter
      • Serial
      • SerialParser
      • SPI
        • SPI (メンバ関数版)
        • SPI (ヘルパークラス版)
      • TickTimer
      • Timer0 .. 4
      • Wire
        • Wire (メンバ関数版)
        • Wire (ヘルパークラス版)
    • クラス
      • MWX_APIRET
      • alloc
      • axis_xyzt
      • packet_rx
      • packet_tx
      • serparser
      • pktparser
        • E_PKT
        • idenify_packet_type()
        • TwePacket
          • TwePacketTwelite
          • TwePacketIO
          • TwePacketUART
          • TwePacketPAL
      • smplbuf
        • .get_stream_helper()
        • smplbuf_strm_u8
      • smplque
      • mwx::stream
        • format (mwx::mwx_format)
        • mwx::bigendian
        • mwx::crlf
        • mwx::flush
        • stream_helper
      • SM_SIMPLE ステートマシン
    • コールバック関数
      • setup()
      • begin()
      • loop()
      • wakeup()
      • init_coldboot()
      • init_warmboot()
      • on_rx_packet()
      • on_tx_comp()
    • ビヘイビア
      • PAL_AMB-behavior
    • 関数
      • システム関数
        • millis()
        • delay()
        • delayMicroseconds()
        • random()
      • DIO 汎用ディジタルIO
        • pinMode()
        • digitalWrite()
        • digitalRead()
        • attachIntDio()
        • detachIntDio()
        • digitalReadBitmap()
      • ユーティリティ関数
        • Printf utils
        • pack_bits()
        • collect_bits()
        • Byte array utils
        • pack_bytes()
        • expand_bytes()
        • CRC8, XOR, LRC
        • div100()
        • Scale utils
        • pnew
    • 外部ライブラリ
      • EASTL
  • ボード (BRD)
    • <BRD_APPTWELITE>
    • <MONOSTICK>
    • PAL
      • <PAL_AMB>
      • <PAL_MAG>
      • <PAL_MOT>
      • <PAL_NOTICE>
    • <CUE>
    • <ARIA>
  • センサー・デバイス (SNS)
    • SHTC3 - 温湿度センサー
    • SHT3x - 温湿度センサー
    • LTR-308ALS - 照度センサー
    • MC3630 - 加速度センサー
    • BMx280 - 環境センサー
    • PCA9632 - LEDドライバ
    • SHT4x - 温湿度センサー
  • ネットワーク (NWK)
    • シンプル中継ネット <NWK_SIMPLE>
    • レイヤー ツリー ネット <NWK_LAYERED>
  • 設定 (STG) - インタラクティブモード
    • <STG_STD>
GitBook提供
このページ内
  • 処理の流れ
  • PCA9632について
  • 動作に必要な手続き
  • Wireバス
  • スリープ復帰時の手続き
  • コード例
  • メソッド
  • コンストラクタ, setup()
  • reset()
  • set_mode2()
  • set_power_mode()
  • set_blink_cycle() set_blink_cycle_ms()
  • set_blink_duty()
  • set_led_duty()
  • set_led_duty_all()
  • set_led_status()
  • probe()
  • show_registers()
PDFとしてエクスポート
  1. センサー・デバイス (SNS)

PCA9632 - LEDドライバ

PCA9632 - LEDドライバ

前へBMx280 - 環境センサー次へSHT4x - 温湿度センサー

最終更新 2 年前

通知パル (NOTICE PAL) に使用されている LED ドライバです。

通知PAL上での制御はより行います。

処理の流れ

  1. Wire.begin(): バスの初期化

  2. .setup(): クラスオブジェクトの初期化

  3. .reset(): ドライバの初期化

  4. 各種手続き

PCA9632について

4chのLEDドライバです。

  • 各chは消灯・全点灯・PWM点灯・点滅の4つの状態を指定できる

  • 各chで独立して照度制御(PWM)できる

  • 点滅指定したchはすべて同じ点滅パターンとなる

  • 点滅時はPWMによる各ch個別の照度制御ができる

動作に必要な手続き

Wireバス

setup()メソッド呼び出し前にWire.begin()によりWireが動作状態にしておきます。

スリープ復帰時の手続き

スリープ直前もWireバスが動作状態にしておきます(スリープ復帰後自動でWireを回復します)。

コード例

#include <TWELITE>
#include <SNS_PCA9632>

SNS_PCA9632 pca;

#include <SNS_PCA9632>とSNS_PCA9632クラスオブジェクトの宣言が必要です。

初期化&リセット

void setup() {
    Wire.begin();
    pca.setup();
    pca.reset();
}

点灯

...
 ​  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制御により点灯します。

点灯時はドライバが消費する電流値に気を付けてください。

メソッド

コンストラクタ, setup()

SnsPCA9632(uint8_t i2c_addr = DEFAULT_I2C_ADDRESS)
void setup(uint8_t i2c_addr = DEFAULT_I2C_ADDRESS)

コンストラクタではi2c_addrを指定します。

グローバル宣言でクラスオブジェクトを定義した場合、コンストラクタが呼びだされませんので、setup()を呼び出すようにしてください。

reset()

bool reset()

デバイスを初期化します。 レジスタアドレス 0x0 から順に {0x81, 0x35, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x0B, 0x00} を書き込みます。

set_mode2()

bool set_mode2(uint8_t u8var = 0x35)

MODE2レジスタに値を書き込みます。

set_power_mode()

bool set_power_mode(bool b_pow_on)

b_pow_onをtrueにすると通常運用、falseにするとスリープします。

set_blink_cycle() set_blink_cycle_ms()

bool set_blink_cycle(uint8_t u8var)
bool set_blink_cycle_ms(uint16_t u16ms)

点滅(グループPWM)周期を決めます。

u8varを指定すると周期は(u8var+1)/24[秒]となります。

u16msは周期を[ms]で指定します。

set_blink_duty()

bool set_blink_duty(uint8_t u8duty);

点滅(グループPWM)のデューティ比を決めます。点灯期間はu8duty/256となり、0は消灯相当、255は全灯相当になります。

set_led_duty()

bool set_led_duty(uint8_t port, uint8_t duty)

明るさ(PMW制御のデューティ比)を指定します。

portは対象のLED(SNS_PCA9632::LED1..4)を指定します。

dutyは0..255を指定し、比率duty/256で点灯します。

set_led_duty_all()

bool set_led_duty_all(uint8_t p1, uint8_t p2, uint8_t p3, uint8_t p4)

全てのLEDに対して明るさ(PMW制御のデューティ比)を指定します。

p1,p2,p3,p4はLED1..4のデューティで0..255を指定します。比率duty/256で点灯します。

set_led_status()

bool set_led_status(uint8_t u8led1, uint8_t u8led2, uint8_t u8led3, uint8_t u8led4)

全ての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

状態を変更しない

probe()

bool probe()

I2Cバス上にデバイスが存在すればtrueを返します。

show_registers()

void show_registers()

レジスタ(0x0-0x8)の値を表示します。

ボード(BRD) PAL_NOTICE