Añadir I2C EEPROM a Arduino

adjuntando un EEPROM para el Arduino es bastante sencillo y la forma más sencilla de hacerlo es a través del bus I2C. EEPROMs vienen en muchas formas pero la 24 LS256 o 24LC256 es una buena opción ya que es fácil de usar y bastante baratos (85 céntimos en mi proveedor). La 24LC256 contiene 256 kilobits de datos (que es 32 KB). El 24LS256 también puede funcionar con 3, 3V que es útil si uno utiliza un Lilypad o Mini Pro 3.3V. El 24LS256 utiliza 3 pines para la selección de su dirección, por lo que se puede utilizar hasta ocho a la vez en el mismo bus.

El 24LS256 trata como sigue: 1010A2A1A0. Si sólo trabajas con 1 EEPROM, lo más fácil es conectar A2 A0 con tierra. Esto le da la dirección de 1010000 que es 0 × 50 hexagonal. En lectura y escritura a la EEPROM hay que darse cuenta de que tiene 32 kB (actuall32767) y un byte no es suficiente para atender toda la memoria.

Así que cuando uno quiere lee o escribe solicitudes, lo que tiene que enviar dos bytes, uno para la MSB o extremo más alto de la dirección (los 8 bits de izquierda a derecha) y otro para el LSB o extremo inferior de la dirección (el finales 8 bits de izquierda a derecha).

Si por ejemplo uno quiere usar dirección 21000, que va como sigue: en binario, 21000 es 0101001000001000. Divide en 01010010 y 00001000, luego convertir los valores de binario a numéricos bytes a enviar con Wire.send().

Que suena más complicado de lo que es, de hecho hay dos operandos para hacerlo. Este primero es >>, también conocido como 'derecho de enmascaramiento'. Esto llevará la parte más alta (izquierda) del byte y dejar el extremo inferior, dejando sólo los primeros 8 bits. Para obtener el extremo inferior (derecha) de la dirección, se pueden utilizar el operador &, también conocido como 'AND bit a bit'. Este operando, cuando se utiliza con 0xFF dará los bits más bajos.

Escribir datos en el 24LS256
Datos de la escritura están bastante fáciles. Primero inicializar el bus I2C:

Wire.beginTransmission(0x50); para pines A0 ~ A2 establece una toma de tierra

luego enviar algunos datos. Los primeros datos a enviar son los dos bytes de la dirección (25000) eran uno quiere escribir en la memoria.

Wire.Send (21000 >> 8);  enviar el MSB de la dirección
Wire.Send (21000 & 0xFF); enviar el LSB de la dirección

Posteriormente enviar el byte para almacenar en dirección 21000 y luego cerrar la conexión:

Wire.Send(15); simplemente enviar '15' como ejemplo
Wire.endTransmission();

Concluye la escritura. ahora para la lectura:

Lectura de datos de la 24LS256

La lectura es más o menos similar. Primero inicializar la conexión y la dirección de los datos a leer:

Wire.beginTransmission(0x50); Dirección base elegido
Wire.Send (21000 >> 8);  enviar MSB de la dirección
Wire.Send (21000 & 0xFF); enviar el LSB de la dirección
Wire.endTransmission();

Entonces, el número de bytes de datos a leer a partir de la actual dirección de la fuente:

Wire.beginTransmission(0x50); Dirección base de
Wire.requestFrom(0x50,1); Queremos un byte
Wire.Receive(inbyte);

Aquí, 'inbyte' es una variable byte seleccionada para almacenar los datos recuperados de la EEPROM.

La potencia del bus I2C es que varios dispositivos pueden conectarse a la misma línea. La figura superior muestra tan para arriba con dos EEPROMs. Es clave por supuesto que cada uno tiene su propia dirección. En la figura he decidido usar direcciones de 0 × 50 y 0 × 51. Uno obtiene por A0-A2 de conexión a tierra para un chip, pero conectando A0 a Vcc ('alta') para el segundo chip. La dirección resultante es entonces 1010001 = 0x51

Y eso es todo.
Un diseño de la impresión se puede encontrar aquí
Aprox. costo: 2 euros

Etiquetas: Arduino, Eeprom, I2c, 24L 256

Artículos Relacionados

Utilice ATtiny85 con I2C EEPROM

Utilice ATtiny85 con I2C EEPROM

esto es una configuración simple para usar una EEPROM I2C con el ATtiny85. Hay muchos sitios que el uso de eeprom I2C, pero hay algunos matices cuando se utiliza un ATtiny85 que surgen debido a la falta de verdadera I2C. Que han recopilado aquí y pie
Adaptador de pantalla I2C LCD para Arduino con PCF8574A

Adaptador de pantalla I2C LCD para Arduino con PCF8574A

