Añadiendo una EEPROM 24LC256 a la Arduino Due (2 / 3 paso)

Paso 2: Tiempo de código.

Aquí son algunos fragmentos de código que utilizo en mis bocetos.

En primer lugar, incluir los encabezados de biblioteca de alambre en algún lugar cerca de la cima del boceto:

/* Use 24LC256 EEPROM to save settings */
 #include <Wire.h>

Añadimos algunas funciones para leer y escribir bytes de la EEPROM (solo les importa bytes individuales pero hay una característica de la escritura de página en el chip también). Cuenta que hay una definición de macro de 0 x 50... Esta es la dirección de la viruta en el bus i2c (puede conectar más cosas de i2c bus i2c y seleccione que uno desea hablar cambiando la dirección).

/* These two functions help us write to the 24LC256 EEPROM chip */
 #define EEPROM_ADDR 0x50
 void EEPROM_write(unsigned int addr,byte data) {
   int rdata = data;
   Wire.beginTransmission(EEPROM_ADDR);
   Wire.write((int)(addr >> 8));       // MSB
   Wire.write((int)(addr & 0xFF));     // LSB
   Wire.write(rdata);
   Wire.endTransmission();
   //Serial.print("EEPROM write: addr: ");
   //Serial.print(addr);
   //Serial.print(" ");
   //Serial.println(data);
   delay(5);
 }

 

byte EEPROM_read(unsigned int addr) {
   byte data = 0xFF;
   Wire.beginTransmission(EEPROM_ADDR);
   Wire.write((int)(addr >> 8));       // MSB
   Wire.write((int)(addr & 0xFF));     // LSB
   Wire.endTransmission();
   Wire.requestFrom(EEPROM_ADDR,1);
   if (Wire.available()) data = Wire.read();
   //Serial.print("EEPROM read: addr: ");
   //Serial.print(addr);
   //Serial.print(" ");
   //Serial.println(data);
   delay(5);
   return data;
 }

Usted puede eliminar el comentario la Serial.print(...) líneas si desea ver alguna salida de depuración.

En arduinos setup() función iniciar la biblioteca de alambre y puede leer valores iniciales.
Aquí he leído en dos bytes ( flags y max_cc ), dos palabras ( lean_min y lean_max ) y un conjunto de palabras sd_max[3] :

    // read values saved in the EEPROM
    Wire.begin();
        // read values saved in the EEPROM
     Wire.begin();
     flags=EEPROM_read(0);
     max_cc=EEPROM_read(1);
     lean_min=word(EEPROM_read(3),EEPROM_read(2));
     lean_max=word(EEPROM_read(5),EEPROM_read(4));
     for(int j=0;j<3;j ) {
       sd_max[j]=word(EEPROM_read(7 j*2),EEPROM_read(6 j*2));
     }=EEPROM_read(0);
             EEPROM_write(0,flags);
          EEPROM_write(1,max_cc);
          EEPROM_write(2,lowByte(lean_min));
          EEPROM_write(3,highByte(lean_min));
          EEPROM_write(4,lowByte(lean_max));
          EEPROM_write(5,highByte(lean_max));
          for(int j=0;j<3;j ) {
            EEPROM_write(6 j*2,lowByte(sd_max[j]));
            EEPROM_write(7 j*2,highByte(sd_max[j]));
          }=EEPROM_read(1);
    =word(EEPROM_read(3),EEPROM_read(2));
    =word(EEPROM_read(5),EEPROM_read(4));
    for(int j=0;j<3;j ) {
      sd_max[j]=word(EEPROM_read(7 j*2),EEPROM_read(6 j*2));
    }

Aquí es el bit de código que escribe en la EEPROM:

         EEPROM_write(0,);
         EEPROM_write(1,);
         EEPROM_write(2,lowByte());
         EEPROM_write(3,highByte());
         EEPROM_write(4,lowByte());
         EEPROM_write(5,highByte());
         for(int j=0;j<3;j ) {
           EEPROM_write(6 j*2,lowByte(sd_max[j]));
           EEPROM_write(7 j*2,highByte(sd_max[j]));
         }

Thats sobre ella realmente.

Artículos Relacionados

Crear una interrupción externa en arduino

Crear una interrupción externa en arduino

Adruino tiene varios tipos de interrupciones. Interrupción es un proceso por el cual arduino detiene su tarea regular o detener su bucle e ir a interrumpir la función para completar su tarea de función de interrupción dado. Interrupción externa cread
Cómo hacer una sonda de osciloscopio de Arduino

Cómo hacer una sonda de osciloscopio de Arduino

