73 lines
1.8 KiB
C++

#include <I2CRelay.h>
I2CRelay relay(8, 3); // Use your SDA/SCL pins
void setup() {
Serial.begin(115200);
relay.begin();
uint8_t addr = 0x08;
// 1. Scan the I2C bus
Serial.println("=== I2C Scan ===");
relay.scan();
// 2. Get info from the slave
Serial.println("=== Request Info ===");
String info = relay.requestSlaveInfo(addr);
Serial.print("Info: ");
Serial.println(info);
// 3. Change the slave name
Serial.println("=== Change Name ===");
relay.setSlaveName(addr, "FirstRelay");
delay(100);
Serial.println("Name changed.");
// 4. Turn relay 1 ON
Serial.println("=== Turn Relay 1 ON ===");
relay.setRelay(addr, 1, 1); // 1 = ON
delay(1500);
// 5. Turn relay 1 OFF
Serial.println("=== Turn Relay 1 OFF ===");
relay.setRelay(addr, 1, 0); // 0 = OFF
delay(500);
// 6. Turn all relays ON
Serial.println("=== Turn All Relays ON ===");
relay.setAllRelays(addr, 1); // 1 = ON
delay(500);
// 7. Turn all relays OFF
Serial.println("=== Turn All Relays OFF ===");
relay.setAllRelays(addr, 0); // 0 = OFF
delay(500);
// 8. Turn relay 2 ON for 2 seconds
Serial.println("=== Relay 2 ON for 2 seconds ===");
relay.setRelayTimer(addr, 2, 2000); // relay 2, 2000 ms
delay(2500);
// 9. Turn all relays ON for 3 seconds
Serial.println("=== All relays ON for 3 seconds ===");
relay.setAllRelaysTimer(addr, 3000); // 3000 ms
delay(3500);
// 10. Change slave address from 0x08 to 0x09
relay.setSlaveAddress(0x08, 0x10);
addr = 0x10; // Use new address for further commands
delay(1500);
// 11. Confirm new address by requesting info
info = relay.requestSlaveInfo(addr);
Serial.print("Info: ");
Serial.println(info);
Serial.println("=== Test Complete ===");
}
void loop() {
// Nothing here
}