Tabla de contenido

Publicidad

I²C – Wire
Para utilizar el bus I²C hay un premisa que se puede resumir en "uno escribe y el resto leen".
Su nombre proviene de Inter-Integrated Circuit y fue creado originalmente por Philips
Semiconductors en 1982 y publicada la especificación para su uso por otros fabricantes en 1992.
Consiste en un bus de 2 líneas (Reloj y Datos) por el que viajan paquetes de bits (8 en el caso de
Arduino). Para diferenciar cada uno de los dispositivos, en Arduino, se utilizan 7bit (eso significa
que puede haber hasta 127 dispositivos diferentes) siendo el último bit el que determina si el
maestro va va a escribir o leer en el bus. La hoja de características del dispositivo que conectemos
nos dirá cuál es la dirección del mismo y si es necesario enviar comandos así como el formato de
los datos que nos dará dicho dispositivo, en Arduino utilizaremos la librería Wire nos facilitará
enormemente la tarea. Para conocer más sobre el procotolo I²C se recomienda este tutorial (en
inglés):
https://learn.sparkfun.com/tutorials/i2c
Arduino Uno tiene las 2 líneas del BUS en los pines A4 y A5:
A5: SCL (línea del reloj).
A4: SDA (línea para los datos en serie).
Cuando se quiera utilizar la librería Wire, en nuestros programas hay que añadir un fichero antes de
la función setup():
#include <Wire.h>
Y dentro de la función
se introducirá el número (entre 1 y 127) que usaremos como esclavo. Si no se proporciona ningún
número, el Arduino será el maestro del bus I²C.
Wire.begin(direccion);
Desde este momento se pueden usar las funciones correspondientes al I²C:
requestFrom()
beginTransmission()
endTransmission()
write()
available()
read()
onReceive()
onRequest()
Se recomienda visitar la web oficial:
Diableco.com
hay que inicializar la comunicación en el puerto, como parámetro
setup()
//entre 1 y 127, vacío para ser Maestro
http://www.arduino.cc/en/Reference/Wire
- 18 -
Placa de desarrollo ArduPRENDE

Publicidad

Tabla de contenido
loading

Tabla de contenido