Mainos

Tiesitkö, että Arduino voi tallentaa tietoja, kun se sammutetaan? Ei Flash-muistiin tallennettua luonnosta. Puhun muuttuvista tiedoista EEPROMissa. Liity minuun, kun näytän sinulle kuinka lukea ja kirjoittaa sille ja mitä se voi tehdä projekteillesi.

Jos olet uusi Arduino-palvelussa, muista tarkistaa meidän aloittelijoiden opas Arduinon aloittaminen: Aloittelijan opasArduino on avoimen lähdekoodin elektroniikan prototyyppialusta, joka perustuu joustavaan, helppokäyttöiseen laitteistoon ja ohjelmistoon. Se on tarkoitettu taiteilijoille, suunnittelijoille, harrastajalle ja kaikille, jotka ovat kiinnostuneita luomaan interaktiivisia esineitä tai ympäristöjä. Lue lisää .

Mikä on EEPROM?

EEPROM tarkoittaa sähköisesti poistettava ohjelmoitava vain luku -muisti. Se on eräänlainen haihtumaton muisti. Älä huoli, jos et ymmärrä mitä se tarkoittaa. Se yksinkertaisesti tallentaa tietoja jopa ilman virtaa (toisin kuin RAM Nopea ja likainen opas RAM-muistiin: mitä sinun täytyy tietääRAM-muisti on jokaisen tietokoneen tärkeä osa, mutta se voi olla hämmentävä. Hajotamme sen helposti ymmärrettävissä termeissä.

instagram viewer
Lue lisää , joka tarvitsee sähköä tietojen säilyttämiseksi).

EEPROM-esimerkki laukaus

EEPROM on rakennettu lukemattomaan osaan prosessoreita, kuten kenttä-ohjelmoitava porttiryhmä (FPGA), jota käytetään Matriisin luoja Matriisin luoja Raspberry Pi Review -sovellukselleMatrix Creator on Sveitsin armeijan veitsi Pi: llesi, 15 anturilla, joukolla viestintäprotokollia, RGB-LEDien rengas, mikrofoniryhmä ja paljon muuta! Lue lisää Pi HAT. Kaikilla Arduinoilla on käytettävissä EEPROM, mutta kapasiteetti vaihtelee malleittain. Varmista, että katsot meidän osto-opas Arduinon osto-opas: minkä lautakunnan pitäisi hankkia?Siellä on niin monia erilaisia ​​Arduino-levyjä, sinulle annetaan anteeksi sekoittaaksesi. Mitä sinun pitäisi ostaa projektiisi? Autamme meitä tässä Arduinon osto-oppaassa! Lue lisää lisätietoja jokaisesta taulusta.

Kuinka se toimii?

EEPROM poistetaan sähköisesti ja ohjelmoidaan käyttämällä Fowler-Nordheim-tunnelointi. Sinun ei tarvitse tietää teknisiä yksityiskohtia voidaksesi käyttää sitä. Peruslähtökohta on, että sähköä käytetään binääritietojen muuttamiseen (mikä on binaarinen Mikä on binaari? [Teknologia selitetty]Koska binaari on niin ehdottoman välttämätöntä tietokoneiden olemassaololle, vaikuttaa outolta, että emme ole koskaan käsitelleet aihetta aiemmin - joten tänään ajattelin antaa lyhyen yleiskuvan siitä, mitä binaareja ... Lue lisää ). Se voidaan lukea, poistaa ja kirjoittaa uudelleen sähköisesti.

Onneksi Arduinon kieli tekee tietojen vaihtamisen helpoksi ilman, että tarvitset tietotekniikan tutkintoa.

EEPROM lähikuva

Elinajanodote

Vaikka EEPROMia on helppo käyttää Arduinossa, sen käyttöikä on rajoitettu. EEPROM on määritetty käsittelemään 100 000 luku- / poistosykliä. Tämä tarkoittaa, että voit kirjoittaa ja sitten poistaa / kirjoittaa tietoja 100 000 kertaa ennen kuin EEPROM muuttuu epävakaaksi. Todellisuudessa, Atmel (Arduinon “Chip” -valmistajat) puolijohteet voivat käsitellä suurempaa tai pienempää jaksoa kunkin prosessorin toleransseista riippuen.

