arduino

Páginas: 19 (4613 palabras) Publicado: 3 de septiembre de 2013
1

Manejo y Aplicaciones del Bus
I2C de Arduino

Ver. 1.0

José Manuel Ruiz Gutiérrez
José Manuel Ruiz Gutiérrez

Serie Monografías: Aplicaciones de1
ARDUINO

INDICE

1. Introducción
2. Ejemplos
3. Anexo 1: Descripción de las funciones de la
Librería Wire
4. Anexo 2: Protocolo I2C / TWI
5. Anexo 3: DISPOSITIVOS I2C en el mercado

Este trabajo está bajo licencia CreativeCommons Attribution 3.0 Unported License

Agosto de 2012 Versión de Documento: Versión. (Beta en Revisión)
Blog de referencia: http://josemanuelruizgutierrez.blogspot.com

2

Introducción

Con este nuevo manual se inicia una serie
de Monografías dedicadas a Arduino en la
que se abordarán de manera monográfica
temas que revistan especial interés en el
campo de las aplicaciones de laPlataforma
Open Hardware Arduino. En esta primera
entrega se pretende recoger la información
más relevante acerca del protocolo del bus
I2C que implementa Arduino y de la
librería que acompaña al IDE Arduino
(wire) con la que podemos realizar la
conexión de dos o más tarjetas de Arduino
y/o dispositivos que sean compatibles con
el bus I2C.

3

Ejemplos.
Ejemplo 1
Maestro escribeen Esclavo
En este ejemplo vemos como se comunican dos Arduinos a través del bus I2C
Un Arduino actúa como Maestro y el otro como Esclavo.
El maestro envía datos al esclavo, en nuestro ejemplo envía el valor de “x”
incrementándose y el esclavo lo escribe en el puerto serie pudiendo visualizar los envíos
en la ventana de monitorización del IDE Arduino.

En la figura vemos los conexionados4

Tabla de conexionado
Maestro
GND
A4
A5

Esclavo
GND
A4
A5

Modo de operación:
Se cargan cada uno de los sketch en la tarjeta Arduino que actúe de Maestro y la de
Esclavo y después se alimenta la tarjeta maestro con alimentación independiente
(batería) y conectamos el puerto USB de la tarjeta Esclavo y desde el IDE Arduino
seleccionamos la opción de monitorizar el puerto yveremos cómo se escriben los
valores.
Si desconectamos uno de los terminales de unión entre las tarjetas deja de realizarse el
envío de datos.

Sketch Maestro
#include
//
byte x = 0;
void setup()
{
Wire.begin();
}
//
void loop()
{
Wire.beginTransmission(4); // transmit to device #4
Wire.write("x is "); // sends five bytes
Wire.write(x); // sends one byte
5 Wire.endTransmission(); // stop transmitting
x++;
delay(500);
}
Sketch Esclavo
#include
//
void setup()
{
Wire.begin(4); // join I2C bus with address #4
Wire.onReceive(receiveEvent); // register event
Serial.begin(9600); // start serial for output
}
//
void loop()
{
}
//
void receiveEvent(int howMany)
{
while(1 < Wire.available()) // loop through all but the last
{
char c = Wire.read();// receive byte as a character
Serial.print(c); // print the character
}
int x = Wire.read(); // receive byte as an integer
Serial.println(x); // print the integer
}

6

Ejemplo 2
Maestro recibe del Esclavo
En este ejemplo vemos como se comunican dos Arduinos a través del bus I2C
Un Arduino actúa como Maestro y el otro como Esclavo.
El maestro envía datos al esclavo, en nuestroejemplo envía el valor de “x”
incrementándose y el esclavo lo escribe en el puerto serie pudiendo visualizar los envíos
en la ventana de monitorización del IDE Arduino.
En la figura vemos los conexionados

Tabla de conexionado
Maestro
GND
A4
A5

Esclavo
GND
A4
A5

7

Sketch Maestro
// Wire Master Reader
// by Nicholas Zambetti
// Demonstrates use of the Wire library
//Reads data from an I2C/TWI slave device
// Refer to the "Wire Slave Sender" example for use with this
// Created 29 March 2006
// This example code is in the public domain.

#include
void setup()
{
Wire.begin();
// join i2c bus (address optional for master)
Serial.begin(9600); // start serial for output
}
void loop()
{
Wire.requestFrom(2, 6); // request 6 bytes from slave device #2...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Arduino
  • Que es arduino
  • Arduinos
  • ARDUINO
  • Arduino
  • Arduino UNO
  • Arduino
  • arduino

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS