no way to compare when less than two revisions
Diferencias
Muestra las diferencias entre dos versiones de la página.
— | productos:relay [2021/03/30 17:18] (actual) – creado - editor externo 127.0.0.1 | ||
---|---|---|---|
Línea 1: | Línea 1: | ||
+ | ====== 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. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | 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 ===== | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | 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 < | ||
+ | | ||
+ | #define AddrI2C | ||
+ | // | ||
+ | void setup() { | ||
+ | Wire.begin(); | ||
+ | } | ||
+ | | ||
+ | // | ||
+ | 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, | ||
+ | delay(2000); | ||
+ | } | ||
+ | | ||
+ | // Activaremos un solo Relay en este ejemplo el 6 | ||
+ | Write_I2C_Relay(AddrI2C, | ||
+ | delay(3000); | ||
+ | | ||
+ | // Activaremos un solo Relay en este ejemplo el 5 | ||
+ | Write_I2C_Relay(AddrI2C, | ||
+ | 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, | ||