KAmod I2C-IOexp16 (PL): Difference between revisions
From Kamamilabs.com - Wiki
Created page with "__jzpdf__ ===== Opis ===== <b>KAmod I2C-IOexp16 - Expander 16 cyfrowych linii I/O z układem MCP23017</b><br> <br> Moduł KAmod I2C-IOexp16 zawiera 16 linii cyfrowych, które mogą działać jako wejścia lub wyjścia. Sterowanie odbywa się poprzez magistralę I2C. <center> none|900px|thumb|center </center> ===== Podstawowe cechy i parametry ===== * 16 linii które mogą działać jako wejścia lub wyjścia, o maksymalnym prądzie 20 mA * Zawiera expa..." |
|||
Line 43: | Line 43: | ||
===== Program testowy ===== | ===== Program testowy ===== | ||
Program testowy został napisany w środowisku Arduino dla płytki KAmodESP32 POW RS485. Moduł KAmod I2C-IOexp16 został podłączony poprzez interfejs I2C. | Program testowy został napisany w środowisku Arduino dla płytki [https://kamami.pl/esp32/1191671-kamod-esp32-powrs485-plytka-ewaluacyjna-z-modulem-wi-fi-typu-esp32-wroom-i-interfejsem-rs485-5906623488070.html KAmodESP32 POW RS485]. Moduł KAmod I2C-IOexp16 został podłączony poprzez interfejs I2C. | ||
<syntaxhighlight lang="arduino" line> | <syntaxhighlight lang="arduino" line> | ||
#include <Wire.h> | #include <Wire.h> |
Revision as of 11:42, 3 April 2025

Opis
KAmod I2C-IOexp16 - Expander 16 cyfrowych linii I/O z układem MCP23017
Moduł KAmod I2C-IOexp16 zawiera 16 linii cyfrowych, które mogą działać jako wejścia lub wyjścia. Sterowanie odbywa się poprzez magistralę I2C.

Podstawowe cechy i parametry
- 16 linii które mogą działać jako wejścia lub wyjścia, o maksymalnym prądzie 20 mA
- Zawiera expander typu MCP23017
- Sterowanie poprzez interfejs I2C o taktowaniu max 1 MHz
- 3 linie adresowe umożliwiają dołączenie 8 modułów do jednej magistrali I2C
- Wyjście przerwania, które może być przypisane do linii portu A
- Zasilanie 2...5 V
Wyposażenie standardowe
Kod | Opis |
---|---|
KAmod I2C-IOexp16 | Zmontowany i uruchomiony moduł |
Schemat elektryczny

Rozmieszczenie linii I/O
Sygnały sterujące
Zasilanie
Wymiary
Program testowy
Program testowy został napisany w środowisku Arduino dla płytki KAmodESP32 POW RS485. Moduł KAmod I2C-IOexp16 został podłączony poprzez interfejs I2C.
#include <Wire.h>
#include <Adafruit_MCP23X17.h>
//LED
#define LED_PIN 2
#define MY_DELAY 2000
#define TEST_LED_ON 1
#define TEST_LED_OFF 0
//I2C
#define I2C_SDA 33
#define I2C_SCL 32
#define I2C_FREQ 100000
#define MCP23017_ARD 0x20
TwoWire I2Cbus = TwoWire(0);
Adafruit_MCP23X17 MCPIO;
int i;
//-----------------------------------------------------------------
void setup() {
Serial.begin(115200);
Serial.println();
Serial.println("Hello. KAmod Level Shift x4 tester");
pinMode(LED_PIN, OUTPUT);
digitalWrite(LED_PIN, HIGH);
delay(500);
while(!I2Cbus.begin(I2C_SDA, I2C_SCL, I2C_FREQ)){
Serial.println("I2C init failed...");
delay(500);
}
while (!MCPIO.begin_I2C(MCP23017_ARD, &I2Cbus)) {
Serial.println("MCP init failed...");
delay(500);
}
Serial.println("I2C init OK");
delay(100);
MCPIO.pinMode(TEST_LED, OUTPUT);
}
//-----------------------------------------------------------------
void loop() {
if (i & 1){
digitalWrite(LED_PIN, TEST_LED_ON);
} else {
digitalWrite(LED_PIN, TEST_LED_OFF);
}
MCPIO.pinMode(i, OUTPUT);
MCPIO.digitalWrite(i, TEST_LED_ON);
delay(100);
MCPIO.pinMode(i, OUTPUT);
MCPIO.digitalWrite(i, TEST_LED_OFF);
delay(100);
i++;
if (i >= 16){
i = 0;
}
}