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.
 +
 +{{ :productos:relay-sb-610.png?600 | 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 =====
 +
 +{{ :productos:relay-sb-diag-600.png?610 | 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.
  
Recent changes RSS feed Creative Commons License Donate Minima Template by Wikidesign Driven by DokuWiki