Turinys:

24LC256 EEPROM pridėjimas prie „Arduino Due“: 3 žingsniai
24LC256 EEPROM pridėjimas prie „Arduino Due“: 3 žingsniai

Video: 24LC256 EEPROM pridėjimas prie „Arduino Due“: 3 žingsniai

Video: 24LC256 EEPROM pridėjimas prie „Arduino Due“: 3 žingsniai
Video: Lesson 06: Arduino Variables Data Types | Robojax Arduino Step By Step Course 2024, Liepa
Anonim
24LC256 EEPROM pridėjimas prie „Arduino Due“
24LC256 EEPROM pridėjimas prie „Arduino Due“

Dėl „arduino“trūksta eepromo. Ši instrukcija prideda vieną ir leidžia išsaugoti vertes nepastovioje atmintyje, kuri išliks arduino programinės įrangos atnaujinimo metu.

1 žingsnis: „Breadboarding“

Breadboarding
Breadboarding

Čia yra keletas tikrai gerų instrukcijų: https://www.hobbytronics.co.uk/arduino-external-eeprom Aš ką tik jų laikiausi. Nuotraukoje parodyta grandinė, uždėta ant lentos. kaiščiai nuo 1 iki 4 ir kaištis 7 yra įžeminti. 8 kaištis yra prijungtas prie 3.3V maitinimo šaltinio tinkamoje plokštėje. Geltoni (6 kaištis) ir balti (5 kaiščiai) laidai, prijungti prie i2c SDA (duomenys) ir SCL (laikrodžio) kaiščių tinkamoje plokštėje (numeriai 21 ir 20)).

2 žingsnis: kodo laikas

Kodo laikas
Kodo laikas

Štai keletas kodo fragmentų, kuriuos naudoju savo eskizuose. Pirma, įtraukite „Wire“bibliotekos antraštes kažkur netoli eskizo viršaus: / * Naudokite 24LC256 EEPROM, kad išsaugotumėte nustatymus * / #include Tada pridėkite kai kurias funkcijas skaityti ir rašyti baitus iš EEPROM (man rūpi tik atskiri baitai, bet yra puslapio rašymo funkcija mikroschemoje). Atkreipkite dėmesį, kad yra makrokomandos apibrėžimas 0x50.. tai yra lusto adresas „i2c“magistralėje (galite prijungti daugiau nei vieną „i2c“daiktą „i2c“magistralėje ir pasirinkti, su kuriuo norite kalbėti, pakeisdami adresą). / * Šios dvi funkcijos padeda mums rašyti į 24LC256 EEPROM mikroschemą */ #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 (); //Serial.print ("EEPROM write: addr: "); //Serijinis.spaudas (adresas); // Serijos.spaudas (""); //Serial.println(data); vėlavimas (5); } baitas EEPROM_read (unsigned int addr) {baitų duomenys = 0xFF; Wire.beginTransmission (EEPROM_ADDR); Wire.write ((int) (addr >> 8)); // MSB Wire.write ((int) (addr & 0xFF)); // LSB Wire.endTransmission (); Wire.requestFrom (EEPROM_ADDR, 1); jei (Wire.available ()) duomenys = Wire.read (); //Serial.print ("EEPROM read: addr: "); //Serijinis.spaudas (adresas); // Serijos.spaudas (""); //Serial.println(data); vėlavimas (5); grąžinti duomenis; } Galite atšaukti eilutės Serial.print (…) komentarus, jei norite matyti derinimo rezultatus. Naudodami „arduinos setup“() funkciją, paleidžiate laidų biblioteką ir galite skaityti pradines reikšmes. Čia aš perskaičiau du baitus (vėliavos ir max_cc), du žodžius (liesos_min ir liesos_max) ir žodžių masyvą sd_max [3]: // skaityti EEPROM Wire.begin () išsaugotas reikšmes; vėliavos = EEPROM_read (0); max_cc = EEPROM_read (1); liesas_min = žodis (EEPROM_read (3), EEPROM_read (2)); lean_max = žodis (EEPROM_read (5), EEPROM_read (4)); už (int j = 0; j <3; j) {sd_max [j] = žodis (EEPROM_read (7 j*2), EEPROM_read (6 j*2)); } Štai kodo bitas, kuris juos įrašo į EEPROM: EEPROM_write (0, vėliavos); EEPROM_write (1, max_cc); EEPROM_write (2, lowByte (lean_min)); EEPROM_write (3, didelis baitas (liesas_min)); EEPROM_write (4, lowByte (lean_max)); EEPROM_write (5, didelis baitas (liesas_max)); už (int j = 0; j <3; j) {EEPROM_write (6 j*2, lowByte (sd_max [j])); EEPROM_write (7 j*2, didelis baitas (sd_max [j])); } Tikrai apie tai.

3 žingsnis: prijunkite laidą

Sujunkite laidą
Sujunkite laidą

Prijunkite jį prie kai kurių skydelių, kad įsuktumėte į korpusą ir atliktumėte darbus.

Rekomenduojamas: