Este tópico contém respostas, possui 2 vozes e foi atualizado pela última vez por  Augusto 3 semanas .

Visualizando 7 posts - 1 até 7 (de 7 do total)
  • Autor
    Posts
  • #180398

    Augusto
    Participante

    Estou tentando sem sucesso usar uma eeprom 24c01 com meu arduino uno. Ela quase nunca grava e é muito inconstante a ler. Já segui diversos materiais da web e nada funciona…. segue um dos códigos que tentei:

    #include

    void eeprom_i2c_write(byte address, byte from_addr, byte data) {
    Wire.beginTransmission(address);
    Wire.write(from_addr);
    Wire.write(data);
    Wire.endTransmission();
    }

    byte eeprom_i2c_read(int address, int from_addr) {
    Wire.beginTransmission(address);
    Wire.write(from_addr);
    Wire.endTransmission(false);

    Wire.requestFrom(address, 1);
    if(Wire.available())
    return Wire.read();
    else
    return 0xFF;
    }

    void setup() {
    Wire.begin();
    Serial.begin(9600);

    // for(int i = 0; i < 7; i++) {
    // eeprom_i2c_write(B01010000, i, 6);
    // delay(100);
    // }
    //
    // Serial.println(“Writen to memory!”);
    }

    void loop() {
    for(int i = 0; i < 7; i++) {
    byte r = eeprom_i2c_read(B01010000, i);

    Serial.print(i);
    Serial.print(” – “);
    Serial.print(r);
    Serial.print(“\n”);
    delay(1000);
    }
    }

    0
    #180739

    Já tentou usar a biblioteca dessa EEPROM? https://github.com/jlesech/Eeprom24C01_02

     

    Abraços!

    Diogo – Equipe FilipeFlop

    0
    #181103

    Augusto
    Participante

    Já tentei e ocorre o mesmo, a leitura não condiz com a gravação…

    Estou usando o esquema de ligação desta imagem (não liguei o pino wp, a0, a1 e a2).

    O endereço, acredito que deveria ser 0x50.

    Dúvida, não é necessário o uso de resistores nos pinos de SCL / SDA ?

    0
    #181111

    Não condiz com a gravação em que sentido? Ele não grava o que está no código?

    0
    #181112

    Augusto
    Participante

    Isso, ele aparentemente não está gravando, por isso não lê. O que percebi com código de outro colega é que os pinos A0, A1, A2 devem estar ligados para que o endereço seja 0x50.

    0
    #181133

    Então não custa fazer esses testes com os pinos ligados haha

    0
    #182185

    Augusto
    Participante

    Realmente, com as ligações que eu estava fazendo não estava com o endereço 0x50. Fiz as ligações dos pinos A0, A1 e A2 no GND e não coloquei os resistores. No raspberry foi liso! Ainda não tive a oportunidade de testar no arduino, mas creio que deva ter o resultado semelhante.

    Postarei aqui quando tiver 😉

    Muuuito obrigado!!

    1+
Visualizando 7 posts - 1 até 7 (de 7 do total)

Você deve fazer login para responder a este tópico.