Crea sito

In questo tutorial analizzeremo le principali librerie che utilizza Arduino cercando di chiarire al meglio i comandi principali che ne permettono l'uso immediato in uno sketch che vogliamo realizzare.

Ribadisco che la migliore fonte è sempre quella ufficiale Arduino.cc; la mia volontà è semplicemente quella di condividere le esperienze per poter migliorare l'apprendimento di questo insostituibile microcontrollore.

Ecco le librerie :

Libreria EEPROM

Qusta libreria sostanzialmente contiene due funzioni, read() e write().
In base al modello di Arduino che utilizziamo varia la quantità di EEprom disponibile, la tabella qui sotto  riporta i valori di memoria Flash (utilizzata per contenere il programma), Sram (che contiene i dati), e EEPROM in base al tipo di microcontrollore usato.

  • Arduino EEPROM Flash Sram
  • Arduino Libreria eeprom sketch
  • Arduino Ethernet Shield
  • Arduino Mega Ethernet Pin
  • Arduino Uno Ethernet Shield

Ricordiamo che il tempo richiesto per la scrittura di un byte è di circa 3,3msec, e che comunque la EEprom è garantita per circa 100.000 cicli di scrittura contro i 10.000 della Flash.
Viene consigliato comunque per cicli che richiedono la frequente memorizzazione di un dato la lettura con il comando read() il confronto con il valore già memorizzato e la scrittura effettiva solo se diverso. 

Di seguito gli esempi riportati sul sito ufficiale, dove

EEPROM.write(address, value) address è la locazione da scrivere (o di inizio scrittura), mentre value è il valore che diamo a quella locazione che può solo essere compreso tra 0 e 255 (FF).

Non dimentichiamo che il massimo valore indirizzabile varia in base al tipo di Arduino utilizzato come la tabella sopra riportata evidenzia in modo chiaro. Nel nostro esempio Arduino Uno ha una eeprom con capacità di un 1Kb, quindi possiamo indirizzare massimo 1024 locazioni.

EEPROM.read(address), address è la locazione da leggere (o di inizio lettura).

Exported from Notepad++
// Esempio comando read eeprom Arduino Uno #include <EEPROM.h> int a = 0; int value; void setup() { Serial.begin(9600); } void loop() { value = EEPROM.read(a); Serial.print(a); Serial.print("\t"); Serial.print(value); Serial.println(); a = a + 1; if (a == 1024) a = 0; delay(500); } // Esempio comando write eeprom Arduino Uno #include <EEPROM.h> void setup() { for (int i = 0; i < 1024; i++) EEPROM.write(i, i); } void loop() { }

Libreria Ethernet