You are on page 1of 16

ARDUBASIC

Union entre Robtica y Programacin

INICIO

ARDUROVER

ARDUINO

ARDUROBOT

Control de M otores Paso a Paso

ArduRover I (Traccin)

Comunicacin IC
JUL 28

IR
ENTRADAS RECIENTES

Publicado por Jess


Midiendo Sensores
Memoria EEPROM

IC (Inter-Integrated Circuit) es un bus de comunicacin serie muy utilizado para la


comunicacin entre circuitos integrados, uno de sus usos mas comunes es la comunicacin
entre un microcontrolador y sensores perifricos. IC es un bus multi-maestro, es decir
permite que haya mltiples maestros y mltiples esclavos en el mismo bus. El bus IC utiliza dos
lneas para transmitir la informacin: una para los datos (SDA) y otra para la seal de reloj(SCL)
y una tercera de referencia (masa). La misma lnea de datos enva la informacin en las dos
direcciones (half duplex), por lo que es necesario un control de acceso al bus y un
direccionamiento de cada elemento. As cada dispositivo tiene una direccin de 7 bits, es
decir se pueden tener hasta 128 dispositivos conectados al mismo bus, hay que tener en
cuenta que existen versiones extendidas de I2C con direccionamiento a 8,10 y 12 bits.
open in browser PRO version

Are you a developer? Try out the HTML to PDF API

ArduRobot Equilibrios
ArduRobot Primeros Pasos
Exportando a Excel los valores

ARCHIVOS
mayo 2016
marzo 2016
enero 2016
diciembre 2015

pdfcrowd.com

Las lneas SDA y SCL estn independientemente conectadas a dos resistores Pull-Up que se
encargaran de que el valor lgico siempre sea alto a no ser que un dispositivo lo ponga a valor
lgico 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 Comunicacin I2C.


Bit de Start: Este bit provoca un cambio de 1 a 0 cuando SCL esta a nivel alto. (Master)
Direccin: El primer byte enviado empieza con 7 bits de direccin, el cual indica a quien
enviamos o solicitamos el dato. (Master)
R/W (Leer/Escribir): El siguiente bit indica si vamos a realizar una operacin de lectura o
escritura. (Master)
ACK: Este bit esta 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 enva deja el bit a 1 y si alguien ha recibido el
mensaje fuerza ese bit a 0. De esta manera confirma que le ha llegado el byte y
la transmisin puede continuar. (Slave)
Byte de Datos: Aqu ponemos el dato que queramos escribir o leer. (Master/ Slave)

open in browser PRO version

Are you a developer? Try out the HTML to PDF API

agosto 2013
julio 2013
junio 2013
mayo 2013
diciembre 2012
noviembre 2012
octubre 2012
septiembre 2012

CATEGORAS
pdfcrowd.com

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 lnea SCL se encuentra en alto. Esto
termina la transmisin y deja el bus libre para que otro puede empezar a transmitir. (Master)

7805
78XX
App Inventor 2
Arduino
ArduRobot
ArduRover
BA6289N
Bluetooth
Calibracin
Comunicacion Serie
Electrnica
Impresora 3D
Infrarrojos
Interrupciones
L293D
LCD
LDR
Led RGB
LM35
Modelado 3D

Pines en Arduino.

Motor

Arduino Uno

Pin analgico 4(SDA) y Pin analgico 5(SCL).

Arduino Mega

Pin 20 (SDA) y Pin 21(SCL).

Arduino Leonardo

Los pines I2C estn pintados al lado de AREF.

Programacin
Robtica
Servo
Ultrasonidos
Uncategorized
Visual Basic

En Arduino para usar el bus I2C es necesario la librera <Wire.h>, algunas de sus funciones son:
begin() Inicia el bus I2C y nos define como maestros.
begin(direccion) Inicia el bus I2C con la direccin de 7 bits de esclavo (opcional); si no se
especfica, se configura como maestro.
beginTransmission(direccion) Comienza una transmisin a un dispositivo I2C esclavo con la

open in browser PRO version

Are you a developer? Try out the HTML to PDF API

