Escolar Documentos
Profissional Documentos
Cultura Documentos
FACULTAD DE INGENIERA
CAMPUS MEXICALI
330958
CARRERA
PLAN DE ESTUDIOS
CLAVE DE ASIGNATURA
NOMBRE DE LA ASIGNATURA
ING.
AEROESPACIAL
2009 - 2
11361
INSTRUMENTACIN
LABORATORIO DE
NOMBRE DE LA PRCTICA
NO. PRCTICA
DURACIN
INSTRUMENTACIN
COMUNICACIN I2C
2 HORAS
1. INTRODUCCIN
Durante el desarrollo de esta prctica, el alumno se familiarizar con la comunicacin I2C con dos
Arduinos.
2. OBJETIVO
EL objetivo de la prctica, es lograr que mediante la interconexin y comunicacin por I2C de dos
Arduinos (uno Maestro y uno Esclavo) se encienda un led mediante un pushbutton.
Al Arduino Esclavo se le conectar el pushbutton y ste le enviar una seal por I2C al Arduino
Maestro para que encienda un led mientras el pushbutton se encuentre activado.
3. MARCO TERICO
I2C (Inter-Integrated Circuit) es un bus de comunicacin muy utilizado para comunicar circuitos
integrados, uno de sus usos ms comunes es la comunicacin entre un microcontrolador y sensores
perifricos.
El bus I2C cuenta con dos lineas SDA(datos) y SCL(clock) ademas de masa. Como hemos visto en
SPI a cada flanco de SCL se captura un bit de SDA, aunque la forma de transmitir la informacin es
diferente. Ademas hay que tener en cuenta que la linea SDA solo puede cambiar de valor en caso de
que la linea SCL este a 0.
Uso en Arduino
En el Arduino Uno los pines del I2C se encuentran en el pin analgico 4(SDA) y el pin analgico
5(SCL). En el Arduino Mega se encuentran en los pines 20 (SDA) y en el 21(SCL). Finalmente en
el nuevo Arduino Leonardo los pines I2C estn pintados al lado de AREF.
En lo referente a conexiones conectamos los SDA y los SCL de los dispositivos entre ellos y a la
vez una pull-up por cada linea. Estas resistencias pueden tener valores entre 1k y 10 k, dependiendo
de la velocidad de comunicacin. Un buen valor para esta velocidad es 4.7K. Aunque es cierto que
se pueden conectar sin las pull-up y funciona, en el osciloscopio la seal no se vea muy bien, as
que para evitar posibles errores lo mejor es asegurarse poniendo las pull-up.
Para usar el bus I2C en Arduino hay que incluir la librera Wire con #include <Wire.h>. A
continuacin en el setup hay que usar la funcin Wire.begin() esto inicia el bus I2C y nos define
FORMUL
REVIS
APROB
AUTORIZ
330958
como maestros. Dentro del begin se puede poner una direccin aunque si solo hay un master no es
necesario ya que nadie nos va a solicitar datos sino que seremos nosotros los que siempre iniciemos
la comunicacin.
Una vez iniciado el bus podemos empezar a transmitir. Para ello se usan 3 instrucciones:
1.-Wire.beginTransmission(direccin): Inicia el bus y ponemos con qu direccin vamos a
comunicarnos.
2.-Wire.write(bytes): Esta funcin enva uno o varios bytes a la direccin anterior.
3.-Wire.endTransmission(): Finaliza la comunicacin con un STOP y deja el bus libre.
4. PROCEDIMIENTO (DESCRIPCIN)
EQUIPO NECESARIO
Computadora
Software de Arduino
Placa Arduino UNO
Led
Resistencia de 220ohms
Push-button
Protoboard
MATERIAL DE APOYO
Internet
5. DESARROLLO DE LA PRCTICA
Se trata de realizar un ejercicio que consiste en encender y apagar un led mediante el uso de la
comunicacin I2C entre dos Arduinos (uno Maestro y uno esclavo)
FORMUL
REVIS
APROB
AUTORIZ
330958
Figura 1 Diagrama a bloques del funcionamiento del programa del Arduino Esclavo de lectura de botn y envo de
seal por I2C al Arduino Maestro
FORMUL
REVIS
APROB
AUTORIZ
330958
Figura 2 Diagrama a bloques del funcionamiento del programa del Arduino Maestro de lectura de seal de I2C
enviada por Arduino Esclavo, encendido y apagado de LED.
FORMUL
REVIS
APROB
AUTORIZ
330958
REVIS
APROB
AUTORIZ
330958
if(datos==1){
digitalWrite(LED,HIGH);
}
else{
digitalWrite(LED,LOW);
//muestra
}// si no hay nada
//Serial.println("");
}
FORMUL
REVIS
APROB
AUTORIZ
330958
6. FRMULAS O BIBLIOGRAFA
La bibliografa utilizada para esta prctica es la ayuda que proporciona el entorno de programacin
de Arduino en su apartado de Ejemplos. Si se tiene alguna duda relacionada con la programacin en
Arduino se puede utilizar como ayuda toda la documentacin disponible en la pgina oficial de
Arduino.
http://arduino.cc/en/Tutorial/Blink
http://www.electroensaimada.com/i2c.html
7. RESULTADOS Y CONCLUSIONES
El desarrollo de esta prctica conduce al alumno a la familiarizacin con la comunicacin I2C entre
dos Arduinos, utilizando algunas funciones bsicas de programacin.
8. ANEXOS
FORMUL
REVIS
APROB
AUTORIZ