- Materiali richiesti:
- Schema elettrico:
- Programma Calcolatrice Arduino:
- Simulazione del calcolatore Arduino:
- Funzionamento del calcolatore Arduino:
La programmazione è sempre divertente e Arduino è una piattaforma meravigliosa se hai appena iniziato con la programmazione integrata. In questo tutorial costruiremo la nostra calcolatrice con Arduino. I valori possono essere inviati tramite una tastiera (tastiera 4 × 4) e il risultato può essere visualizzato su uno schermo LCD (matrice di punti 16 × 2). Questa calcolatrice può eseguire semplici operazioni come addizione, sottrazione, moltiplicazione e divisione con numeri interi. Ma una volta compreso il concetto, puoi implementare anche funzioni scientifiche con le funzioni integrate di Arduino.
Alla fine di questo progetto saprai come utilizzare un LCD 16x2 e una tastiera con Arduino e anche quanto sia facile programmarli utilizzando le librerie immediatamente disponibili. Capirai anche come programmare il tuo Arduino per svolgere un compito particolare.
Materiali richiesti:
- Arduino Uno (qualsiasi versione funzionerà)
- Display LCD 16 × 2
- Tastiera 4 × 4
- Batteria 9V
- Breadboard e cavi di collegamento
Schema elettrico:
Lo schema circuitale completo di questo progetto Arduino Calculator è riportato sopra. Il + 5V e il collegamento di terra mostrato nello schema elettrico possono essere ottenuti dal 5V e dal pin di terra di Arduino. Lo stesso Arduino può essere alimentato dal tuo laptop o tramite il jack DC utilizzando un adattatore da 12V o una batteria da 9V.
Stiamo operando l'LCD in modalità 4 bit con Arduino, quindi solo gli ultimi quattro bit di dati dell'LCD sono collegati ad Arduino. La tastiera avrà 8 pin di uscita che devono essere collegati dal pin 0 al pin 7 come mostrato sopra. Puoi utilizzare la seguente tabella di connessione per verificare la tua connessione con Arduino, puoi anche controllare l'interfacciamento della tastiera 4x4 con Arduino.
Nome pin Arduino: |
Collegato a: |
D0 |
1 ° pin della tastiera |
D1 |
2 ° pin della tastiera |
D2 |
3 ° pin della tastiera |
D3 |
4 ° pin della tastiera |
D4 |
5 ° pin della tastiera |
D5 |
6 ° pin della tastiera |
D6 |
7 ° pin della tastiera |
D7 |
8 ° pin della tastiera |
D8 |
Registra il pin di selezione dell'LCD (pin 4) |
D9 |
Abilita pin dell'LCD (pin 6) |
D10 |
Dati pin 4 (pin 11) |
D11 |
Dati pin 4 (pin 11) |
D12 |
Dati pin 4 (pin 11) |
D13 |
Dati pin 4 (pin 11) |
+ 5V |
Collegato al pin Vdd dell'LCD (pin 2) |
Terra |
Collegato ai pin Vss, Vee e RW dell'LCD (pin 1,3 e 5) |
Alcune schede Arduino potrebbero mostrare un errore durante il caricamento del programma se c'è qualcosa collegato al pin 0 e al pin1, quindi se ne riscontri uno, rimuovi la tastiera durante il caricamento del programma.
Una volta terminate le connessioni, l'hardware avrà un aspetto simile a questo di seguito
Programma Calcolatrice Arduino:
Il programma Arduino completo per questo progetto è fornito alla fine di questo progetto. Il codice è suddiviso in piccoli blocchi significativi e spiegato di seguito.
Come detto in precedenza, interfacciamo un LCD e una tastiera con Arduino utilizzando le librerie. Quindi aggiungiamoli prima al nostro IDE Arduino. La libreria per LCD è già inclusa nel tuo Arduino per impostazione predefinita, quindi non dobbiamo preoccuparcene. Per la libreria del tastierino, fare clic sul collegamento per scaricarlo da Github. Otterrai un file ZIP, quindi aggiungi questa libreria ad Arduino da Sketch -> Includi libreria -> Aggiungi file.ZIP e punta la posizione a questo file scaricato. Una volta fatto, siamo tutti pronti per la programmazione.
Anche se abbiamo utilizzato una libreria per utilizzare una tastiera, dobbiamo menzionare alcuni dettagli (mostrati sotto) sulla tastiera per Arduino. La variabile ROWS e COLS dirà quante righe e colonne ha la nostra tastiera e la mappa dei tasti mostra l'ordine in cui i tasti sono presenti sulla tastiera. Anche la tastiera che sto usando in questo progetto ha questo aspetto sotto la mappa dei tasti.
Più avanti abbiamo menzionato a quali pin è collegata la tastiera utilizzando la variabile array rowPins e colPins .
const byte ROWS = 4; // Quattro righe const byte COLS = 4; // Tre colonne // Definisci le chiavi dei caratteri della mappa chiave = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, { "7", "8", "9", "C"}, {"*", "0", "#", "D"}}; byte rowPins = {0, 1, 2, 3}; // Collega la tastiera ROW0, ROW1, ROW2 e ROW3 a questi pin Arduino. byte colPins = {4, 5, 6, 7}; // Collega la tastiera COL0, COL1 e COL2 a questi pin Arduino.
Dopo aver menzionato il tipo di tastiera che stiamo utilizzando e come è collegata, possiamo creare la tastiera utilizzando questi dettagli utilizzando la riga sottostante
Keypad kpd = Keypad (makeKeymap (keys), rowPins, colPins, ROWS, COLS); // Crea la tastiera
Allo stesso modo dobbiamo anche dire a quali pin di Arduino è collegato il display LCD. Secondo il nostro schema elettrico le definizioni sarebbero come sotto
const int rs = 8, en = 9, d4 = 10, d5 = 11, d6 = 12, d7 = 13; // Pin a cui è collegato LCD LiquidCrystal lcd (rs, en, d4, d5, d6, d7); // crea l'LCD
All'interno della funzione di configurazione , visualizziamo semplicemente il nome del progetto e quindi procediamo al ciclo while dove si trova il progetto principale.
Fondamentalmente, dobbiamo controllare se qualcosa viene digitato sulla tastiera, se digitato dobbiamo riconoscere ciò che viene digitato e poi convertirlo in una variabile quando viene premuto il "=" dobbiamo calcolare il risultato e poi finalmente visualizzarlo sullo schermo LCD. Questo è esattamente ciò che viene fatto all'interno della funzione loop come mostrato di seguito
chiave = kpd.getKey (); // memorizza il valore del tasto premuto in un carattere if (key! = NO_KEY) DetectButtons (); if (risultato == true) CalculateResult (); DisplayResult ();
Ciò che accade all'interno di ogni funzione viene spiegato usando le righe di commento, passa attraverso il codice completo di seguito, giocherella con esso per capire come funziona effettivamente. Se hai qualche dubbio su una linea specifica, sentiti libero di usare la sezione commenti o i forum.
Simulazione del calcolatore Arduino:
Possiamo anche provare a simulare il progetto utilizzando il software Proteus. Proteus non ha un componente Arduino da solo, ma può essere facilmente scaricato e aggiunto alla sua libreria. Una volta che hai il componente Arduino su Proteus, aggiungi semplicemente LCD alfanumerico e tastiera per effettuare la connessione come mostrato nello schema del circuito.
Quindi scarica il file hex da qui e aggiungilo ad Arduino facendo doppio clic sulla scheda in Proteus e punta il "file di programma" su questo file hex scaricato. Di seguito è mostrata un'istantanea della simulazione, la lavorazione completa è mostrata nel video sottostante.
Nota: il file esadecimale fornito non è uguale all'originale del programma indicato di seguito. È stato modificato in quanto la mappa dei tasti della tastiera di simulazione e della tastiera hardware effettiva è diversa.
Funzionamento del calcolatore Arduino:
Effettuare i collegamenti come da schema elettrico e caricare il codice sottostante. Se mostra un errore, assicurati di aver aggiunto la libreria secondo le istruzioni fornite sopra. Puoi anche provare la simulazione per verificare se il problema riguarda il tuo hardware. Se tutto è fatto come dovrebbe essere, il tuo hardware avrà un aspetto simile a questo sotto con il display LCD che lo visualizza
Poiché la tastiera utilizzata qui non ha contrassegni appropriati, ho assunto che gli alfabeti siano operatori come elencato di seguito
Carattere sulla tastiera |
Presunto di essere |
"UN" |
Addizione (+) |
"B" |
Sottrazione (-) |
"C" |
Moltiplicazione (*) |
"D" |
Divisione (/) |
"*" |
Chiaro (C) |
"#" |
Uguale a (=) |
Puoi usare un pennarello per scrivere su ciò che ogni pulsante rappresenta effettivamente.
Fatto ciò, puoi iniziare direttamente a utilizzare la calcolatrice. Digita il numero e apparirà sulla seconda riga, premere l'operando e digitare il secondo numero infine premere il tasto "#" per ottenere il risultato. Puoi anche provare a costruire questo calcolatore Arduino basato su touchscreen.