META
Registrarse
Acceder

pdfcrowd.com

direccin dada.
endTransmission() Finaliza la comunicacin con un STOP y deja el bus libre.
send(value) Enva datos desde un esclavo (un byte) en respuesta a una peticin de un maestro,
o prepara los bytes para transmitir de un maestro a un esclavo (entre llamadas a
beginTransmission() y endTransmission()).
send(string) Enva datos desde un esclavo(una cadena)
send(data, quantity) Enva datos desde un esclavo (un vector de datos) . quantity: el
nmero de bytes de datos para transmitir (byte)
write(value) Escribe los datos de un dispositivo esclavo(un byte) en respuesta a una peticin de
un maestro, o colas de bytes para la transmisin 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 nmero de bytes a transmitir
onReceive(funcion) Registra una funcin que ser llamada cuando un dispositivo esclavo reciba
una transmisin desde un maestro.
onRequest(funcion) Registra una funcin que ser llamada por el dispositivo esclavo cuando un
maestro solicite datos.

Acceder
RSS de las entradas
RSS de los comentarios
WordPress.com

CALENDARIO DE ENTRADAS

julio 2014
L
7
14
21
28
Jun

M
1
8
15
22
29

X
2
9
16
23
30

J
3
10
17
24
31

V
4
11
18
25

S
5
12
19
26

D
6
13
20
27
Sep

Si quieres saber algunos comandos ms, visita la pgina 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 uniones con unos cables como se
observa en el dibujo
Pines Duemilanove

Pines Mega 2560

Pin 4

Pin 20

Pin 5

Pin 21

Pin + 5 v

Pin + 5 v

Pin GND

Pin GND

open in browser PRO version

Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

Las lneas SDA y SCL estn independientemente conectadas a dos resistores Pull-Up de 10K
que se encargaran de que el valor lgico siempre sea alto a no ser que algunos de los Arduinos
lo ponga a valor lgico bajo. Aunque es cierto que se pueden conectar sin las pull-up y
funciona, para evitar posibles errores, lo mejor es asegurarse ponindolas.
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 Elctrico:

Esquema Prctico:

open in browser PRO version

Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

open in browser PRO version

Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

Cdigo del Programa Maestro:

Cdigo del Programa Esclavo:


open in browser PRO version

Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

Fotos:

open in browser PRO version

Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

Vista Superior

open in browser PRO version

Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

Vista Frontal

open in browser PRO version

Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

Detalle del Master

open in browser PRO version

Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

Detalle del Slave

open in browser PRO version

Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

Detalle de las resistencias pull-up


Cdigo fuente:
Maestro

Comunicacin_Master_I2C.ino

Esclavo

Comunicacin_Slave_I2C-ino

Ficha del Proyecto:


Comunicacion_I2C_Ficha_27
Vdeo resumen:

open in browser PRO version

Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

Acerca de estos anuncios

open in browser PRO version

Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

Share this:

Twitter

Facebook

Me gusta
S el primero en decir que te gusta.

Relacionado

Comunicacin Serie I
En "Arduino"

Comunicacin por
Infrarrojos
En "Arduino"

Comunicacin con Visual


Basic
En "Arduino"

Publicado el julio 28, 2014 en Arduino, Comunicacion Serie, Electrnica, Led RGB, Programacin y
etiquetado en Arduino en Espaol, Comunicacin Serie, Electrnica, Led RGB, Programacin en Espaol,
Robtica. Guarda el enlace permanente. Deja un comentario.

ArduRover I (Traccin)

Control de M otores Paso a Paso

COMMENTS 0

DEJA UN COMENTARIO

Deja un comentario
Introduce aqu tu comentario...

open in browser PRO version

Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

Crea un blog o un sitio web gratuitos con WordPress.com. El tema Mystique.

Seguir

Seguir ardubasic
Recibe cada nueva publicacin
en tu buzn de correo
electrnico.
nete a otros 120 seguidores

Introduce tu direccin de correo electrn

Suscrbeme
Construye un sitio w eb con
WordPress.com

open in browser PRO version

Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

You might also like