Satura rādītājs:

24LC256 EEPROM pievienošana Arduino termiņam: 3 soļi
24LC256 EEPROM pievienošana Arduino termiņam: 3 soļi

Video: 24LC256 EEPROM pievienošana Arduino termiņam: 3 soļi

Video: 24LC256 EEPROM pievienošana Arduino termiņam: 3 soļi
Video: MEMORIAS EEPROM 24C04, 25C04 DATASHEET 2024, Jūlijs
Anonim
24LC256 EEPROM pievienošana Arduino Due
24LC256 EEPROM pievienošana Arduino Due

Arduino trūkst eeproma. Šī pamācība pievieno vienu un ļauj saglabāt vērtības gaistošā atmiņā, kas saglabāsies arduino programmaparatūras atjauninājumā.

1. darbība

Maizes dēlis
Maizes dēlis

Šeit ir daži patiešām labi norādījumi: https://www.hobbytronics.co.uk/arduino-external-eeprom tapas no 1 līdz 4 un tapa 7 ir iezemētas. 8. tapa ir savienota ar 3.3V barošanas avotu, kas atrodas uz tāfeles. Dzeltenie (6. tapa) un baltie (5. tapa) vadi ir savienoti ar i2c SDA (dati) un SCL (pulksteņa) tapām uz atbilstošās plates (numurētas ar 21 un 20)).

2. darbība: koda laiks

Koda laiks
Koda laiks

Šeit ir daži koda fragmenti, kurus izmantoju savās skicēs. Pirmkārt, iekļaujiet Wire bibliotēkas galvenes kaut kur skices augšdaļā: / * Izmantojiet 24LC256 EEPROM, lai saglabātu iestatījumus * / #include Pēc tam pievienojiet dažas funkcijas, lai lasītu un rakstītu baitus no EEPROM (man rūp tikai atsevišķi baiti, bet ir arī lapas rakstīšanas funkcija mikroshēmā). Ņemiet vērā, ka ir makro definīcija 0x50.. šī ir mikroshēmas adrese i2c kopnē (i2c kopnē varat savienot vairāk nekā vienu i2c lietu un izvēlēties, ar kuru vēlaties runāt, mainot adresi). / * Šīs divas funkcijas palīdz mums rakstīt uz 24LC256 EEPROM mikroshēmu */ #define EEPROM_ADDR 0x50 void EEPROM_write (neparakstīts int addr, baitu dati) {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 rakstīt: addr: "); //Sērijas.druka (adr); //Serial.print (""); //Serial.println(data); kavēšanās (5); } baits EEPROM_read (neparakstīts int addr) {baitu dati = 0xFF; Wire.beginTransmission (EEPROM_ADDR); Wire.write ((int) (addr >> 8)); // MSB Wire.write ((int) (addr & 0xFF)); // LSB Wire.endTransmission (); Wire.requestFrom (EEPROM_ADDR, 1); ja (Wire.available ()) dati = Wire.read (); //Serial.print ("EEPROM read: addr: "); //Sērijas.druka (adr); //Serial.print (""); //Serial.println(data); kavēšanās (5); atgriezt datus; } Ja vēlaties redzēt kādu atkļūdošanas rezultātu, varat atcelt Serial.print (…) rindu komentārus. Funkcijā arduinos setup () jūs sākat vadu bibliotēku un varat lasīt sākotnējās vērtības. Šeit es izlasīju divos baitos (karogi un max_cc), divus vārdus (lean_min un lean_max) un vārdu masīvu sd_max [3]: // nolasīt EEPROM Wire.begin () saglabātās vērtības; karodziņi = EEPROM_read (0); max_cc = EEPROM_read (1); liesa_min = vārds (EEPROM_read (3), EEPROM_read (2)); lean_max = vārds (EEPROM_read (5), EEPROM_read (4)); par (int j = 0; j <3; j) {sd_max [j] = vārds (EEPROM_read (7 j*2), EEPROM_read (6 j*2)); } Šeit ir kods, kas tos ieraksta EEPROM: EEPROM_write (0, karodziņi); 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)); par (int j = 0; j <3; j) {EEPROM_write (6 j*2, lowByte (sd_max [j]))); EEPROM_write (7 j*2, augsts baits (sd_max [j])); } Tieši tā.

3. darbība: pievienojiet vadu

Pievienojiet vadu
Pievienojiet vadu

Pievienojiet to kādam verbloardam, lai ieskrūvētu korpusā un paveiktos darbus.

Ieteicams: