Go Down

Topic: Direccionamiento I2C (Read 428 times) previous topic - next topic

alonsoBrain


Hola
Queria utilizar el bus I2C para controlar esta placa
http://www.superrobotica.com/S310180.htm
controladora de servos

Por defecto tiene la direccion 0xC2, pero las librarias wire dicen que solo pueden direccionar hasta 127...

No puedo usar arduino para esto???

saludos

Si que puedes. Es cierto que el I2C sólo puede direccionar 127 dispositivos pero teniendo en cuenta que los 7 bits más altos es la dirección del dispositivo y el bit menos significativo es el que indica si es una escritura o lectura en el dispositivo. Con todo esto la dirección 0xC2 es en binario: 11000010. Como el bit menos significativo es un cero quiere decir que vas a escribir en el dispositivo. Si en vez de poner 0xC2 pones 0xC3, estarás leyendo del dispositivo.
Espero que te sirva de ayuda. Más información en:

http://es.wikipedia.org/wiki/I%C2%B2C

Un saludo. Ray.

alonsoBrain

Humm... Entonces el error que tengo es otro...

Sabes si he de modificar twi.h o wire.h ???
Estoy con el decimilia....
----------

 #define ATMEGA8

 #ifndef CPU_FREQ
 #define CPU_FREQ 16000000L
 #endif

 #ifndef TWI_FREQ
 #define TWI_FREQ 100000L
 #endif
----------------------------------------

un saludo y gracias por tu respuesta y valiosa informacion


alonsoBrain

#3
Feb 16, 2008, 01:02 pm Last Edit: Feb 16, 2008, 01:59 pm by alonsoBrain Reason: 1
Ya esta!

No tengo que usar el 0xC2 sino el (0xC2 >> 1) desplazado a la derecha un bit.
Es decir he de poner un 0x61.

El hecho de escribir o leer no se controla a nivel de bit, sino a nivel de comando
basta con Wire.requestFrom, para leer
y
Wire.beginTransmission  para escribir


uf! que descanso...

un saludo

Go Up