Anbieter: M5Stack
M5Stack 4IN8OUT Multi-channel DC Drive Module (STM32F030)
9,28 €16,40 €43% OFF
8 in den letzten 5 Stunden verkauft
Noch 50,00 € bis zum kostenlosen Versand
Voraussichtliche Lieferzeit : 26. Oktober - 28. Oktober.
Garantiert sicher bezahlen
Beschreibung
The 4IN8OUT Multi-channel DC Drive Module from M5Stack is a 4-Channel Passive Input/Switch + 8-Channel MOS Drive Output drive module.
The module adopts STM32F030 as the I2C IO chip and supports 9-24V DC input, with internal DC-DC circuitry to 5V.
Features
- Compatible with Basic/Fire/Core2
- Adopt STM32F030 as the IO chip, I2C communication, I2C address is changeable by modifying the register
- 8-channel MOS Drive circuitry shares the same VCC, channel load <1A
- 4-channel Passive Input share the same GND, no active signal or >5V signal allowed
- With internal MP1584, 9~24V -> 5V DC-DC converter
Package Contents
- 1x 4IN8OUT Multi-channel DC Drive Module
- 13x 2-pin Terminals
Specifications
| Input Voltage | 9~24V |
| Output Channel | 8 |
| Input Channel | 4 |
| Output Load | <1A each Channel |
| Communication Interface | I2C |
| I2C Address | Default 0x45, change by modifying register 0xF0 |
| Net Weight | 21.9g |
| Gross Weight | 52.5g |
| Product Size | 54*54*13mm |
| Package Size | 125*68*23mm |
Resources
- Product Documentation
- Schematic
Pinout
| M5Core | GPIO22 | GPIO21 | 5V | GND |
| 4IN8OUT MODULE 13.2 | SCL | SDA | 5V | GND |
Arduino Example
#include #include "MODULE_4IN8OUT.h" MODULE_4IN8OUT module; int _I2C_dev_scan(); void setup() { M5.begin(1,1,1,1); // Init M5Stack. 初始化M5Stack // while (1) { // _I2C_dev_scan(); // delay(1000); // } while (!module.begin(&Wire, 21, 22, MODULE_4IN8OUT_ADDR)) { Serial.println("4IN8OUT INIT ERROR"); M5.Lcd.println("4IN8OUT INIT ERROR"); _I2C_dev_scan(); delay(1000); }; Serial.println("4IN8OUT INIT SUCCESS"); } // void loop() { // } long interval = 0; bool level = false; void loop() { for (uint8_t i = 0; i < 4; i++) { if (module.getInput(i) != 1) { // M5.Lcd.fillRect(60 + 60 * i, 0, 25, 25, TFT_BLACK); M5.Lcd.fillRect(60 + 60 * i, 0, 25, 25, TFT_GREEN); } else { // M5.Lcd.fillRect(60 + 60 * i, 0, 25, 25, TFT_BLACK); // M5.Lcd.drawRect(60 + 60 * i, 0, 25, 25, TFT_GREEN); M5.Lcd.fillRect(60 + 60 * i, 0, 25, 25, TFT_RED); } M5.Lcd.drawString("IN" + String(i), 40 + 60 * i, 5); } M5.Lcd.drawString("4IN8OUT MODULE", 60, 80, 4); // M5.Lcd.drawString("FW VERSION:" + String(module.getVersion()), 70, 120, 4); if (millis() - interval > 1000) { interval = millis(); level = !level; for (uint8_t i = 0; i < 8; i++) { module.setOutput(i, level); if (level) { M5.Lcd.fillRect(20 + 35 * i, 200, 25, 25, TFT_BLACK); M5.Lcd.fillRect(20 + 35 * i, 200, 25, 25, TFT_BLUE); } else { M5.Lcd.fillRect(20 + 35 * i, 200, 25, 25, TFT_BLACK); M5.Lcd.drawRect(20 + 35 * i, 200, 25, 25, TFT_BLUE); } M5.Lcd.drawString("OUT" + String(i), 18 + 35 * i, 180); // delay(50); } } // if (M5.BtnB.wasPressed()) { // if (module.setDeviceAddr(0x66)) { // Serial.println("Update Addr: 0x66"); // } // } // M5.update(); delay(500); } int _I2C_dev_scan() { uint8_t error, address; int nDevices; Serial.println("[I2C_SCAN] device scanning..."); nDevices = 0; for (address = 1; address < 127; address++ ) { // The i2c_scanner uses the return value of // the Write.endTransmisstion to see if // a device did acknowledge to the address. Wire.beginTransmission(address); error = Wire.endTransmission(); if (error == 0) { Serial.print("[I2C_SCAN]: device found at address 0x"); if (address < 16) Serial.print("0"); Serial.print(address, HEX); Serial.println(" !"); nDevices++; } else if (error == 4) { Serial.print("[I2C_SCAN]: unknow error at address 0x"); if (address < 16) Serial.print("0"); Serial.println(address, HEX); } } Serial.print("[I2C_SCAN]:"); Serial.printf(" %d devices was found\r\n", nDevices); return nDevices; }14 Tage kostenlose Rückgabe1 Jahr Garantie
KundenserviceHilfe, wenn du sie brauchst
QualitätsgarantieDurch unser Versprechen abgesichert
Im Angebot
Im Angebot
Im Angebot
Im Angebot