Micro SD Card Module Ultimo aggiornamento 2 gennaio 2019 |
|
Il piccolo modulo (misura solo 18 x 18 x 11 mm) descritto in questa pagina, permette di dotare i progetti Arduino delle memorie MicroSD (contrazione di Micro Secure Digital, in precedenza TransFlash o T-Flash) , per maggiori informazioni vedere il seguente link.
|
|
Questo tipo di memorie sono ormai utilizzati nei principali dispositivi
elettronici presenti in commercio, come fotocamera, smartphone, videocamere, etc…
e hanno sostituito altri precedenti modelli. I principali motivi del loro
utilizzo sono le dimensioni ridotte, la velocità di scrittura/lettura (fino a 32
MB/s) e i costi, ormai molto ridotti.
Sono memorie di tipo non volatile, ovvero non richiedono un’alimentazione per
poter mantenere i dati salvati (come dischi i rigidi dei computer).
In realtà il microcontrollore ATMEGA328 possiede al suo interno tre tipi di
memoria:
Una memoria flash da 32KB ISP con possibilità di lettura/scrittura
Una memoria EEPROM da 1KB
Una memoria SRAM da 2KB.
Ma nessuna delle tre è allo stesso tempo non volatile, ampia e con “infinite” letture/scritture. Per questo motivo, è necessario a volte disporre di un lettore microSD per poter utilizzare una memoria di tale tipo per salvare e leggere dati che servono per il programma che è caricato sull’Arduino.
Potete trovare il modulo presso la ICstation.com con codice 5043 Mini Micro SD Card Module Memory Module for Arduino. Il costo si aggira sui 2€ |
Lo schema elettrico del modulo è molto
semplice in quanto si limita al collegamento dei pin della scheda di memoria al
connettore. In commercio esistono dei moduli più complessi, che montano anche
dei regolatori di tensione, in quanto la scheda micro SD necessita di una
tensione di alimentazione di 3,3V, sono inoltre presenti dei circuiti traslatori
di livelli in quanto la scheda funziona con livelli di 3,3V.
Comunque da prove effettuate si è rilevato che non vi sono problemi, basterà
utilizzare l'alimentazione 3,3V fornita dal Arduino.
La comunicazione tra il microcontrollore e la scheda SD utilizza il protocollo
SPI (Serial Peripheral Interface) che è un sistema di comunicazione tra un
microcontrollore e altri circuiti integrati o tra più microcontrollori. È un bus
standard di comunicazione ideato dalla Motorola e sviluppato, in una sua
variante, anche dalla National Semiconductor con il nome di bus MicrowireTM. La
trasmissione avviene tra un dispositivo detto master e uno o più slave
(letteralmente dall'inglese padrone e schiavo). Il master controlla il bus,
emette il segnale di clock, decide quando iniziare e terminare la comunicazione.
Esso si basa su 4 segnali :
SCK: Serial Clock (emesso dal master)
MISO: Serial Data Input, Master Input Slave Output (ingresso per il master ed uscita per lo slave)
MOSI: Serial Data Output, Master Output Slave Input (uscita dal master)
CS: Chip Select, Slave Select, emesso dal master per scegliere con quale dispositivo slave vuole comunicare
NOTA: il Chip Select (CS ) non è indispensabile in tutte le applicazioni.
Per l'utilizzo di Arduino questa comunicazione si svolge sui pin digitali 11 (MOSI), 12(MISO) e 13(CLK) (sulla maggior parte delle schede Arduino) o 50, 51 e 52 (Arduino Mega). Inoltre, un altro pin deve essere utilizzato per selezionare la scheda CS. Questo può essere il pin 10(CS) dell'hardware SS (sulla maggior parte delle schede Arduino) o il pin 53 (sul Mega) - o un altro pin specificato nella chiamata a SD.begin () della libreria che vedremo in seguito.
L'utilizzo della scheda MicroSD con
Arduino è semplice in quanto la libreria SD già presente nell’IDE di Arduino (vedere
link).
Questa consente di leggere e scrivere su schede SD. La libreria supporta i file
system FAT16 e FAT32 su schede SD standard e schede SDHC. Usa nomi brevi di 8.3
per i file. I nomi di file passati alle funzioni della libreria SD possono
includere percorsi separati da barre di avanzamento, /, ad es. "Directory /
nomefile.txt". Poiché la directory di lavoro è sempre la radice della scheda SD,
un nome fa riferimento allo stesso file indipendentemente dal fatto che includa
o meno una barra iniziale (ad esempio "/file.txt" equivale a "file.txt").
Per la localizzazione dei programmi di esempio, basterà accedere sotto File -
Esempi - SD, dove son presenti i programmi:
Cardinfo: Questo sketch mostra come poter avere informazioni sullo stato e tipo di memoria MicroSD, che è stata inserito nel lettore, collegato ad Arduino.
Datatlogger: Lo sketch mostra come salvare i dati che vengono raccolti da Arduino.
DumpFile: Questo sketch mostra come leggere un file dalla scheda SD per inviarlo tramite la porta seriale.
Files: Lo sketch mostra come poter creare un file e cancellarlo successivamente
Listfile: Lo sketch mostra come stampare sulla seriale tutti i file presenti in memoria
ReadWrite:Lo sketch mostra come poter scrivere un file e leggerlo successivamente, stampandone sul seriale il contenuto.
Vediamo adesso l'utilizzo di uno sketch presenti per
testare il nostro modulo.
Per fare questo dovremo aver già una scheda MicroSD su cui abbiamo salvato
preventivamente dei files. Provvederemo poi al collegamento del nostro modulo
alla scheda Arduino seguendo lo schema sotto riportato, ed effettuando i
seguenti collegamenti:
3V3 - pin 3.3V
CS – pin 10
MOSI – pin 11
CLK – pin 13
MISO – pin 12
GND - GND
Caricheremo lo sketch CardInfo e verificheremo che il pin collegato al chipSelect sia il 10
|
Il programma è semplice e si limita a mostrare le
informazioni sullo stato e tipo di memoria microSD, che è stata inserito nel
lettore, collegato ad Arduino. Comunque se i collegamenti sono errati, sarà
mostrato un errori in quanto non sarà possibile inizializzare la SD card.
Come è visibile dalla copia di quanto mostrato sul monitor seriale, è mostrata
il tipo di SD, il tipo di formattazione, le dimensioni della memoria e l'elenco
dei files presenti. Come visibile, essendo nomi più lunghi di 8 caratteri sono
stati troncati.
Realizzazione di un data logger
Vediamo ora la realizzazione di un data logge low cost, per
il monitoraggio ambientale di temperature , con successiva registrazione dei
valori su una SD-Card.
Il cuore del progetto è Arduino, il programma che si scrive su Arduino sarà
naturalmente avviato a loop() finché non si toglie l'alimentazione dal
dispositivo. Quando lo colleghiamo ad una fonte di alimentazione (ad esempio la
USB del PC o anche una comunissima Batteria da 9V) si accende e avvia il
programma caricato dall'IDE a loop infinito. Questo continua fino a quando non
togliamo la batteria o stacchiamo il cavo.
Il programma legge i valori di temperatura e umidità tramite il
sensore DHT11 e salva i valori in contemporanea con i dati di dell'ora e
del giorno forniti da un
modulo con un
DS1302, in cui è effettuata la misura su una memoria SD.
Un
led Bicolore segnala eventuali problemi o l'avvenuta registrazione dei
dati.
Per la realizzazione del nostro progetto si sono utilizzati i seguenti componenti:
Due resistenze da 220 Ω 1/4W
Una Bread board
Jumper dupont colorati maschio-maschio.
Il modulo KY-015 Temperature and humidity sensor module fa parte della serie "37
In 1 Sensor Module Board Set Kit For Arduino", si presenta come un piccolo circuito,
su di esso sono montati, il sensore
DHT11,
due resistenze, un led e un connettore a 3 pin.
Il modulo
compatibile
con le piattaforme di elettronica più popolari come Arduino, Raspberry
Pi e ESP8266.
I campi di applicazione del modulo possono essere: HVAC test e
apparecchiature di controllo , auto motive, data logger, controllo
automatico, stazione Meteo, regolatori di umidità , deumidificatori.
Alimentazione |
3-5.5V DC |
Segnale di uscita |
digitale del segnale tramite single-bus |
Elemento sensibile |
Resistenza in Polimero |
Campo di misura umidità |
20-90% di umidità relativa, temperatura di 0-50 gradi Celsius |
Precisione |
Umidità + -4% RH (Max + -5% di umidità relativa) Temperatura +-2.0Celsius |
Risoluzione o la sensibilità |
umidità 1% di umidità relativa, temperatura 0.1 Celsius |
Ripetibilità umidità |
+ -1% di umidità relativa temperatura +-1Celsius |
Umidità isteresi |
+ -1% RH |
Stabilità a lungo termine |
+ -0.5% UR / anno |
Tempo di rilevazione |
medio: 2s |
Dimensioni |
12 * 15,5 * 5,5 millimetri |
Il modulo MH-Real-Time Clock Module - 2 si basa sull' integrato DS1302 al cui interno è presente un orologio in tempo reale / calendario e 31 byte di RAM statica.
Il chip comunica con il microprocessore tramite
un'interfaccia seriale. Il RTC (Real Time Clock) /
calendario fornisce: secondi, minuti, ore, giorno, data, informazioni Mese, e
Anno.
Per l'interfaccia, oltre all'alimentazione, sono necessari solo tre fili
: CE (RST), I/O (linea dati), e SCLK (serial clock).
I dati possono essere trasferiti da e verso l'orologio/RAM 1 byte alla
volta o in un inico invio fino a 31 byte.
Il DS1302 è progettato per funzionare con
una potenza molto bassa e per conservare dati e informazioni di clock con meno
di 1μW.
Il DS1302 ha pin di alimentazione doppi,
una primaria (Pin #1 #4) e un altro per la batteria di backup (Pin #8 #4),
corrente 260mAh, batteria non ricaricabili. tempo di conservazione dei dati
teorica è più di 10 anni.
In questa applicazione per esempio l'alimentazione primaria è
fornita da Arduino, e quella secondaria da una batteria CR2032.
DS1302 Trickle-Charge Timekeeping Chip | ||
|
||
Piedinatura | Datasheet | Foto dell'integrato |
Attenzione: la disposizione dei pin non è standard, controllare la loro disposizione prima del collegamento
Pin Arduino | Pin moduli |
GND |
DHT11, RTC, Micro SD Card Module, Led bicolore |
+5V |
DHT11 e RTC |
+ 3V3 | Micro SD Card Module |
Digital 2 | Pin CE - RST modulo RTC |
Digital 3 | Pin I/O - DAT modulo RTC |
Digital 4 | Pin CLCK - CLK modulo RTC |
Digital 5 - | Pin data - DHT11 |
Digital 6 | Pin LED rosso |
Digital 7 | Pin LED verde |
Pin Digital 11 | Pin MOSI - Micro SD Card Module |
Pin Digital 12 | Pin MISO - Micro SD Card Module |
Pin Digital 13 | Pin CLK - Micro SD Card Module |
Per il funzionamento del programma, visto l'utilizzo di più moduli diversi sono necessarie alcune librerie, per questo motivo vi dovrete riferire alle singole pagine per come dovrete caricarle.
|
una volta terminata la misurazione, la SD potrà essere rimossa, e il file memorizzato potrà essere letto tramite un normate editor di testo, il formato sarà simile a quello sotto riportato.
I dati potranno essere manipolati tramite un foglio di calcolo e le misure potranno essere riportate su un grafico
Elenco revisioni |
|
02/01/2019 |
Aggiornato pagina inserito programma data logger |
31/12/2018 |
Emissione preliminare |