Sisällysluettelo:
Video: Arduinosi sisäänrakennettu EEPROM: 6 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:01
Tässä artikkelissa aiomme tarkastella Arduino -korttiemme sisäistä EEPROMia. Mitä EEPROM jotkut teistä saattavat sanoa? EEPROM on sähköisesti pyyhittävä ohjelmoitava, vain luku -muisti.
Se on haihtumattoman muistin muoto, joka muistaa asiat virran ollessa sammutettuna tai Arduinon nollaamisen jälkeen. Tällaisen muistin kauneus on se, että voimme tallentaa luonnoksessa luotuja tietoja pysyvämmin.
Miksi käytät sisäistä EEPROMia? Tilanteissa, joissa tilanteeseen liittyvät tiedot tarvitsevat pysyvämmän kodin. Esimerkiksi kaupallisen Arduino-pohjaisen projektin ainutlaatuisen sarjanumeron ja valmistuspäivän tallentaminen-luonnoksen toiminto voi näyttää sarjanumeron nestekidenäytöllä tai tiedot voidaan lukea lataamalla "palveluluonnos". Tai sinun on ehkä laskettava tietyt tapahtumat, älä anna käyttäjän nollata niitä, kuten matkamittari tai toimintajaksolaskuri.
Vaihe 1: Millaisia tietoja voidaan tallentaa?
Kaikki mitä voidaan esittää datatavuina. Yksi tavu dataa koostuu kahdeksasta bitistä. Bitti voi olla joko päällä (arvo 1) tai pois päältä (arvo 0), ja se on täydellinen numeroiden esittämiseen binäärimuodossa. Toisin sanoen binääriluku voi käyttää vain nollia ja numeroita arvon esittämiseen. Siten binaari tunnetaan myös nimellä "base-2", koska se voi käyttää vain kahta numeroa.
Kuinka binaariluku, jossa käytetään vain kahta numeroa, voi edustaa suurempaa lukua? Se käyttää paljon yhtä ja nollia. Tarkastellaan binäärilukua, esimerkiksi 10101010. Koska tämä on perus-2-luku, jokainen numero edustaa 2: tä x: n potenssiin x = 0: sta eteenpäin.
Vaihe 2:
Katso, kuinka binääriluvun jokainen numero voi edustaa 10-peruslukua. Joten yllä oleva binääriluku edustaa 85: tä perus-10: ssä-arvo 85 on perus-10-arvojen summa. Toinen esimerkki - binäärinen 11111111 on 255 tukiasemassa 10.
Vaihe 3:
Nyt jokainen binääriluvun numero käyttää yhtä "bittiä" muistia ja kahdeksan bittiä muodostaa tavun. Arduino-korttiemme mikro-ohjaimien sisäisten rajoitusten vuoksi voimme tallentaa vain 8-bittisiä numeroita (yksi tavu) EEPROMiin.
Tämä rajoittaa luvun desimaaliarvon laskemisen nollan ja 255 välillä. Sitten voit itse päättää, miten tietosi voidaan esittää kyseisellä numeroalueella. Älä anna sen häiritä sinua - oikein järjestetyt numerot voivat edustaa melkein mitä tahansa! On otettava huomioon yksi rajoitus - kuinka monta kertaa voimme lukea tai kirjoittaa EEPROMille. Valmistajan Atmelin mukaan EEPROM on hyvä 100 000 luku/kirjoitusjaksoa varten (katso tietolomake).
Vaihe 4:
Nyt tiedämme bitit ja tavut, kuinka monta tavua voidaan tallentaa Arduinon mikrokontrolleriimme? Vastaus vaihtelee mikro -ohjaimen mallin mukaan. Esimerkiksi:
- Levyt, joissa on Atmel ATmega328, kuten Arduino Uno, Uno SMD, Nano, Lilypad jne. - 1024 tavua (1 kilotavu)
- Levyt, joissa on Atmel ATmega1280 tai 2560, kuten Arduino Mega -sarja - 4096 tavua (4 kilotavua)
- Levyt, joissa on Atmel ATmega168, kuten alkuperäinen Arduino Lilypad, vanha Nano, Diecimila jne. - 512 tavua.
Jos olet epävarma, katso Arduinon laitteistohakemisto tai kysy neuvoa korttitoimittajalta. Jos tarvitset enemmän EEPROM -tallennustilaa kuin mitä mikrokontrolleriisi on saatavana, harkitse ulkoisen I2C EEPROM -laitteen käyttöä.
Tässä vaiheessa ymmärrämme nyt, millaisia tietoja ja kuinka paljon voidaan tallentaa Arduinon EEPROMiin. Nyt on aika toteuttaa tämä. Kuten aiemmin keskustelimme, tiedoillemme on rajallinen määrä tilaa. Seuraavissa esimerkeissä käytämme tyypillistä Arduino -korttia ATmega328: n kanssa, jossa on 1024 tavua EEPROM -tallennustilaa.
Vaihe 5:
EEPROMin käyttäminen edellyttää kirjastoa, joten käytä luonnoksissa seuraavaa kirjastoa:
#include "EEPROM.h"
Loput ovat hyvin yksinkertaisia. Tietojen tallentamiseen käytämme seuraavaa toimintoa:
EEPROM.write (a, b);
Parametri a on sijainti EEPROMissa datan b kokonaisluvun (0 ~ 255) tallentamiseksi. Tässä esimerkissä meillä on 1024 tavua muistia, joten a: n arvo on välillä 0 ja 1023. Jos haluat hakea datan, se on yhtä yksinkertainen, käytä:
z = EEPROM.luku (a);
Jossa z on kokonaisluku tietojen tallentamiseksi EEPROM -paikasta a. Katso nyt esimerkki.
Vaihe 6:
Tämä luonnos luo satunnaislukuja välillä 0 ja 255, tallentaa ne EEPROM -muistiin ja hakee ja näyttää ne sarjamonitorissa. Muuttuva EEsize on EEPROM -koosi yläraja, joten (esimerkiksi) tämä olisi 1024 Arduino Uno -laitteella tai 4096 Mega -laitteella.
// Arduinon sisäinen EEPROM -esittely
#sisältää
int zz; int EEsize = 1024; // koko korttisi EEPROM -muodossa tavuina
mitätön asennus ()
{Serial.begin (9600); randomSeed (analoginenLue (0)); } void loop () {Serial.println ("Satunnaislukujen kirjoittaminen …"); for (int i = 0; i <EEsize; i ++) {zz = satunnainen (255); EEPROM.write (i, zz); } Sarja.println (); for (int a = 0; a <EEsize; a ++) {zz = EEPROM.read (a); Serial.print ("EEPROM -asema:"); Sarjanjälki (a); Serial.print ("sisältää"); Sarja.println (zz); viive (25); }}
Sarjamonitorin lähtö tulee näkyviin, kuten kuvassa näkyy.
Joten sinulla on se, toinen hyödyllinen tapa tallentaa tietoja Arduino -järjestelmiemme kanssa. Vaikka se ei ole jännittävin opetusohjelma, se on varmasti hyödyllinen.
Tämän viestin toi sinulle pmdway.com - kaikki valmistajille ja elektroniikan harrastajille, ilmainen toimitus maailmanlaajuisesti.
Suositeltava:
Normaali GPS (DATalogger EEPROM): 5 vaihetta
GPS Para Norma (Datalogger EEPROM): Yksinkertainen GPS -lemmikkien dataloggeri, joka perustuu arduino- ja EEPROM -tallennukseen ================================ ======================= Sencillo datalogger GPS para mascotas basado en arduino y grabacion en memoria EEPROM
Sisäänrakennettu yleisliitäntäkortti - USB/Bluetooth/WIFI -ohjaus: 6 vaihetta
Sulautettu universaali liitäntäkortti - USB/Bluetooth/WIFI -ohjaus: Huomaan usein, että luon kirjastoja uusille sulautetuille moduuleille tyhjästä laitteen tietolomakkeen perusteella. Kirjastoa luodessani huomaan, että olen jumissa koodin, kääntämisen, ohjelmoinnin ja testin kierrossa varmistaessani, että asiat toimivat ja ovat virheettömiä. Usein com
Arduino MEGA 2560, sisäänrakennettu WiFi - ESP8266: 10 vaihetta
Arduino MEGA 2560, jossa on sisäänrakennettu WiFi - ESP8266: Tämän päivän tekstissä keskustelemme Arduinosta, joka on mielestäni erittäin erikoinen, koska sen piirilevyyn on upotettu ESP8266. ESP12 ei ole juotettu levylle. Sen sijaan siinä on Espressif -siru. Joten taululla on sisäänrakennettu
USB -tuuletin jäähdytetty, sisäänrakennettu USB -keskitin, kannettavan tietokoneen laukku Osa 1: 6 vaihetta
USB -tuuletin jäähdytetty, sisäänrakennettu USB -keskitin, kannettavan tietokoneen laukku Osa 1: Kannettavat laukut ovat kalliita. halvat ovat täyttä paskaa. Tuskin kunnolliset alkavat 69,99 dollarista, ja minulla on vaikeuksia käyttää sellaista rahaa, kun se ei ole alun perin sitä, mitä haluan, joten päätin tehdä sen itse ja katsoa, mitä teen
Käännä Arduinosi magneettiseksi kortinlukijaksi!: 9 vaihetta (kuvilla)
Käännä Arduinosi magneettiseksi kortinlukijaksi!: Kaikki ovat käyttäneet magneettikortinlukijaa. Tarkoitan, kuka kantaa käteistä nykyään? Niitäkään ei ole vaikea saada käsiinsä, ja matkan aikana suosikki paikalliseen elektroniikkaliikkeeseeni löysin roskakorin täynnä näitä tyyppejä. Joten …. tietysti