EEPROM lähikuva

Kun sijainti on kirjoitettu ja poistettu liian monta kertaa, siitä voi tulla epäluotettava. Se ei välttämättä palauta oikeita tietoja tai palauta arvoa viereisestä bitistä.

Tämä voi kuulostaa monelta kirjoitukselta, mutta tämän rajan saavuttaminen voi olla helppoa, jos luet ja kirjoitat ohjelmallisesti (a silmukka, esimerkiksi). Tietojen lukeminen ei haittaa piitä, vain kirjoittaminen tekee. Voit lukea tietoja EEPROMista niin paljon kuin haluat ilman pelkoa!

On tärkeää huomata, että tämä rajoitus koskee kaikkia muistin sijainteja. Arduinolla voi olla 1 000 tai enemmän muistin sijainteja saatavana EEPROM-laitteessa, joten jos kirjoitat liian monta kertaa yhteen sijaintiin, vaikutus kohdistuu vain kyseiseen sijaintiin, ei mihinkään muuhun. Myöhemmin keskustelen kulumisen tasaus, joka voi vähentää EEPROM-kulumista jakamalla tietoa tasaisesti - jotain SSD Kuinka arvioida SSD: n jäljellä oleva elinikäKaikkien SSD-levyjen elinkaari on rajoitettu kirjoitusjaksoista johtuen (tosin tämä elinkaari on paljon pidempi kuin luuletkaan voi ajatella). Näin voit arvioida kuinka lähellä olet loppuun. Lue lisää hyödyntää.

Mihin se on hyödyllistä?

EEPROM on uskomattoman hyödyllinen Arduino-projekteissa. Koska se muistaa tietoja, vaikka virta olisi poistettu, voit tallentaa Arduinon tilan. Ehkä voisit rakentaa laser torni Pew Pew! Kuinka rakentaa lasertorni Arduinon kanssaOletko tylsistynyt? Voisi myös rakentaa laser-tornin. Lue lisää joka muistaa sen aseman tai kuinka paljon ”ammuksia” on jäljellä. Voit käyttää sitä hallita laitteitasi Ohjauslaitteet Arduinosta: kotiautomaatioViime kerralla osoitin sinulle muutamia tapoja saada Arduino-projektisi puheen ohjaamaan SiriProxy, OS X: n kautta sisäänrakennetut puhekelpoiset kohteet ja jotkut Automator-komentosarjat tai jopa omistettu äänentunnistuslaitteisto siru. I ... Lue lisää ja kirjaa kuinka monta kertaa laite on aktivoitu.

EEPROM sopii parhaiten esimerkiksi asetuksiin tai ennätyksiin. Jos haluat kirjoittaa säännöllisesti monimutkaisia ​​tietoja, kannattaa ehkä harkita ethernet-suoja Anna Arduino-projektillesi oma mini-web-palvelin, jossa Ethernet-suojaJokin aika sitten näyttelin sinulle kuinka määrittää Internet-ohjausjärjestelmä Arduinollesi - mutta sen piti pysyä yhteydessä tietokoneeseen USB: n kautta Internet-yhteyden ylläpitämiseksi ... Lue lisää (sisäänrakennetulla SD-korttipaikalla) tai a Vadelma Pi Vadelma Pi: epävirallinen opasOlitpa nykyinen Pi-omistaja, joka haluaa oppia lisää, tai tämän luottokorttikokoisen laitteen potentiaalinen omistaja, tämä ei ole opas, jonka haluat unohtaa. Lue lisää .

EEPROM lähikuva

Lue ja kirjoita

Nyt kun teoria on tiellä, katsotaanpa kuinka lukea ja kirjoittaa tietoja! Sisällytä ensin kirjasto (tämä tulee Arduino IDE: n mukana):

#sisältää 

Kirjoita nyt tietoja:

EEPROM.write (0, 12);

Tämä kirjoittaa numeron 12 EEPROM-sijaintiin 0. Jokainen kirjoitus vie 3,3 millisekuntia (neiti, 1000 ms = 1 sekunti). Huomaa, kuinka et voi kirjoittaa kirjeitä (char), sallitaan vain numerot nollasta 255: een. Siksi EEPROM on ihanteellinen asetusten tai ennätyksien saavuttamiseen, mutta ei niin hyvä pelaajien nimille tai sanoille. Tällä menetelmällä on mahdollista tallentaa tekstiä (voit yhdistää jokaisen aakkosten kirjaimen numeroon), mutta sinulla on oltava useita muistin sijainteja - yksi sijainti jokaiselle kirjaimelle.

