Sadržaj:

Dodavanje 24LC256 EEPROM -a na Arduino Zbog: 3 koraka
Dodavanje 24LC256 EEPROM -a na Arduino Zbog: 3 koraka

Video: Dodavanje 24LC256 EEPROM -a na Arduino Zbog: 3 koraka

Video: Dodavanje 24LC256 EEPROM -a na Arduino Zbog: 3 koraka
Video: Простая работа с EEPROM в Arduino 2024, Novembar
Anonim
Dodavanje 24LC256 EEPROM memorije u Arduino Due
Dodavanje 24LC256 EEPROM memorije u Arduino Due

Arduinu nedostaje eeprom. Ova instrukcija dodaje jednu i omogućuje vam spremanje vrijednosti u nepromjenjivu memoriju koja će preživjeti ažuriranje arduino firmvera.

Korak 1: Breadboarding

Breadboarding
Breadboarding

Ovdje postoje neke zaista dobre upute: https://www.hobbytronics.co.uk/arduino-external-eepromSamo sam ih slijedio. Fotografija prikazuje uokvireno kolo. pinovi 1 do 4 i pin 7 su uzemljeni. pin 8 je spojen na napajanje 3.3V na odgovarajućoj ploči. Žuta (pin 6) i bijela (pin 5) žica spojena na i2c SDA (podaci) i SCL (sat) pinove na odgovarajućoj ploči (označeni brojevima 21 i 20)).

Korak 2: Vrijeme koda

Code Time
Code Time

Evo nekoliko isječaka koda koje koristim u svojim skicama. Prvo, uključite zaglavlja biblioteke Wire negdje pri vrhu skice: / * Koristite 24LC256 EEPROM za spremanje postavki * / #include Zatim dodajte neke funkcije za čitanje i pisanje bajtova iz EEPROM -a (zanimaju me samo pojedinačni bajtovi, ali postoji mogućnost pisanja stranice u čipu). Imajte na umu da postoji makro definicija 0x50.. ovo je adresa čipa na sabirnici i2c (možete povezati više od jedne stvari i2c na sabirnici i2c i odabrati s kojom želite razgovarati promjenom adrese). / * Ove dvije funkcije nam pomažu da upisujemo na 24LC256 EEPROM čip */ #define EEPROM_ADDR 0x50 void EEPROM_write (nepotpisani int adr, bajtni podaci) {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); kašnjenje (5); } bajt EEPROM_čitano (nepotpisani int adr) {bajt podataka = 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); kašnjenje (5); vratiti podatke; } Možete ukloniti komentare iz redova Serial.print (…) ako želite vidjeti neke rezultate ispravljanja grešaka. U arduinos setup () funkciji pokrećete žičanu biblioteku i možete čitati početne vrijednosti. Ovdje čitam u dva bajta (zastavice i max_cc), dvije riječi (lean_min i lean_max) i niz riječi sd_max [3]: // čitaju vrijednosti spremljene u EEPROM Wire.begin (); zastavice = EEPROM_čitano (0); max_cc = EEPROM_čitano (1); lean_min = riječ (EEPROM_čitaj (3), EEPROM_čitaj (2)); lean_max = word (EEPROM_read (5), EEPROM_read (4)); for (int j = 0; j <3; j) {sd_max [j] = riječ (EEPROM_čitaj (7 j*2), EEPROM_čitaj (6 j*2)); } Evo dijela koda koji ih upisuje u EEPROM: EEPROM_write (0, zastavice); 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])); } To je otprilike to.

Korak 3: Povežite ga

Ožičite to
Ožičite to

Priključite ga na neki veroboard kako biste ga uvrnuli u kućište i obavljeni poslovi.

Preporučuje se: