Sisukord:

24LC256 EEPROM -i lisamine Arduino tähtajale: 3 sammu
24LC256 EEPROM -i lisamine Arduino tähtajale: 3 sammu

Video: 24LC256 EEPROM -i lisamine Arduino tähtajale: 3 sammu

Video: 24LC256 EEPROM -i lisamine Arduino tähtajale: 3 sammu
Video: Ардуино и внешняя EEPROM 24C128 2024, November
Anonim
24LC256 EEPROM -i lisamine Arduino Due -le
24LC256 EEPROM -i lisamine Arduino Due -le

Arduinol puudub eeprom. See juhis lisab ühe ja võimaldab salvestada püsimällu väärtusi, mis säilivad arduino püsivara värskendamisel.

1. samm: leivalaud

Leivalaud
Leivalaud

Siin on mõned väga head juhised: https://www.hobbytronics.co.uk/arduino-external-eeprom tihvtid 1 kuni 4 ja tihvt 7 on maandatud. tihvt 8 on ühendatud ettenähtud plaadil oleva 3,3 V toiteallikaga. Kollane (tihvt 6) ja valge (tihvt 5) juhtmed, mis on ühendatud i2c SDA (andmed) ja SCL (kella) tihvtidega ettenähtud plaadil (numbritega 21 ja 20)).

2. samm: koodiaeg

Koodiaeg
Koodiaeg

Siin on mõned koodijupid, mida oma visandites kasutan. Esiteks lisage Wire -raamatukogu päised kuskile oma visandi ülaossa: / * Seadete salvestamiseks kasutage 24LC256 EEPROM -i * / #include Seejärel lisage mõned funktsioonid baitide lugemiseks ja kirjutamiseks EEPROM -ist (mulle meeldivad ainult üksikud baidid, kuid lehe kirjutamise funktsioon ka kiibil). Pange tähele, et makromääratlus on 0x50.. see on i2c siinil oleva kiibi aadress (i2c siinil saate ühendada rohkem kui ühe i2c asja ja valida aadressi muutmisega, kellega soovite rääkida). / * Need kaks funktsiooni aitavad meil kirjutada kiibile 24LC256 EEPROM */ #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 (); //Seriaalne trükk ("EEPROM kirjutada: addr: "); //Seriaalne.print (aadress); //Seria.print (""); //Seriaalne.println (andmed); viivitus (5); } bait EEPROM_read (allkirjastamata int addr) {bait andmed = 0xFF; Wire.beginTransmission (EEPROM_ADDR); Wire.write ((int) (addr >> 8)); // MSB Wire.write ((int) (addr & 0xFF)); // LSB Wire.endTransmission (); Wire.requestFrom (EEPROM_ADDR, 1); kui (Wire.available ()) andmed = Wire.read (); //Sarja.print ("EEPROM loe: addr: "); //Seriaalne.print (aadress); //Seria.print (""); //Seriaalne.println (andmed); viivitus (5); tagastada andmed; } Kui soovite näha silumisväljundit, saate Serial.print (…) ridade kommentaarid tühistada. Funktsioonis arduinos setup () käivitate traaditeegi ja saate lugeda algväärtusi. Siin lugesin kahe baidiga (lipud ja max_cc), kahe sõnaga (lean_min ja lean_max) ja sõnade massiiviga sd_max [3]: // loe EEPROM Wire'i salvestatud väärtusi.begin (); lipud = EEPROM_read (0); max_cc = EEPROM_read (1); lahja_min = sõna (EEPROM_read (3), EEPROM_read (2)); lean_max = sõna (EEPROM_read (5), EEPROM_read (4)); jaoks (int j = 0; j <3; j) {sd_max [j] = sõna (EEPROM_read (7 j*2), EEPROM_read (6 j*2)); } Siin on natuke koodi, mis kirjutab need EEPROM -i: EEPROM_write (0, lipud); EEPROM_write (1, max_cc); EEPROM_write (2, madalbait (lahja_min)); EEPROM_write (3, highByte (lean_min)); EEPROM_write (4, lowByte (lean_max)); EEPROM_write (5, highByte (lean_max)); jaoks (int j = 0; j <3; j) {EEPROM_write (6 j*2, lowByte (sd_max [j])); EEPROM_write (7 j*2, highByte (sd_max [j])); } See on tõesti nii.

3. samm: ühendage see juhtmega

Ühendage see juhtmega
Ühendage see juhtmega

Juhtme see mõnele verbooardile, et kruvida korpusesse ja tehtud tööd.

Soovitan: