Salve a tutti, sono alle prese con il modulo RTC DS1307, che ho collegato ad un arduino nano.
La parte timer funziona correttamente, e dato che all'interno di tale modulo c'è pure una eeprom che mi farebbe utile, volevo provare ad usare pure quella.
La eeprom in questione è AT24C32, da schema è collegat sul i2c allo stesso modo del ds1307, e il suo indirizzo è 1010000 o anche 0x50.
Ho provato ad utilizzare tale eeprom, mi sono scaricato la libreria Eeprom24C32_64, ed ho provato ad utilizzare gli esempi che sono all'interno, ma non funziona nulla.
L'indirizzo è corretto, i collegamenti pure anche perchè è sulla stessa schedina del ds1307.
Il codice di esempio all'interno della libreia è questo:
#include <Wire.h>
#include <Eeprom24C32_64.h>
/******************************************************************************
* Private macro definitions.
******************************************************************************/
/**************************************************************************//**
* \def EEPROM_ADDRESS
* \brief Address of EEPROM memory on TWI bus.
******************************************************************************/
#define EEPROM_ADDRESS 0x50
/******************************************************************************
* Private variable definitions.
******************************************************************************/
static Eeprom24C32_64 eeprom(EEPROM_ADDRESS);
/******************************************************************************
* Public function definitions.
******************************************************************************/
/**************************************************************************//**
* \fn void setup()
*
* \brief
******************************************************************************/
void setup()
{
// Initialize serial communication.
Serial.begin(9600);
// Initiliaze EEPROM library.
eeprom.initialize();
const word address = 0;
const byte count = 94;
// Declare byte arrays.
byte inputBytes[count] = { 0 };
byte outputBytes[count] = { 0 };
// Fill input array with printable characters. See ASCII table for more
// details.
for (byte i = 0; i < count; i++)
{
inputBytes[i] = i + 33;
}
// Write input array to EEPROM memory.
Serial.println("Write bytes to EEPROM memory...");
eeprom.writeBytes(address, count, inputBytes);
// Read array with bytes read from EEPROM memory.
Serial.println("Read bytes from EEPROM memory...");
eeprom.readBytes(address, count, outputBytes);
// Print read bytes.
Serial.println("Read bytes:");
for (byte i = 0; i < count; i++)
{
Serial.write(outputBytes[i]);
Serial.print(" ");
}
Serial.println("");
}
/**************************************************************************//**
* \fn void loop()
*
* \brief
******************************************************************************/
void loop()
{
}
Prepara i Byte con un ciclo for
lo scrive dentro la eeprom,
Successivamente lo legge stampa a video il valore letto.
Nulla non funziona.
Qualcuno ha qualche idea?
Grazie.