Go Down

Topic: comunicacion I2C con arduino mega (Read 1 time) previous topic - next topic

David_Ardu

la direccion I2C es 0x51 y me dice que la direccion eeprom es 10 entonces lo que quiero es leer la direccion 10 pero no me deja y no se porque
#include <Wire.h>

#define adress 0x51
#define sensitivity 0x10 // tengo que leer 2 byte


int sensitividad_low,sensitividad_high;


void leer_adress();

void leer_adress()
{
  Wire.beginTransmission(adress);
  Wire.send(0);
  Wire.endTransmission();

  Wire.requestFrom(adress,2); // direccion y dos bytes para lectura
  while(Wire.available() < 2);
  sensitividad_high = Wire.receive();
  sensitividad_low = Wire.receive();
  Serial.println("DATO");
  Serial.print(sensitividad_high);
  Serial.println(sensitividad_low);
  Serial.println(" ");
  delay(1000);
}

void setup()
{
 Wire.begin();
 Serial.begin(9600);
}
void loop()
{
 leer_adress();
}



**************************
a ver si me podeis ayudar por favor
Gracias de antemano 8-)

David_Ardu

me auto contesto lo tengo resuelto !!

ASTROCAR

Hola que eeprom esta tratando de leer y si puedes comentar como resolvistes.

Saludos.
Atten.
Alexander Santana.
Venezuela-barcelona.

David_Ardu

Pues queria leer a eeprom del sensor asi que lo hice funcionar pidiendole mas byte al sensor y quedandome aquellos que me interesaban. como era la direccion 10 y 11 pues pedi 12 bytes y me quede con ellos

David_Ardu

Tengo un problema mas resulta que tengo un DS1307 (un reloj RTC)
y su direccion es 0x68 pero me gustaria activar la señal cuadrada que tiene en la direccion 0x07 y tengo que escribir 00010011b entonces no se como hacerlo , es decir, llamo primero al dispositivo y luego mando el byte o como ¿¿¿
os dejo el codigo para saber si esta bien , que ya creo k no


#include <Wire.h>
#define reloj 0x68

void setup()
{
 Wire.begin();
 Serial.begin(9600);
}
void loop()
{
 Wire.beginTransmission(reloj);
 Wire.send(0);
 Wire.endTransmission();
 delay(200);
 Wire.send(0x07,00010011)      //32.768kHz
}

graicas de antemano 8-)

chiva

Los send tienen que ir entre el start y endTransmission
Mercadillo electrónico. Kit iniciación a Arduino, shield LCD a color y más cosas!

David_Ardu


David_Ardu

Pero gracias ya lo solucione!! ahora tengo otro problema !!

Go Up