Näin luet nämä tiedot:

EEPROM.luku (0);

Nolla on osoite, johon kirjoitit aiemmin. Jos et ole kirjoittanut osoitteeseen aiemmin, se palauttaa enimmäisarvon (255).

Saatavana on hieman hyödyllisempiä menetelmiä. Oletetaan, että haluat tallentaa desimaalin tai merkkijonon:

EEPROM.put (2, "12,67");

Tämä kirjoittaa tiedot useisiin paikkoihin - jotain, joka olisi helppo kirjoittaa itse, mutta silti kätevä. Sinun on silti seurattava, kuinka monelle sijainnille tämä on kirjoittanut, joten et vahingossa kirjoita tietojasi uudelleen! Sinun on käytettävä saada tapa hakea nämä tiedot uudelleen:

kelluva f = 0,00f; EEPROM.get (2, f);

Saatu arvo tallennetaan kelluvaan arvoon f muuttuja. Huomaa, kuinka tämä alustetaan 0.00f arvona. f antaa kääntäjälle tietää, että haluat ehkä tallentaa suuren määrän tähän muuttujaan, joten se määrittää joitain lisämäärityksiä kokoamisen aikana.

EEPROM-dokumentaatio päällä Arduinon verkkosivusto on paljon enemmän esimerkkejä.

Käytä vaaitus

Kulumisen vaaitus on tekniikka, jota käytetään vähentämään kulumista ja pidentämään EEPROM-laitteen käyttöikää. Jos työskentelet vain pienessä projektissa, sinun ei ehkä tarvitse huolehtia tästä.

EEPROM lähikuva

Yksinkertaisin asia, jonka voit tehdä EEPROM-elämän säilyttämiseksi, on rajoittaa kirjoituksiasi tiettyyn sijaintiin. Voit tehdä tämän lukemalla osoitteen ensin. Jos kirjoitettava arvo on jo olemassa, sitä ei tarvitse kirjoittaa uudestaan ​​(muista, tietojen lukeminen ei vahingoita). Voit tehdä sen seuraavasti:

int safeWrite (sisäinen data, osoite) {if (EEPROM.read (address)! = data) {EEPROM.write (address, data); } }

Se on melko yksinkertainen bitti koodia, mutta se toimii vain kokonaislukuissa! Sen sijaan, että pyörä keksisi uudelleen, käytä Arduino EEPROM -kirjastossa sisäänrakennettua toimintoa:

EEPROM.päivitys (osoite, val);

Tällä menetelmällä on täsmälleen sama allekirjoitus kuin kirjoittaa menetelmä, vaikka se voi vähentää dramaattisesti tarvittavien kirjoitusten määrää!

Jos sinun on kirjoitettava paljon tietoja ja olet huolissasi piin kulumisesta, voit seurata kuinka monta kirjoitusta kirjoitat, vaikka tämä käyttää enemmän tietoa. Tässä on karkea toteutus pseudokoodi:

var osoite = 0. var writeCount = 0, jos (writeCount> 75 000) writeCount = 0 osoite + = 1 EEPROM.write (osoite, data)

Sinun on tallennettava osoite ja writeCount EEPROMiin (ja writeCount on jaettava osoitepaikkoihin). Suurin osa ajasta, tämä suojaustaso ei ole tarpeen. Arduinos ovat myös niin halpoja, joten voi olla helpompaa ostaa varmuuskopio!

Sinun pitäisi nyt tietää tarpeeksi tehdäksesi mahtavia projekteja. Kerro meille, jos teet jotain hienoa! Tunnistatko kaikki kuvissa olevat laitteet? Jätä meille kommentti alla!

Joe on valmistunut tietojenkäsittelytieteestä Lincolnin yliopistosta, Iso-Britannia. Hän on ammattimainen ohjelmistokehittäjä, ja kun hän ei lentä drooneja tai kirjoita musiikkia, hänet voidaan usein löytää ottamasta valokuvia tai tuottamaan videoita.