Utilizando la pantalla LCD con arduino tiene muchas líneas de la entrada-salida de su microcontrolador. Nunca más con el adaptador I2C!!!!!!En este tutorial yo he usado un cambio PCF8574A registro I2C interfaz. Las ventajas son: es barato y en la web
Simple módulo de EEPROM para Arduino u otro microcontrolador

Simple módulo de EEPROM para Arduino u otro microcontrolador

EEPROMs son útiles si desea almacenar algunos datos sin perderlo. Muchos microcontroladores cuentan con algunas EEPROM interna, pero como EEPROMs tienen un número finito (aunque muy grande) de las escrituras antes empiezan a ser defectuoso, mi caráct
Añadir Bluetooth Simple a Arduino

Añadir Bluetooth Simple a Arduino

A veces, cuando está empezando un nuevo proyecto, hay un montón de depuración continua en, y con una plataforma Arduino, utilizando el puerto serie que para escupir datos puede ser una herramienta muy útil. ¿Bueno lo que si no hay espacio para enchuf
Lector de código y eeprom de Arduino

Lector de código y eeprom de Arduino

El software de arduino permite programar fácilmente tu placa arduino.Con este tutorial ahora leer y escribir las memorias de arduino.Paso 1: Descargar programador MCUProgramador MCU es una herramientas de código abierto para leer y escribir memorias
Hackear un cambiador de voz para añadir una entrada de Arduino

Hackear un cambiador de voz para añadir una entrada de Arduino

otro hack rápido. Compré un cambiador de voz porque estaba buscando algo barato que podría ser hackeado en un dispositivo de entrada de voz. Básicamente quería animar un cráneo cuando hablé. Bono adicional, ahora el muñeco del cráneo también tendría
Termómetro de Arduino + LCD I2C

Termómetro de Arduino + LCD I2C

He decidido darle un divertido termómetro de concepto de Arduino en caso de que es el medio de la noche, las farmacias no están funcionando, no se siente bien y quiere comprobar la temperatura de su cuerpo. Si tienes Arduino a tu lado, este es un aho
Arduino I2C pantalla PIN de depuración

Arduino I2C pantalla PIN de depuración

Bienvenido a mi intento de un Instructable primera. Estoy haciendo esto porque compré un LCD barato de I2C cutre para Arduino de eBay y pasaron varias horas tratando de enganchar para arriba. Como era de esperar las instrucciones horribles no hizo na
Arduino Nano: Sencillo SSD1306 I2C análogo exhibición de OLED con Visuino

Arduino Nano: Sencillo SSD1306 I2C análogo exhibición de OLED con Visuino

OLED muestra son algunos de los módulos más cool y más avanzados que puede utilizar en su proyecto de Arduino. Vienen en formato pequeño y tiene muy bajo consumo de energía al tiempo que ofrece colores vivos. Algunos de los más baratos y fácilmente d
I2C entre Arduinos

I2C entre Arduinos

Tal vez a veces queremos compartir la carga de trabajo de uno Arduino con el otro. O tal vez queremos más pines digitales o analógicos. Inter-Integrated circuito o I2C (pronunciado cuadrado C) es la mejor solución.I2C es un interesante protocolo. Se
El primer uso de 0,96" pantalla OLED de I2C con Arduino UNO

El primer uso de 0,96" pantalla OLED de I2C con Arduino UNO

Hoy, voy a mostrarte cómo utilizar 0,96" pantalla OLED de I2C con placa Arduino UNO. Hay un montón de diferentes tipos de pantallas OLED. Tengo 4-pines OLED pantalla conmigo. Esta muestra puede ser con pernos SPI en vez de I2C. Estas versiones se pue
Tiva y Arduino C launchpad I2C

Tiva y Arduino C launchpad I2C

Comunicación I2C entre el Arduino uno y C TivaMateriales:Launchpad - Tiva C-Arduino uno-los cablesUsando la biblioteca Wire.h y conectar los microcontroladores:Tiva: SDA:PD1 SCL: PD0Arduino: SDA: A4 SCL:A5Usted puede intentar:amo escribir y esclavo-r
Pantalla OLED i2c con arduino

Pantalla OLED i2c con arduino

En este instructable mostraré cómo conectar y probar un 0,96" i2c pantalla OLED módulo a un arduino.Partes:Cables de protoboard y conexiónArduino (mediante un clon de 16mhz 5v nano v3 en este caso)Fuente de alimentación externa (5v regulados)La panta
ESP8266 - registrador de datos EEPROM I2C externa - AT24C32/64 controlador

ESP8266 - registrador de datos EEPROM I2C externa - AT24C32/64 controlador

Como es posible que visto ya en nuestro anterior artículo sobre el DS3231 RTC módulo, hemos identificado a bordo un chip EEPROM, 32 k AT24C32 uno. Es independiente del circuito RTC y conectados en el bus I2C, un compañero perfecto para un sistema de