Cuprins:
Video: EEPROM-ul încorporat al Arduino: 6 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:44
În acest articol vom examina EEPROM internă pe plăcile noastre Arduino. Ce este o EEPROM pe care unii dintre voi ar putea să o spună? O EEPROM este o memorie numai în citire programabilă, ștearsă electric.
Este o formă de memorie nevolatilă care poate aminti lucruri cu alimentarea oprită sau după resetarea Arduino. Frumusețea acestui tip de memorie este că putem stoca date generate într-o schiță pe o bază mai permanentă.
De ce ați folosi EEPROM internă? Pentru situațiile în care datele unice pentru o situație au nevoie de o locuință mai permanentă. De exemplu, stocarea numărului de serie unic și a datei de fabricație a unui proiect comercial bazat pe Arduino - o funcție a schiței ar putea afișa numărul de serie pe un LCD sau datele ar putea fi citite prin încărcarea unei „schițe de serviciu”. Sau poate fi necesar să numărați anumite evenimente și să nu permiteți utilizatorului să le reseteze - cum ar fi un contor de parcurs sau un contor de cicluri de funcționare.
Pasul 1: Ce fel de date pot fi stocate?
Orice poate fi reprezentat ca octeți de date. Un octet de date este format din opt biți de date. Un bit poate fi activat (valoarea 1) sau dezactivat (valoarea 0) și este perfect pentru reprezentarea numerelor în formă binară. Cu alte cuvinte, un număr binar poate folosi doar zerouri și unele pentru a reprezenta o valoare. Astfel binarul este, de asemenea, cunoscut sub numele de „bază-2 ″, deoarece poate folosi doar două cifre.
Cum poate un număr binar cu doar două cifre să reprezinte un număr mai mare? Folosește o mulțime de unii și zerouri. Să examinăm un număr binar, să zicem 10101010. Deoarece acesta este un număr de bază-2, fiecare cifră reprezintă 2 la puterea lui x, de la x = 0 încoace.
Pasul 2:
Vedeți cum fiecare cifră a numărului binar poate reprezenta un număr de bază 10. Deci numărul binar de mai sus reprezintă 85 în baza-10 - valoarea 85 este suma valorilor de bază-10. Un alt exemplu - 11111111 în binar este egal cu 255 în baza 10.
Pasul 3:
Acum fiecare cifră din acel număr binar folosește un „bit” de memorie, iar opt biți fac un octet. Datorită limitărilor interne ale microcontrolerelor de pe plăcile noastre Arduino, putem stoca numai numere pe 8 biți (un octet) în EEPROM.
Aceasta limitează valoarea zecimală a numărului să se încadreze între zero și 255. Depinde apoi de dvs. să decideți cum pot fi reprezentate datele dvs. cu acea gamă de numere. Nu lăsați acest lucru să vă dezamăgească - numerele aranjate în mod corect pot reprezenta aproape orice! Există o singură limitare de care trebuie să ținem cont - de câte ori putem citi sau scrie în EEPROM. Potrivit producătorului Atmel, EEPROM este bun pentru 100 000 de cicluri de citire / scriere (vezi fișa tehnică).
Pasul 4:
Acum ne cunoaștem biții și octeții, câte octeți pot fi stocate în microcontrolerul Arduino? Răspunsul variază în funcție de modelul microcontrolerului. De exemplu:
- Plăci cu un Atmel ATmega328, cum ar fi Arduino Uno, Uno SMD, Nano, Lilypad etc. - 1024 octeți (1 kilobyte)
- Placi cu un Atmel ATmega1280 sau 2560, cum ar fi seria Arduino Mega - 4096 bytes (4 kilobytes)
- Plăci cu un Atmel ATmega168, cum ar fi Arduino Lilypad original, Nano vechi, Diecimila etc - 512 octeți.
Dacă nu sunteți sigur, aruncați o privire la indexul hardware Arduino sau întrebați furnizorul de bord. Dacă aveți nevoie de mai mult spațiu de stocare EEPROM decât ceea ce este disponibil cu microcontrolerul dvs., luați în considerare utilizarea unei EEPROM I2C externe.
În acest moment, înțelegem ce fel de date și cât de mult pot fi stocate în EEPROM-ul nostru Arduino. Acum este timpul să punem acest lucru în acțiune. După cum sa discutat mai devreme, există o cantitate finită de spațiu pentru datele noastre. În exemplele următoare, vom folosi o placă tipică Arduino cu ATmega328 cu 1024 octeți de stocare EEPROM.
Pasul 5:
Pentru a utiliza EEPROM, este necesară o bibliotecă, deci utilizați următoarea bibliotecă în schițe:
#include „EEPROM.h”
Restul este foarte simplu. Pentru a stoca o bucată de date, folosim următoarea funcție:
EEPROM.write (a, b);
Parametrul a este poziția din EEPROM pentru a stoca numărul întreg (0 ~ 255) al datelor b. În acest exemplu, avem 1024 octeți de memorie, deci valoarea lui este între 0 și 1023. Pentru a prelua o bucată de date este la fel de simplu, utilizați:
z = EEPROM.read (a);
Unde z este un număr întreg pentru a stoca datele din poziția EEPROM a. Acum, pentru a vedea un exemplu.
Pasul 6:
Această schiță va crea numere aleatorii între 0 și 255, le va stoca în EEPROM, apoi le va prelua și le va afișa pe monitorul serial. Variabila EEsize este limita superioară a dimensiunii EEPROM, deci (de exemplu) aceasta ar fi 1024 pentru un Arduino Uno sau 4096 pentru un Mega.
// Demonstrație EEPROM internă Arduino
#include
int zz; int EEsize = 1024; // dimensiunea în octeți a EEPROM a plăcii dvs.
configurare nulă ()
{Serial.begin (9600); randomSeed (analogRead (0)); } void loop () {Serial.println ("Scrierea numerelor aleatorii …"); for (int i = 0; i <EEsize; i ++) {zz = random (255); EEPROM.write (i, zz); } Serial.println (); for (int a = 0; a <EEsize; a ++) {zz = EEPROM.read (a); Serial.print ("poziția EEPROM:"); Serial.print (a); Serial.print („conține”); Serial.println (zz); întârziere (25); }}
Ieșirea de pe monitorul serial va apărea, așa cum se arată în imagine.
Așa că aveți, un alt mod util de a stoca date cu sistemele noastre Arduino. Deși nu este cel mai interesant tutorial, este cu siguranță un util.
Această postare ți-a fost adusă de pmdway.com - totul pentru producătorii și pasionații de electronice, cu livrare gratuită în toată lumea.
Recomandat:
Suport pentru imagine cu difuzor încorporat: 7 pași (cu imagini)
Suport pentru imagine cu difuzor încorporat: Iată un proiect minunat de întreprins în weekend, dacă doriți să vă faceți propriul difuzor care poate deține imagini / cărți poștale sau chiar lista de sarcini. Ca parte a construcției, vom folosi un Raspberry Pi Zero W ca bază a proiectului și un
Pom de Crăciun tipărit 3D cu LED încorporat: 10 pași (cu imagini)
Pom de Crăciun tipărit 3D cu LED încorporat: Acesta este un pom de Crăciun tipărit 3D cu LED-uri încorporate adresabile în interior. Deci, este posibil să programați LED-urile pentru efecte de lumină frumoase și să utilizați structura imprimată 3D ca difuzor. Arborele este separat în 4 etape și un element de bază (arborele
Tutorial ESP32 Bluetooth - Cum se utilizează Bluetooth încorporat al ESP32: 5 pași
Tutorial ESP32 Bluetooth | Cum se utilizează Bluetooth incorporat al ESP32: Bună băieți, deoarece placa ESP32 vine cu WiFi & Bluetooth, dar pentru cele mai multe proiecte, de obicei folosim doar Wifi, nu folosim Bluetooth. Deci, în acest instructable voi arăta cât de ușor este să folosiți Bluetooth de ESP32 & Pentru proiectele dvs. de bază
Placă turnantă pentru valize (cu amplificator încorporat și amplificator pre): 6 pași
Placă turnantă pentru valize (cu amplificator încorporat și amplificator pre): Hei tuturor! Vă rog să mă purtați cu mine, deoarece acesta este primul meu instructiv. Îmi cer scuze în avans pentru că nu am făcut suficiente fotografii în timp ce le construiam, dar este relativ simplu și poate fi personalizat pentru a satisface dorințele creative ale oricui! Inspirația mea pentru
Arduino MEGA 2560 cu WiFi încorporat - ESP8266: 10 pași
Arduino MEGA 2560 cu WiFi încorporat - ESP8266: În textul de astăzi, discutăm despre un Arduino pe care îl consider extrem de special, întrucât are un ESP8266 încorporat în placa sa. Nu are ESP12 lipit pe placă. În schimb, are cipul Espressif. Deci, pe tablă aveți încorporat