Sisällysluettelo:

24LC256 EEPROM -laitteen lisääminen Arduinon eräpäivään: 3 vaihetta
24LC256 EEPROM -laitteen lisääminen Arduinon eräpäivään: 3 vaihetta

Video: 24LC256 EEPROM -laitteen lisääminen Arduinon eräpäivään: 3 vaihetta

Video: 24LC256 EEPROM -laitteen lisääminen Arduinon eräpäivään: 3 vaihetta
Video: Ардуино и внешняя EEPROM 24C128 2024, Heinäkuu
Anonim
24LC256 EEPROM -laitteen lisääminen Arduino Due -laitteeseen
24LC256 EEPROM -laitteen lisääminen Arduino Due -laitteeseen

Arduinosta puuttuu eeprom. Tämä opettavainen lisää yhden ja antaa sinun tallentaa arvoja haihtumattomaan muistiin, joka säilyy arduino -laiteohjelmistopäivityksessä.

Vaihe 1: Breadboarding

Leipälautailu
Leipälautailu

Tässä on todella hyviä ohjeita: https://www.hobbytronics.co.uk/arduino-external-eeprom Olen juuri seurannut niitä. nastat 1-4 ja nasta 7 ovat maadoitettuja. nasta 8 on kytketty asianmukaisen kortin 3,3 V: n virtalähteeseen. keltaiset (nasta 6) ja valkoiset (nasta 5) johdot on kytketty i2c SDA (data) - ja SCL (kello) nastoihin kortilla (numerot 21 ja 20)).

Vaihe 2: Koodiaika

Koodiaika
Koodiaika

Tässä on joitain koodinpätkiä, joita käytän luonnoksissani. Sisällytä ensin Wire -kirjaston otsikot jonnekin luonnoksesi yläreunaan: / * Käytä 24LC256 EEPROM -ohjelmaa asetusten tallentamiseen * / #include Lisää sitten joitain toimintoja tavujen lukemiseen ja kirjoittamiseen EEPROMista (välitän vain yksittäisistä tavuista, mutta sivun kirjoitusominaisuus myös sirussa). Huomaa, että makron määritelmä on 0x50.. tämä on i2c -väylän sirun osoite (voit liittää useamman kuin yhden i2c -laitteen i2c -väylään ja valita, kenelle haluat puhua muuttamalla osoitetta). / * Nämä kaksi toimintoa auttavat meitä kirjoittamaan 24LC256 EEPROM -sirulle */ #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 (); //Sarja.print ("EEPROM kirjoittaa: addr: "); //Sarja.juliste (osoite); //Sarja.jälki (""); //Sarja.println (tiedot); viive (5); } tavu EEPROM_read (unsigned int addr) {tavu 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); jos (Wire.available ()) data = Wire.read (); //Sarja.print ("EEPROM read: addr: "); //Sarja.juliste (osoite); //Sarja.jälki (""); //Sarja.println (tiedot); viive (5); palauttaa tiedot; } Voit poistaa Serial.print (…) -rivien kommentit, jos haluat nähdä virheenkorjaustuloksia. Arduinos setup () -toiminnossa käynnistät lankakirjaston ja voit lukea alkuarvot. Täällä luen kahdella tavulla (liput ja max_cc), kahdella sanalla (lean_min ja lean_max) ja joukon sanoja sd_max [3]: // luen EEPROM Wire.begin (): een tallennetut arvot; liput = EEPROM_read (0); max_cc = EEPROM_read (1); lean_min = sana (EEPROM_read (3), EEPROM_read (2)); lean_max = sana (EEPROM_read (5), EEPROM_read (4)); for (int j = 0; j <3; j) {sd_max [j] = sana (EEPROM_read (7 j*2), EEPROM_read (6 j*2)); } Tässä on koodi, joka kirjoittaa ne EEPROMiin: EEPROM_write (0, liput); 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])); } Siitä tosiaan.

Vaihe 3: Yhdistä se

Johto se
Johto se

Kytke se johonkin veroboardiin ruuvataksesi koteloon ja tehdyt työt.

Suositeltava: