Orodha ya maudhui:

Kuongeza 24LC256 EEPROM kwa Arduino Kutokana: 3 Hatua
Kuongeza 24LC256 EEPROM kwa Arduino Kutokana: 3 Hatua

Video: Kuongeza 24LC256 EEPROM kwa Arduino Kutokana: 3 Hatua

Video: Kuongeza 24LC256 EEPROM kwa Arduino Kutokana: 3 Hatua
Video: Lesson 06: Arduino Variables Data Types | Robojax Arduino Step By Step Course 2024, Julai
Anonim
Kuongeza 24LC256 EEPROM kwa Arduino Ngenxa
Kuongeza 24LC256 EEPROM kwa Arduino Ngenxa

Dhima ya arduino haina eeprom. Hii inaweza kuongezewa moja na hukuruhusu kuhifadhi maadili katika kumbukumbu isiyo tete ambayo itaishi sasisho la firmware ya arduino.

Hatua ya 1: Bodi ya mkate

Bodi ya mkate
Bodi ya mkate

Kuna maagizo mazuri sana hapa: pini 1 hadi 4 na pini 7 imewekwa chini. pini 8 imeunganishwa na usambazaji wa 3.3V kwenye bodi inayofaa. Njano (pini 6) na nyeupe (pini 5) waya zilizounganishwa na pini za i2c SDA (data) na SCL (saa) kwenye bodi inayofaa (nambari 21 na 20).

Hatua ya 2: Saa ya Msimbo

Wakati wa Kanuni
Wakati wa Kanuni

Hapa kuna vijisehemu vya nambari ambazo ninatumia katika michoro yangu. Kwanza, jumuisha vichwa vya maktaba ya waya mahali pengine karibu na juu ya mchoro wako: / * Tumia 24LC256 EEPROM kuhifadhi mipangilio * / # pamoja na Kisha ongeza kazi kadhaa kusoma na kuandika ka kutoka kwa EEPROM (Ninajali tu kaiti binafsi lakini kuna makala ya kuandika ukurasa kwenye chip pia). Kumbuka kuna ufafanuzi wa jumla wa 0x50.. hii ndio anwani ya chip kwenye basi ya i2c (unaweza kuunganisha vitu zaidi ya moja vya i2c kwenye basi ya i2c na uchague ni ipi unataka kuzungumza nayo kwa kubadilisha anwani). / * Kazi hizi mbili zinatusaidia kuandika kwa chip 24LC256 EEPROM * / #fafanua EEPROM_ADDR 0x50 batili EEPROM_write (data isiyosajiliwa, data ya ka) {int rdata = data; Uwasilishaji wa waya (EEPROM_ADDR); Andika waya ((int) (nyongeza >> 8)); // MSB Waya. Andika ((int) (nyongeza & 0xFF)); // Waya wa LSB. Andika (rdata); Uwasilishaji wa waya (); //Serial.print ("EEPROM andika: nyongeza:"); //Serial.print (addr); //Serial.print (""); //Serial.println (data); kuchelewesha (5); } byte EEPROM_read (unsigned int addr) {byte data = 0xFF; Uwasilishaji wa waya (EEPROM_ADDR); Andika waya ((int) (nyongeza >> 8)); // MSB Waya. Andika ((int) (nyongeza & 0xFF)); // Waya wa LSB. Uhamishaji (); Ombi la Wire. Toka (EEPROM_ADDR, 1); ikiwa (Wire.available ()) data = Wire.read (); //Serial.print ("EEPROM soma: nyongeza:"); //Serial.print (addr); //Serial.print (""); //Serial.println (data); kuchelewesha (5); data ya kurudi; } Unaweza kutenganisha mistari ya Serial.print (…) ikiwa unataka kuona pato la utatuzi. Katika usanidi wa arduinos () kazi unaanza maktaba ya waya na unaweza kusoma kwa maadili ya mwanzo. Hapa nilisoma kwa ka mbili (bendera na max_cc), maneno mawili (konda_min na konda_max) na safu ya maneno sd_max [3]: // soma maadili yaliyohifadhiwa kwenye waya wa EEPROM.begin (); bendera = EEPROM_read (0); max_cc = EEPROM_read (1); lean_min = neno (EEPROM_read (3), EEPROM_read (2)); lean_max = neno (EEPROM_read (5), EEPROM_read (4)); kwa (int j = 0; j <3; j) {sd_max [j] = neno (EEPROM_read (7 j * 2), EEPROM_read (6 j * 2)); } Hapa kuna kanuni ndogo ambayo huwaandika kwenye EEPROM: EEPROM_write (0, bendera); Andika EEPROM_ (1, max_cc); Andika EEPROM_ (2, lowByte (lean_min)); Andika EEPROM_ (3, highByte (lean_min)); Andika EEPROM_ (4, lowByte (konda_max)); Andika EEPROM_ (5, highByte (konda_max)); kwa (int j = 0; j <3; j) {EEPROM_write (6 j * 2, lowByte (sd_max [j])); Andika EEPROM_ (7 j * 2, highByte (sd_max [j])); } Hiyo ni juu yake kweli.

Hatua ya 3: Waya It Up

Waya It Up
Waya It Up

Weka waya kwenye veroboard fulani ili kuingilia ndani ya boma na kazi zifanyike.

Ilipendekeza: