Arduino

Arduino

Bancomat

Il progetto che vi presento simula il funzionamento di uno sportello bancomat che, come tutti sanno, offre i servizi di erogazione di denaro e mostra o stampa il saldo del conto e la lista dei movimenti.
Nella mia simulazione ho apportato alcune modifiche dovute sia ai componenti in possesso sia all'introduzione di un nuovo servizio che nella realtà lo sportello non svolge ma in quella virtuale ci può stare. Esso è il versamento di denaro in conto.
Non avendo a disposizione un lettore per le carte bancomat, mi sono affidato a dei pulsanti (tre nel mio caso per facilitare la procedura) che mi permettono di introdurre le cifre del codice.
Esso sarà successivamente controllato tramite la pressione di un quarto pulsante che avvia la verifica.
Se tutto è andato a buon fine, si possono attivare le funzioni desiderate suindicate.
Per quanto concerne il versamento o il prelevamento, deve esistere un importo maggiore di zero senza il quale la procedura sarà bloccata.
A tale proposito ho impiegato un quinto pulsante che ad ogni pressione incrementa la variabile importo di 50 partendo ovviamente da zero. In seguito due altri pulsanti, se premuti separatamente ed in corrispondenza dell'operazione scelta, avvieranno la registrazione dei dati su SD card.
Per quanto riguarda il saldo e la lista dei movimenti è stato sufficiente utilizzare altri due pulsanti che, premuti, avviano la lettura dei file.txt corrispondenti.
Tutte le operazioni svolte saranno mostrate su un display LCD a quattro righe ad eccezione della lista dei movimenti che sarà visibile per intero sul monitor seriale di Arduino.
Infine, ho inserito un decimo pulsante, definito di RESET, a cui ho assegnato il compito di azzerare tutte le variabili riconducendo il progetto allo stato iniziale con un messaggio di PRONTO sul display LCD.
E' ovvio che i dati di elaborazione, come si verifica nella realtà, non devono essere persi per cui ho usato un modulo SD, provvisto di card, che mi permette la loro registrazione su supporto magnetico.
Registrerò anche la data e l'ora in cui è avvenuto il movimento e quindi mi sono servito di un modulo RTC che fornisce questi dati.
Due led, uno rosso ed uno verde, segnalano rispettivamente, quando il terminale è occupato e quando è libero.
Per la realizzazione del progetto mi sono servito di:
1. un display LCD 2004 con interfaccia I2C per mostrare messaggi relativi alle operazioni svolte;
2. un modulo SD per registrare i movimenti del conto;
3. un modulo RTC per disporre della data e dell'ora odierne;
4. dieci pulsanti, di colori diversi e posizionati in modo strategico, per la gestione del progetto;
5. due led, per segnalare la disponibilità o meno dello sportello bancomat.

N.B.
I pulsanti dislocati sulla sinistra (tre bianchi ed uno rosso) hanno, rispettivamente, la funzione di introdurre le cifre del codice e di resettare il progetto; quelli sulla destra (sei in tutto) servono per:
a) NERO verifica del codice del conto;
b) BIANCO prelevamento dal conto;
c) BLU versamento nel conto;
d) VERDE saldo del conto;
e) ROSSO lista dei movimenti
f) GIALLO per impostare l'importo da versare o prelevare

Collegamenti:
a) display LCD
Due terminali all'alimentazione (+5V e GND), gli altri due ai pin analogici A5(SCL) ed A4(SDA);
b) modulo RTC
Due terminali all'alimentazione (+3.3V e GND), gli altri due ai pin analogici A5(SCL) ed A4(SDA);
c) modulo SD
Due terminali all'alimentazione (+5V e GND), gli altri ai pin digitali D4(CS), D11(MOSI), D12(MISO) e D13(SCK);
d) LED
Collegati al GND tramite una resistenza di 220 ohm (lato corto) e ai pin digitali D9(Rosso) e D8(Verde) con il lato lungo;
e) pulsanti
Collegati all'alimentazione con un terminale, tramite una resistenza di 10 Kohm, al GND e con l'altro ai +5V. A monte della resistenza è derivato un collegamento che va ad un determinato pin:
1. pulsanti di sinistra: analogico A3(17 dgt), BIANCO1, analogico A2(16 dgt), BIANCO2, analogico A1(15 dgt), BIANCO3, analogico A0(14 dgt), ROSSO;
2. pulsanti di destra: ai pin digitali D10(NERO), D2(BIANCO), D3(BLU), D5(VERDE), D6(ROSSO), D7(GIALLO).

Il codice relativo al progetto è disponibile al link: bancomat.



Nessun commento:

Posta un commento