Relay I2C

Esta tarjeta fue desarrollada para ser compatible con los productos Arduino(MR) y permite controlar hasta 8 relays de 12Vdc, con una interfaz I2C.

 Relay Arduino compatible

El contacto permite tener cargas de hasta 10A en 220Vac en los contactos del Relay, estos son controlados por un par de pines de la interfaz I2C.

Esta PCB permite configurar las direcciones desde la 0x20 a 0x27 (default), permitiendo poner en cascada hasta 8 PCB de Relays controladas por un par de señales desde Arduino o desde cualquier Microcontrolador que permita disponer de una interfaz I2C.

Las 8 salidas de Relay, disponen de contactos NA (Normal Abierto) y NC (Normal Cerrado), por cada relay. El NA lado izquierdo, y el NC al lado derecho de cada conector de Relay.

Tabla de Direccionamiento

Para el direccionamiento de la tarjeta, están disponibles en PCB tres jumper de soldadura, con las indicaciones A0, A1, y A2, estos jumper permiten modificar la dirección de la tarjeta de Relay, el default es que están abiertos, y tienen una resistencia de PULL-UP dejando los tres bit en HIGH, la siguiente tabla muestra los valores del direccionamiento de la PCB para la interfaz I2C.

A2 A1 A0 Dirección Estado
0 0 0 0x20 Todos Cerrados
0 0 1 0x21 A2=A1 ⇒ Cerrado
0 1 0 0x22 A2=A0 ⇒ Cerrado
0 1 1 0x23 A2 ⇒ Cerrado
1 0 0 0x24 A0=A1 ⇒ Cerrado
1 0 1 0x25 A1 ⇒ Cerrado
1 1 0 0x26 A0 ⇒ Cerrado
1 1 1 0x27 Todos Abiertos (Default)

Interfaz I2C

La interfaz es un conector estándar de 4P de 100mils y contiene la siguiente configuracion:

Nro Pin Señal
1 GND
2 VCC (+5V)
3 SDA
4 SCL

Este conector provee de la tensión de alimentación de la interfaz y tiene un led indicador de +5Vdc regulador, con capacitores de inmunidad de ruido y filtro para la tensión de control.

Alimentación Relays

 Relay Diagonal

La alimentación es un conector azul con prensa y tornillos que se le conecta una alimentación de +12Vdc y tiene protecciones de polaridad inversa para evitar errores de conexión.

Cada Relay visto de frente, tiene un conector azul de tres contactos, el punto medio de cada conector de Relay, tiene un NC (Normal Cerrado) a la derecha y un NA (Normal Abierto) al lado izquierdo, en cada conector de Relay.

Indicaciones de Actividad

Cada Relay tiene una luz piloto que nos permite saber que Relay tenemos activado, cada Relay a su vez en estado activo tiene el contacto cerrado entre el pin NO y Común que es el central.

Programa Ejemplo

Este es un programa de uso de ejemplo que permite realizar un manejo básico de la PCB, esta realizado con el Arduino-IDE.

//------------------------------------------------------------------
// Escritura en nuestro dispositivo I2C              ELECTROLINUX.CL
// 
// Demostracion usando la biblioteca estándar de Arduino IDE, que
// nos permite escribir un byte en un dispositivo desde la interfaz
// I2C.
// 
// Creado 30 Marzo 2021
// Este ejemplo es de dominio publico, puede modificarlo y usarlo
// sin restricciones.
//------------------------------------------------------------------

#include <Wire.h>

#define AddrI2C   0x27        // Dirección por defecto de nuestra PCB
//------------------------------------------------------------------
void setup() {
  Wire.begin();               // Inicializamos la biblioteca
}

//------------------------------------------------------------------
void Write_I2C_Relay( uint8_t Address, uint8_t data){
  Wire.beginTransmission(Address);
  Wire.write(data);
  Wire.endTransmission();
}

  
//------------------------------------------------------------------
void loop() {

// Bucle que muestra la secuencia de encendido de 0-7 y permite
// encender los 3 primeros relay en secuencia
for( uint8_t x=0 ; x < 8 ; x++ ){
  Write_I2C_Relay(AddrI2C, x);
  delay(2000);
}

  // Activaremos un solo Relay en este ejemplo el 6
  Write_I2C_Relay(AddrI2C, 0x40);
  delay(3000);

  // Activaremos un solo Relay en este ejemplo el 5
  Write_I2C_Relay(AddrI2C, 0x20);
  delay(3000);
}

Como podemos ver, el programa es simple, esta funcionando.

Hemos basado el uso de cada Relay, en una función que hemos creado para facilitar el manejo, la función Write_I2C_Relay acepta dos parámetros, el primero es la dirección del dispositivo I2C que en nuestro ejemplo es 0x27, y el segundo parámetro es el dato que queremos escribir.

productos/relay.txt · Última modificación: 2021/03/30 17:18 por rab
Recent changes RSS feed Creative Commons License Donate Minima Template by Wikidesign Driven by DokuWiki