Escáner I2C en un entorno de automatización industrial
Cómo saber la dirección I2C con la que estás trabajando
8 septiembre, 2020 por
Escáner I2C en un entorno de automatización industrial
Boot & Work Corp. S.L., Marti Guillem Cura

Introducción

Un bus I2C es un sistema de comunicación ampliamente utilizado para la conexión interna entre diferentes dispositivos. Se basa en un dispositivo principal que funciona como un maestro que controla los otros dispositivos conocidos como esclavos. Para enviar datos a un esclavo específico, utiliza la dirección de su dispositivo proporcionada por el fabricante. En algunos casos el proveedor no da la dirección para trabajar, lo que complica la comunicación I2C. En este blog veremos cómo conocer las direcciones de los dispositivos que no conocemos en un principio.

Requisitos

  • Cualquiera de nuestros controladores¬†PLC

  • Un dispositivo I2C

  • Cables (opcional)

Escáner I2C en un entorno de automatización industrial

¬ŅC√≥mo se conecta?

Si estás usando un PLC de la familia MDuino, no necesitas ninguna conexión extra aparte de la del PC para cargar el código, ya que se incluye un RTC (Conexión en Tiempo Real) con comunicación I2C.

Si no, tendrás que conectar otro dispositivo usando los pines de comunicación SCL y SDA. Además, es mejor conectar la misma tierra para una conexión adecuada. Ambos dispositivos deben estar correctamente alimentados, comprueba la información del dispositivo proporcionada por el fabricante.

En la imagen de la izquierda puedes ver un ejemplo donde un MDunio 21+ se conecta a un Arduino Uno usando los pines I2C. En el Arduino Uno puedes usar el A4 (SCL) y A5 (SDA), podría cambiar en otros dispositivos de Arduino.

Interfaz de software

Programaremos usando Arduino Ide, que es un software basado en el lenguaje C. Industrial Shields proporciona placas para programar los controladores industriales. Básicamente no es necesario definir los pines y si son entradas o salidas ya que todo se configura automáticamente usando las placas. 

Para instalar las placas de Industrial Shields, el siguiente enlace explica todo:

Primeros pasos con los PLCs basados en Arduino

Despu√©s de haber configurado todas las placas, elija la placa y el modelo que utiliza y el puerto donde se conecta el dispositivo al PC en la secci√≥n de Herramientas de Arduino Ide. Usaremos un simple esquema que escanea el bus I2C en busca de dispositivos, mostrando los que se encuentran en el Serial Monitor de Arduino en el borde superior derecho de la pantalla. El c√≥digo se muestra en la secci√≥n de abajo. Aseg√ļrate de que el cable de la librer√≠a de Arduino est√° previamente instalado.¬† En este caso, estar√°s detectando, como hemos dicho antes, el dispositivo RTC mostrado como la direcci√≥n 0x68. Si hay otro dispositivo conectado, deber√≠a aparecer en este escaneo.

 Escáner I2C en un entorno de automatización industrial

Código

 

#include <Wire.h>
void setup()
{
  Wire.begin();
  Serial.begin(9600);
  while (!Serial);
  Serial.println("\nI2C Scanner");
}

void loop()
{
  byte error, address;
  int nDevices;
  Serial.println("Scanning...");
  nDevices = 0;
  for(address = 1; address < 127; address++ ) 
  {
    Wire.beginTransmission(address);
    error = Wire.endTransmission();
    if (error == 0)
    {
      Serial.print("I2C device found at address 0x");
      if (address<16) 
        Serial.print("0");
      Serial.print(address,HEX);
      Serial.println("  !");
      nDevices++;
    }
    else if (error==4) 
    {
      Serial.print("Unknown error at address 0x");
      if (address<16) 
        Serial.print("0");
      Serial.println(address,HEX);
    }    
  }
  if (nDevices == 0)
    Serial.println("No I2C devices found\n");
  else
    Serial.println("done\n");
  delay(5000);
}

¬ŅQuieres saber m√°s sobre la comunicaci√≥n I2C?

Revisa nuestros posts y trata de implementar un peque√Īo sistema electr√≥nico usando este protocolo.

Comparte en redes nuestros posts sobre dispositivos basados en Arduino industrial                


Encuentra lo que buscas.¬°Busca en nuestro Blog!

Escáner I2C en un entorno de automatización industrial
Boot & Work Corp. S.L., Marti Guillem Cura
8 septiembre, 2020
Compartir
Archivar

¬ŅBuscas tu controlador l√≥gico programable ideal?

Echa un vistazo a esta comparativa de producto de varios controladores industriales basados en Arduino.

Comparamos entradas, salidas, comunicaciones y otras especificaciones con las de los equipos de otras marcas destacadas.


Comparación PLC industrial >>>

¬ŅQuieres m√°s informaci√≥n?

¬°Rellena el formulario!

¬°Cu√©ntame m√°s!