Taula de continguts:

Afegir una EEPROM 24LC256 a l'Arduino Due: 3 passos
Afegir una EEPROM 24LC256 a l'Arduino Due: 3 passos

Vídeo: Afegir una EEPROM 24LC256 a l'Arduino Due: 3 passos

Vídeo: Afegir una EEPROM 24LC256 a l'Arduino Due: 3 passos
Vídeo: Usar una EEPROM con Arduino 2024, Juliol
Anonim
Addició d’una EEPROM 24LC256 a l’Arduino Due
Addició d’una EEPROM 24LC256 a l’Arduino Due

L’arduino degut no té eeprom. Aquesta instrucció n'afegeix un i us permet emmagatzemar valors en memòria no volàtil que sobreviurà a una actualització de microprogramari arduino.

Pas 1: Taulers de revisió

Tauler de pa
Tauler de pa

Hi ha algunes instruccions molt bones aquí: https://www.hobbytronics.co.uk/arduino-external-eeprom Acabo de seguir-les. La foto mostra el circuit de panells. els pins 1 a 4 i el pin 7 estan connectats a terra. el pin 8 està connectat al subministrament de 3,3 V del tauler degut. Els cables groc (pin 6) i blanc (pin 5) es connecten als pins SD2 (dades) i SCL (rellotge) i2c del tauler degut (numerats 21 i 20)).

Pas 2: temps de codi

Temps de codi
Temps de codi

Aquests són alguns fragments de codi que faig servir als meus esbossos. En primer lloc, incloeu les capçaleres de la biblioteca de filferro en algun lloc proper a la part superior del vostre esbós: / * Utilitzeu 24LC256 EEPROM per desar la configuració * / #include. A continuació, afegiu algunes funcions per llegir i escriure bytes de l'EEPROM (només em preocupen els bytes individuals, funció d’escriptura de pàgina al xip també). Tingueu en compte que hi ha una definició de macro de 0x50.. aquesta és l’adreça del xip al bus i2c (podeu connectar més d’un cos i2c en un bus i2c i seleccionar amb quin voleu parlar canviant l’adreça). / * Aquestes dues funcions ens ajuden a escriure al xip EEPROM 24LC256 * / #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(dades); retard (5); } byte EEPROM_read (int signr addr) {dades de bytes = 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 llegeix: addr: "); //Serial.print(addr); //Serial.print (""); //Serial.println(dades); retard (5); retornar dades; } Podeu descomentar les línies Serial.print (…) si voleu veure una sortida de depuració. A la funció d'arduinos setup () s'inicia la biblioteca de cables i es pot llegir els valors inicials. Aquí he llegit en dos bytes (flags i max_cc), dues paraules (lean_min i lean_max) i una matriu de paraules sd_max [3]: // he llegit els valors guardats a l'EEPROM Wire.begin (); flags = EEPROM_read (0); max_cc = EEPROM_read (1); lean_min = paraula (EEPROM_read (3), EEPROM_read (2)); lean_max = paraula (EEPROM_read (5), EEPROM_read (4)); per a (int j = 0; j <3; j) {sd_max [j] = paraula (EEPROM_read (7 j * 2), EEPROM_read (6 j * 2)); } Aquí teniu el bit de codi que els escriu a EEPROM: 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])); } Això és tot.

Pas 3: connecteu-lo

Wire It Up
Wire It Up

Connecteu-lo a un taulell per fixar-lo en un recinte i fer les feines.

Recomanat: