ARDUBASIC
Union entre Robótica y Programación
INICIO
ARDUROVER
A RDUINO
ARDUROBOT
← Control de Motores Paso a Paso
ArduRover I (Tracción) →
Comunicación I²C JUL 28
IR
ENTRADAS RECIENTES
Publicado por por Jesús Midiendo Sensores Memoria EEPROM
I²C (Inter-Integrated Circuit) es un bus de d e comunicación serie muy ut il ilizado izado para la comunicación entre circuitos integrados, uno de sus usos mas comunes es la comunicación
ArduRobot – Equil Equilibrios ibrios
entre un microcontrolador y se nsores periféricos. I²C es un bus mul multi-maestro, ti-maestro, es decir permite que haya múltiples múltiples maestros maest ros y múltiples múltiples e sclavos en el e l mismo mismo bus. E l bus I²C utiliza utiliza dos líneas lí neas para transmitir la información: información: una para los datos (SDA (SDA)) y otra para la señal de reloj(SCL)
Exportando a Excel los valores valo res
y una tercera de referencia (masa). La misma línea de datos envía la información en las dos direccioness (half duplex), direccione duplex), por lo que e s necesario nec esario un co ntrol de acceso al bus y un direccionamiento de cada elemento. Así cada dispositivo tiene una dirección de 7 bits, es decir se pueden tener hasta 128 dispositivos conectados al mismo bus, hay que tener en
ArduRobot – Primeros Pasos
ARCHIVOS mayo 2016 marzo 2016 enero 2016
Las líneas SDA y SCL están independientemente conectadas a dos resistores Pull-Up que se encargaran de que el valor lógico siempre sea alto a no ser que un dispositivo lo ponga a valor lógico bajo. Aunque es cierto que se pueden conectar sin las pull-up y funciona, para evitar posibles errores, lo mejor es asegurarse poniendo las pull-up.
noviembre 2015 septiembre 2015 agosto 2015 junio 2015 mayo 2015 abril 2015 febrero 2015 enero 2015 diciembre 2014 noviembre 2014 octubre 2014 septiembre 2014 julio 2014 junio 2014 mayo 2014 abril 2014 marzo 2014 enero 2014 noviembre 2013 octubre 2013 septiembre 2013
Estructura de la Comunicación I2C. Bit de Start: Este bit provoca un cambio de 1 a 0 cuando SCL es ta a niv el alto. (Master) Dirección: El primer byte env iado empieza con 7 bits de dirección, el cual indica a quien enviamos o solicitamos el dato. (Master) R/W (Leer/Escribir): El sig uiente bit indica si vamos a realizar una operación de lectura o escritura. (Master) ACK: Este bit es ta presente al final de cada byte que enviamos y nos permite asegurarnos que el byte ha llegado a su destino. De este modo el que envía deja el bit a 1 y si alguien ha recibido el mensaje fuerza ese bit a 0. De es ta manera confirma que le ha llegado el byte y la transmisi ón puede continuar. (Slave)
agosto 2013 julio 2013 junio 2013 mayo 2013 diciembre 2012 noviembre 2012 octubre 2012 septiembre 2012
CATEGORÍAS
Se espera un ACK del receptor. (Master/ Slave) Se repiten los dos últimos pasos tantas veces como sea necesario. Bit de Stop. Este bit provoca el paso de 0 a 1 cuando la línea SCL se encuentra en alto. Esto termina la transmis ión y deja el bus libre para que otro puede empezar a transmi tir. (Master)
7805 78XX App Inventor 2 Arduino ArduRobot ArduRover BA6289N Bluetooth Calibración Comunicacion Serie Electrónica Impresora 3D Infrarrojos Interrupciones L293D LCD LDR Led RGB LM35 Modelado 3D
Pines en Arduino.
Motor Programación
Arduino Uno
Pin analógico 4(SDA) y Pin analógico 5(SCL).
Arduino Me ga
Pin 20 (SDA) y Pin 21(SCL).
Arduino Leonardo
Los pines I2C están pintados al lado de AREF.
Robótica Servo Ultrasonidos Uncategorized Visual Basic
En Arduino para usar el bus I2C es necesario la librería , algunas de sus funciones son:
begin() Inicia el bus I2C y nos define como maestros. begin(direccion) Ini cia el bus I2C con la dirección de 7 bits de esclavo (opcional); si no se específica, se configura como maestro.
META Registrarse
dirección dada.
endTransmission() Finaliza la comunicación con un S TOP y deja el bus libre. send(value) Envía datos desde un esclavo (un byte) en respuesta a una petición de un maestro, o prepara los bytes para transmitir de un maestro a un esclavo (entre llamadas a beginTransmission() y endTransmission()). send(string) Envía datos desde un esclavo(una cadena) …… send(data, quantity) Envía datos desde un es clavo (un vector de datos) ……. quantity: el número de bytes de datos para transmi tir (byte) write(value) Escribe los datos de un dispositivo esclavo(un byte) en respuesta a una petición de un maestro, o colas de bytes para la transmisión de un maestro a esclavo del dispositivo (entre llamadas a beginTransmission () y endTransmission ()). write(string) Escribe los datos de un dispositivo esclavo (una cadena) …… write(data, length) Escribe los datos de un dispositivo esclavo (un vector de datos) ……… length: el número de bytes a transmitir onReceive(funcion) Registra una función que será llamada cuando un dispositivo esclavo reciba una transmisión desde un maestro. onRequest(funcion) Registra una función que será llamada por el dispositivo esclavo cuando un maestro solicite datos.
Si quieres saber algunos comandos más, visita la página http://arduino.cc/en/pmwiki.php? n=Serial/Write Ahora vamos a implementar estos conceptos a Arduino. En el ejemplo he utilizado dos placas Arduino ( Duemilanove y Mega 2560). He realizado unas unio nes con unos cables como se observa en el dibujo Pines Duemilanove
Pines Me ga 2560
Pin 4
Pin 20
Pin 5
Pin 21
Pin + 5 v
Pin + 5 v
RSS de las entradas RSS de los comentarios WordPress.com
CALENDARIO DE ENTRADAS julio 2014 L
M
X
J
V
S
D
7 14 21 28
1 8 15 22 29
2 9 16 23 30
3 10 17 24 31
4 11 18 25
5 12 19 26
6 13 20 27
« Jun
Sep »
Las líneas SDA y SCL están independientemente conectadas a dos resistores Pull-Up de 10K que se encargaran de que el valor lógico siempre sea alto a no ser que algunos de los Arduinos lo ponga a valor lógico bajo. Aunque es cie rto que se pueden conectar sin las pull-up y funciona, para evitar posibles errores, lo mejor es asegurarse poniéndolas. Transmito un bit con el Arduino Mega y al recibirlo el Arduino Duemilanove realiza una de las tres acciones siguientes: Si recibe un 1, enciende la patilla azul del Led RGB Si recibe un 2, enciende la patilla rojo del Led RGB Si recibe un 3, enciende la patilla verde del Led RGB
Esquema Eléctrico:
Esquema Práctico:
Código del Programa Maestro:
Fotos:
Vista Superior
Vista Frontal
Detalle del Master
Detalle del Slave
Detalle de las resis tencias pull-up
Código fuente: Maestro Esclavo
Comunicación_Master_I2C.ino Comunicación_Slave_I2C-ino
Ficha del Proyecto: Comunicacion_I2C_Ficha_27
Vídeo resumen:
Acerca de estos anuncios
Share this: Twitter
Facebook
Me gusta Sé el primero en dec ir que te gus ta.
Relacionado
Comunicación Serie I En "Arduino"
Comunicación por Infrarrojos En "Arduino"
Comunicación con Visual Basic En "Arduino"
Publicado el julio 28, 2014 en Arduino , Comunicacion Serie, Electrónica, Led RGB, Programación y etiquetado en Arduino en Español, Comunicación Serie, Electrónica, Led RGB, Programación en Español, Robótica. Guarda el enlace permanente. Deja un comentario.
ArduRover I (Tracción) →
← Control de Motores Paso a Paso
COMMENTS 0
Deja un comentario Introduce aquí tu comentario...
DEJA UN COMENTARIO
Crea un blog o un sitio web gratuitos con W ordPress.com. El tema Mystique.
Seguir
Seguir “ardubasic” Recibe cada nueva publicación en tu buzón de correo electrónico. Únete a otros 120 seguidores Introduce tu dirección de correo el
Suscríbeme Construye un sitio w eb con WordPress.com