este instructabe le mostrará cómo hacer una sonda de osciloscopio de arduino para estos vínculos, osciloscopio de un pobre y un osciloscopio de múltiples canales para arduino /Paso 1: Materiales y componentes Herramientassoldadura de hierrode la sold
Cómo hacer un mando a distancia controlado por una mano robótica con Arduino

Cómo hacer un mando a distancia controlado por una mano robótica con Arduino

Este es mi proyecto escolar para 5 º año de secundaria (yo soy italiana, tenemos 5 años de secundaria).Consiste en una mano artificial controlada por un guante con sensores de flexión. La mano artificial reproduce los movimientos de la mano con el gu
Hombre de papel: una máquina creada por Arduino y NFC.

Hombre de papel: una máquina creada por Arduino y NFC.

Hombre de papel es una máquina compuesta por Arduino, Escudo de NFC, impresora térmica y una cáscara de papercraft , hombre de hierro.Gracias al escudo de la NFC, puede directamente enviados mensajes desde tu móvil al hombre de papel, y el hombre de
Lana Jersey de ciclismo: Añadiendo una cremallera

Lana Jersey de ciclismo: Añadiendo una cremallera

lana Merino es un material excelente para el desgaste al aire libre clima fresco ya que es ligero, absorbe la humedad y todavía mantiene sus propiedades aislantes cuando se moje. A diferencia de otras lanas Merino no es "áspera" en la piel y es
Casa construida receptor remoto IR o demodulador con fototransistor y Arduino Due

Casa construida receptor remoto IR o demodulador con fototransistor y Arduino Due

Mi módulo de receptor de IR de Banggood bangged después de la primera carrera - sólo dejó de trabajar. Otro nuevo tardará semanas en llegar, pero el show debe continuar... así que decidí buscar solución temporal, y funcionó:).Yo busqué en Google y qu
Arduino Due entrada guitarra de ADC y DAC salida mezclador

Arduino Due entrada guitarra de ADC y DAC salida mezclador

esta es la secuela a mi instructable que ofrece un circuito de entrada de señales generadas por una guitarra en el arduino due ADC.[Actualizado el 26 de enero de 2014 - el esquema ha cambiado... ver notas a continuación.]Este instructivo describe el
Entrada Arduino Due guitarra ADC

Entrada Arduino Due guitarra ADC

quería construir un circuito de entrada de guitarra para un arduino due ADC.El circuito está diseñado para ser conectado a un arduino debido pin analógico. Estos pines de entrada de ADC requieren voltajes entre 0 y 3.3V cuando la salida recogida de g
Generador de onda senoidal 3 fases basado en Arduino Due

Generador de onda senoidal 3 fases basado en Arduino Due

el propósito de esta parte es ayudar a alguien que está tratando de utilizar de vencimiento mayor rendimiento + falta de referencia + hoja de datos no-provechoso.Este proyecto es capaz de generar hasta 3 fase senoidal @ 256 muestras / ciclo en baja f
Todo en una placa de prototipos para Arduino Uno

Todo en una placa de prototipos para Arduino Uno

Rev3ProtoPack es un Arduino Uno diseño placa que permite circuitos prototipo donde quiera que vayas. Tiene un soporte de la batería de 9 voltios, caso de parachoques de anti-static de Arduino Uno y una ranura de placa de tamaño medio, para que tenga
Hacer una aplicación Android para Arduino (LED apagado gire)

Hacer una aplicación Android para Arduino (LED apagado gire)

aquí hemos creado una aplicación para android usando ecllipseEsta aplicación se encienda led en arduino.Esta aplicación también funciona en la LAN.Hardware necesario:1: arduino uno2: arduino ethernet Shield3: cable de red RJ454: LED5 teléfono android
Cómo hacer una bici-luz controlada por Arduino

Cómo hacer una bici-luz controlada por Arduino

microcontroladores son herramientas muy poderosas para la exploración en el mundo eléctrico. En este tutorial vamos a usar tablero de Arduino Uno, y le mostraremos cómo programar una serie de funciones básicas en una luz de bici de la protoboard. Par
Utilizar el Dragino y mega328p para construir una solución igual de Arduino Yun

Utilizar el Dragino y mega328p para construir una solución igual de Arduino Yun

En este proyecto, haremos una solución tanto Arduino Yun mediante Dragino HE.mega328p y otros componentes.Aquí, vamos a construir un Arduino Yun tanto solutiom y se muestra cómo programar el mega328p via WiFi. y su demostración de comunicación entre
Cómo conectar una LCD serial con un Arduino Nano

Cómo conectar una LCD serial con un Arduino Nano

En un anterior instructable demostré cómo conectar la LCD serial a un Arduino UNOAyer quería utilizar dos Arduinos para un proyecto de RF y se dio cuenta de que no sé cómo utilizar la pantalla LCD serial con el Arduino Nano. Así que con un poco de in