Descrição: I2C interface microcontroller simulate on Proteus
Laporan Vi Komunikasi i2cDeskripsi lengkap
Programación del PIC16 en C. Bus de comunicaciones I2C y ejemplos de programación de diferentes sensoresDescripción completa
Full description
práctica de uso de microcontrolador con memoria I2C
I2C EEPROM Interfacing With ARM7 Primer LPC214x, Real Tim Source CodeDescripción completa
..Descripción completa
Simulasi perempatan jalan menggunakan arduinoDeskripsi lengkap
Descripción completa
Descripción completa
LCD I2C, ARDUINO Y PANTALLA 128×64 DISPLAYDescripción completa
UNIVERSIDAD AUTONÓMA DE BAJA CALIFORNIA FACULTAD DE INGENIERÍA CAMPUS MEXICALI
Cobos Vigueras Omar
330958
CARRERA
PLAN DE ESTUDIOS
CLAVE DE ASIGNATURA
NOMBRE DE LA ASIGNATURA
ING. AEROESPACIAL
2009 - 2
11361
INSTRUMENTACIÓN INSTRUMENTACIÓN
LABORATORIO DE
NOMBRE DE LA PRÁCTICA
NO. PRÁCTICA
DURACIÓN
INSTRUMENTACIÓN INSTRUMENTACIÓN
COMUNICACIÓN COMUNICACIÓN I2C
7
2 HORAS
1. INTRODUCCIÓN Durante el desarrollo de esta práctica, el alumno se familiarizará con la comunicación I2C con dos Arduinos.
2. OBJETIVO EL objetivo de la práctica, es lograr lograr que mediante la interconexión y comunicación por I2C de 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 señal por I2C al Arduino Maestro para que encienda un led mientras el pushbutton se encuentre activado. 3. MARCO TEÓRICO I2C (Inter-Integrated Circuit) es un bus de comunicación muy utilizado para comunicar circuitos integrados, uno de sus usos más comunes es la comunicación entre un microcontrolador microcontrolador y sensores periféricos. 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 información 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 analógico 4(SDA) y el pin analógico 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 están 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 comunicación. 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 señal no se veía 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 librería Wire con #include . A continuación en el setup hay que usar la función Wire.begin() esto inicia el bus I2C y nos define FORMUL M.C. JOSÉ MANUEL RAMÍREZ ZARATE
REVIS DR. JUAN DE DIOS OCAMPO DÍAZ
APROB M.C. JORGE MIRAMON
AUTORIZ DR. DAVID I. ROSAS ALMEIDA
UNIVERSIDAD AUTONÓMA DE BAJA CALIFORNIA FACULTAD DE INGENIERÍA CAMPUS MEXICALI
Cobos Vigueras Omar
330958
como maestros. Dentro del begin se puede poner una dirección 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 comunicación. Una vez iniciado el bus podemos empezar a transmitir. Para ello se usan 3 instrucciones: 1.-Wire.beginTransmission(dirección): Inicia el bus y ponemos con qué dirección vamos a comunicarnos. 2.-Wire.write(bytes): Esta función envía uno o varios bytes a la dirección anterior. 3.-Wire.endTransmission(): Finaliza la comunicación con un STOP y deja el bus libre.
4. PROCEDIMIENTO (DESCRIPCIÓN) EQUIPO NECESARIO
Computadora Software de Arduino Placa Arduino UNO Led Resistencia de 220ohms Push-button Protoboard
MATERIAL DE APOYO
Internet
5. DESARROLLO DE LA PRÁCTICA Se trata de realizar un ejercicio que consiste en encender y apagar un led mediante el uso de la comunicación I2C entre dos Arduinos (uno Maestro y uno esclavo)
FORMUL M.C. JOSÉ MANUEL RAMÍREZ ZARATE
REVIS DR. JUAN DE DIOS OCAMPO DÍAZ
APROB M.C. JORGE MIRAMON
AUTORIZ DR. DAVID I. ROSAS ALMEIDA
UNIVERSIDAD AUTONÓMA DE BAJA CALIFORNIA FACULTAD DE INGENIERÍA CAMPUS MEXICALI
Cobos Vigueras Omar
330958
Figura 1 Diagrama a bloques del funcionamiento del programa del Arduino Esclavo de lectura de botón y envío de señal por I2C al Arduino Maestro
FORMUL M.C. JOSÉ MANUEL RAMÍREZ ZARATE
REVIS DR. JUAN DE DIOS OCAMPO DÍAZ
APROB M.C. JORGE MIRAMON
AUTORIZ DR. DAVID I. ROSAS ALMEIDA
UNIVERSIDAD AUTONÓMA DE BAJA CALIFORNIA FACULTAD DE INGENIERÍA CAMPUS MEXICALI
Cobos Vigueras Omar
330958
Figura 2 Diagrama a bloques del funcionamiento del programa del Arduino Maestro de lectura de señal de I2C enviada por Arduino Esclavo, encendido y apagado de LED.
FORMUL M.C. JOSÉ MANUEL RAMÍREZ ZARATE
REVIS DR. JUAN DE DIOS OCAMPO DÍAZ
APROB M.C. JORGE MIRAMON
AUTORIZ DR. DAVID I. ROSAS ALMEIDA
UNIVERSIDAD AUTONÓMA DE BAJA CALIFORNIA FACULTAD DE INGENIERÍA CAMPUS MEXICALI
//Comunicacion entre 2 Arduinos i2C (ARDUINO MAESTRO) #include int datos; int LED=7; void setup(){ pinMode(LED,OUTPUT); Wire.begin(); Serial.begin(9600); } void loop(){ Wire.requestFrom(1,1);//(dirección que se pone en el esclavo, Cantidad de info que se desea enviar (12bits))[indispensable para i2C] datos= Wire.read();//lee lo que el dispositivo envia para i2C Serial.println(datos); FORMUL M.C. JOSÉ MANUEL RAMÍREZ ZARATE
REVIS DR. JUAN DE DIOS OCAMPO DÍAZ
APROB M.C. JORGE MIRAMON
AUTORIZ DR. DAVID I. ROSAS ALMEIDA
UNIVERSIDAD AUTONÓMA DE BAJA CALIFORNIA FACULTAD DE INGENIERÍA CAMPUS MEXICALI
Cobos Vigueras Omar
330958
if(datos==1){ digitalWrite(LED,HIGH); } else{ digitalWrite(LED,LOW); //muestra }// si no hay nada //Serial.println(""); }
Figura 3 Diagrama de conexión físico de las placas Arduino, el Led y Pushbutton
FORMUL M.C. JOSÉ MANUEL RAMÍREZ ZARATE
REVIS DR. JUAN DE DIOS OCAMPO DÍAZ
APROB M.C. JORGE MIRAMON
AUTORIZ DR. DAVID I. ROSAS ALMEIDA
UNIVERSIDAD AUTONÓMA DE BAJA CALIFORNIA FACULTAD DE INGENIERÍA CAMPUS MEXICALI
Cobos Vigueras Omar
330958
6. FÓRMULAS O BIBLIOGRAFÍA La bibliografía utilizada para esta práctica es la ayuda que proporciona el entorno de programación de Arduino en su apartado de Ejemplos. Si se tiene alguna duda relacionada con la programación en Arduino se puede utilizar como ayuda toda la documentación disponible en la página oficial de Arduino. http://arduino.cc/en/Tutorial/Blink http://www.electroensaimada.com/i2c.html
7. RESULTADOS Y CONCLUSIONES El desarrollo de esta práctica conduce al alumno a la familiarización con la comunicación I2C entre dos Arduinos, utilizando algunas funciones básicas de programación.