跳转到内容

Arduino库

如果您不使用Arduino,可以看看开发章节

安装

PlatformIO

在PlatformIO中使用本库,在platformio.ini中添加如下内容或者通过UI搜索BULLM_ExtendModule添加

ini
[env:myenv]
...
lib_deps = 
  bullm/BULLM_ExtendModule
...

Arduino IDE

在Arduino IDE中,直接在库管理器中搜索BULLM_ExtendModule并安装即可。注意是BULLM_ExtendModule不是ExtendMotor

简单示例

c
#include <Arduino.h>
#include <Wire.h>
#include "BULLM_ExtendRelay.h"

BULLM_ExtendRelay relay(0x41); // 实例化,默认地址为 0x41

void setup() {
    Wire.begin(); // 初始化 I2C
    Serial.begin(9600);

    if (!relay.begin()) {
        Serial.println("BULLM_ExtendRelay not found");
        return;
    }

    Serial.println("BULLM_ExtendRelay found");
    Serial.print("State before power -> ");
    Serial.println(relay.getRelayAll(), BIN); // 断电前保存的继电器状态

    relay.closeAllRelay(); // 上电后先关闭全部继电器
}

void loop() {
    relay.openAllRelay();
    delay(500);

    relay.closeAllRelay();
    delay(500);

    for (uint8_t i = 0; i < 4; ++i) {
        relay.setRelay(i, true);
        delay(150);
        relay.setRelay(i, false);
    }
}

方法

方法用途参数返回值
begin()初始化模块并将 4 个控制引脚配置为输出bool: 是否成功
closeAllRelay()关闭全部继电器bool: 是否成功
openAllRelay()打开全部继电器bool: 是否成功
setRelay(uint8_t pin, bool state)控制指定一路继电器状态pin: 0~3,表示第 0~3 路继电器
state: false 关闭,true 打开
bool: 是否成功
setRelayAll(uint8_t states)一次设置 4 路继电器状态states: 仅低 4 位有效,每一 bit 对应一路继电器
例如:0b00000101 表示 0、2 路打开,1、3 路关闭
bool: 是否成功
getRelay(uint8_t pin)读取指定一路继电器的当前状态pin: 0~3,表示第 0~3 路继电器bool: 当前状态
getRelayAll()读取 4 路继电器的当前状态uint8_t: 仅低 4 位有效,每一 bit 对应一路继电器

库开源地址