Sommario:
- Passaggio 1: che tipo di dati possono essere archiviati?
- Passo 2:
- Passaggio 3:
- Passaggio 4:
- Passaggio 5:
- Passaggio 6:
Video: La EEPROM integrata di Arduino: 6 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:02
In questo articolo esamineremo la EEPROM interna nelle nostre schede Arduino. Che cos'è una EEPROM che alcuni di voi potrebbero dire? Una EEPROM è una memoria di sola lettura programmabile cancellabile elettricamente.
È una forma di memoria non volatile che può ricordare cose con l'alimentazione spenta o dopo aver ripristinato l'Arduino. La bellezza di questo tipo di memoria è che possiamo memorizzare i dati generati all'interno di uno schizzo su una base più permanente.
Perché dovresti usare la EEPROM interna? Per situazioni in cui i dati che sono unici per una situazione necessitano di una sede più permanente. Ad esempio, memorizzando il numero di serie univoco e la data di produzione di un progetto commerciale basato su Arduino: una funzione dello schizzo potrebbe visualizzare il numero di serie su un LCD o i dati potrebbero essere letti caricando uno "schizzo di servizio". Oppure potrebbe essere necessario contare determinati eventi e non consentire all'utente di ripristinarli, ad esempio un contachilometri o un contacicli di funzionamento.
Passaggio 1: che tipo di dati possono essere archiviati?
Tutto ciò che può essere rappresentato come byte di dati. Un byte di dati è composto da otto bit di dati. Un bit può essere attivato (valore 1) o disattivato (valore 0) e sono perfetti per rappresentare i numeri in forma binaria. In altre parole, un numero binario può utilizzare solo zero e uno per rappresentare un valore. Quindi il binario è anche noto come "base-2", poiché può utilizzare solo due cifre.
Come può un numero binario con solo l'uso di due cifre rappresentare un numero più grande? Usa molti uno e zero. Esaminiamo un numero binario, diciamo 10101010. Poiché si tratta di un numero in base 2, ogni cifra rappresenta 2 alla potenza di x, da x=0 in poi.
Passo 2:
Guarda come ogni cifra del numero binario può rappresentare un numero in base 10. Quindi il numero binario sopra rappresenta 85 in base-10: il valore 85 è la somma dei valori in base-10. Un altro esempio: 11111111 in binario è uguale a 255 in base 10.
Passaggio 3:
Ora ogni cifra in quel numero binario usa un "bit" di memoria e otto bit formano un byte. A causa delle limitazioni interne dei microcontrollori nelle nostre schede Arduino, possiamo memorizzare solo numeri a 8 bit (un byte) nella EEPROM.
Questo limita il valore decimale del numero a cadere tra zero e 255. Sta poi a te decidere come i tuoi dati possono essere rappresentati con quell'intervallo di numeri. Non lasciarti scoraggiare: i numeri disposti nel modo corretto possono rappresentare quasi tutto! C'è una limitazione a cui prestare attenzione: il numero di volte che possiamo leggere o scrivere nella EEPROM. Secondo il produttore Atmel, la EEPROM è valida per 100.000 cicli di lettura/scrittura (vedere la scheda tecnica).
Passaggio 4:
Ora conosciamo i nostri bit e byte, quanti byte possono essere archiviati nel microcontrollore del nostro Arduino? La risposta varia a seconda del modello di microcontrollore. Per esempio:
- Schede con un Atmel ATmega328, come Arduino Uno, Uno SMD, Nano, Lilypad, ecc. – 1024 byte (1 kilobyte)
- Schede con un Atmel ATmega1280 o 2560, come la serie Arduino Mega – 4096 byte (4 kilobyte)
- Schede con un Atmel ATmega168, come l'originale Arduino Lilypad, il vecchio Nano, Diecimila ecc. – 512 byte.
Se non sei sicuro, dai un'occhiata all'indice hardware Arduino o chiedi al fornitore della tua scheda. Se hai bisogno di più memoria EEPROM di quella disponibile con il tuo microcontrollore, considera l'utilizzo di una EEPROM I2C esterna.
A questo punto capiamo ora che tipo di dati e quanti possono essere memorizzati nella EEPROM del nostro Arduino. Ora è il momento di metterlo in atto. Come discusso in precedenza, c'è una quantità finita di spazio per i nostri dati. Negli esempi seguenti, utilizzeremo una tipica scheda Arduino con l'ATmega328 con 1024 byte di memoria EEPROM.
Passaggio 5:
Per utilizzare la EEPROM, è necessaria una libreria, quindi usa la seguente libreria nei tuoi schizzi:
#include "EEPROM.h"
Il resto è molto semplice. Per memorizzare un dato, utilizziamo la seguente funzione:
EEPROM.write(a, b);
Il parametro a è la posizione nella EEPROM per memorizzare l'intero (0~255) dei dati b. In questo esempio, abbiamo 1024 byte di memoria, quindi il valore di a è compreso tra 0 e 1023. Per recuperare un dato è altrettanto semplice, usa:
z = EEPROM.leggi(a);
Dove z è un numero intero per memorizzare i dati dalla posizione EEPROM a. Ora per vedere un esempio.
Passaggio 6:
Questo schizzo creerà numeri casuali tra 0 e 255, li memorizzerà nella EEPROM, quindi li recupererà e li visualizzerà sul monitor seriale. La variabile EEsize è il limite superiore della dimensione della tua EEPROM, quindi (ad esempio) questo sarebbe 1024 per un Arduino Uno o 4096 per un Mega.
// Dimostrazione della EEPROM interna di Arduino
#includere
int zz; int EEsize = 1024; // dimensione in byte della EEPROM della tua scheda
configurazione nulla()
{ Serial.begin(9600); randomSeed(analogRead(0)); } void loop() { Serial.println("Scrittura di numeri casuali…"); 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("Posizione EEPROM: "); Serial.print(a); Serial.print(" contiene "); Serial.println(zz); ritardo(25); } }
Apparirà l'output dal monitor seriale, come mostrato nell'immagine.
Ecco qua, un altro modo utile per archiviare i dati con i nostri sistemi Arduino. Sebbene non sia il tutorial più entusiasmante, è sicuramente utile.
Questo post ti è stato presentato da pmdway.com: tutto per produttori e appassionati di elettronica, con consegna gratuita in tutto il mondo.
Consigliato:
Orange Pi Plus 2 - Armbian (su scheda SD o memoria integrata da 16 GB!) - Aggiornamento: 6 passaggi
Orange Pi Plus 2 - Armbian (su scheda SD o memoria integrata da 16 GB!) - Aggiornamento: ciao a tutti! Questo è il mio primo Instructable e l'inglese non è la mia lingua madre, quindi per favore non essere duro con me. Per cominciare, l'Orange Pi Plus 2 è un meraviglioso piccolo dispositivo proprio come un Raspberry Pi ma più veloce! Per il Raspberry Pi c'è una grande comunità
Lettura e scrittura di dati su EEPROM esterna utilizzando Arduino: 5 passaggi
Lettura e scrittura di dati su EEPROM esterna utilizzando Arduino: EEPROM è l'acronimo di Electrically Erasable Programmable Read-Only Memory.EEPROM è molto importante e utile perché è una forma di memoria non volatile. Ciò significa che anche quando la scheda è spenta, il chip EEPROM conserva ancora il programma che
FoldTronics: creazione di oggetti 3D con elettronica integrata utilizzando strutture pieghevoli a nido d'ape: 11 passaggi
FoldTronics: creazione di oggetti 3D con elettronica integrata utilizzando strutture pieghevoli a nido d'ape: in questo tutorial, presentiamo FoldTronics, una tecnica di fabbricazione basata sul taglio 2D per integrare l'elettronica in oggetti piegati 3D. L'idea chiave è tagliare e perforare un foglio 2D utilizzando un plotter da taglio per renderlo pieghevole in una struttura a nido d'ape 3D
UCL - Auto controllata integrata: 5 passaggi
UCL - Embedded Controlled Car: avevamo grandi ambizioni per questo progetto. Auto a guida autonoma! Seguendo una linea nera o guidando liberamente evitando gli ostacoli. Connessioni Bluetooth e un 2° arduino per controller con comunicazione wireless dell'auto. Forse una seconda macchina che potrebbe seguire
EAL - Programmazione integrata: Candy Mixer 1000: 9 passaggi
EAL - Programmazione Embedded: Candy Mixer 1000: Per il nostro progetto in Arduino abbiamo deciso di realizzare un mixer per caramelle. L'idea è che l'utente possa premere un pulsante e quindi i motori inizieranno a espellere la caramella in una ciotola e quando il programma avrà terminato il suo corso si fermerà. La prima bozza w