Actions

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;
}
}



Linki