Sommario:

Calcolatrice Arduino: 6 passaggi
Calcolatrice Arduino: 6 passaggi

Video: Calcolatrice Arduino: 6 passaggi

Video: Calcolatrice Arduino: 6 passaggi
Video: Progetto Arduino : Calcolatrice 2024, Dicembre
Anonim
Calcolatrice Arduino
Calcolatrice Arduino

La programmazione è sempre divertente e Arduino è una piattaforma meravigliosa se hai appena iniziato con la programmazione incorporata. 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 (16×2 Dot-matrix). 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 usando il prontamente biblioteche disponibili. Capirai anche come programmare il tuo Arduino per svolgere un compito particolare.

Passaggio 1: cose necessarie

Arduino Uno (qualsiasi versione funzionerà) Display LCD 16×2 Tastiera 4×4 Batteria 9V Tagliere e cavi di collegamento

Passaggio 2: schema elettrico

Schema elettrico
Schema elettrico

Passaggio 3: 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, interfacceremo 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 della tastiera, fai clic sul collegamento per scaricarla da Github. Otterrai un file ZIP, quindi aggiungerai questa libreria ad Arduino tramite Sketch -> Includi libreria -> Aggiungi file. ZIP e punta la posizione a questo file scaricato. Una volta terminato, siamo pronti per la programmazione. Anche se abbiamo utilizzato una libreria per l'utilizzo di una tastiera, dobbiamo menzionare alcuni dettagli (mostrati di seguito) 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. La tastiera che sto utilizzando in questo progetto assomiglia a questa sotto per la mappa dei tasti rappresenta anche la stessa. Più avanti abbiamo menzionato a quali pin è collegata la tastiera usando l'array variabile rowPins e colPins.const byte ROWS = 4; // Quattro righeconst byte COLS = 4; // Tre colonne// Definisci le chiavi Keymapchar [ROWS][COLS] = { {'1', '2', '3', 'A'}, {'4', '5', '6', ' B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}};byte rowPins[ROWS] = { 0, 1, 2, 3 };// Collega la tastiera ROW0, ROW1, ROW2 e ROW3 a questi pin Arduino.byte colPins[COLS] = { 4, 5, 6, 7 }; // Collega la tastiera COL0, COL1 e COL2 a questi pin Arduino. Una volta che abbiamo menzionato che tipo di tastiera stiamo usando e come è collegata, possiamo creare la tastiera usando quei dettagli usando la riga sottostanteKeypad kpd = Keypad(makeKeymap(keys), rowPins, colPin, ROWS, COLS); // Crea il KeypadAllo stesso modo dobbiamo anche dire a quali pin dell'Arduino è collegato il display LCD. Secondo il nostro schema elettrico le definizioni sarebbero come sottoconst int rs = 8, en = 9, d4 = 10, d5 = 11, d6 = 12, d7 = 13; //Pin a cui è connesso LCD LiquidCrystal lcd(rs, en, d4, d5, d6, d7); //creiamo l'LCD All'interno della funzione di setup, ci basta visualizzare il nome del progetto e poi procedere al ciclo while dove si trova il progetto principale. Fondamentalmente, dobbiamo controllare se si sta digitando qualcosa sulla tastiera, se digitato dobbiamo riconoscere cosa si sta digitando e poi convertirlo in una variabile quando si preme il “=” dobbiamo calcolare il risultato e poi infine visualizzarlo sul display LCD. Questo è esattamente ciò che viene fatto all'interno della funzione loop come mostrato di seguitokey = kpd.getKey(); //memorizzazione del valore del tasto premuto in un charif (key!=NO_KEY)DetectButtons();if (result==true)CalculateResult();DisplayResult(); Ciò che accade all'interno di ciascuna funzione è spiegato utilizzando le righe di commento, scorrere il codice completo di seguito, giocherellare 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.

Passaggio 4:

Passaggio 5: funzionamento della calcolatrice Arduino

Funzionamento della calcolatrice Arduino
Funzionamento della calcolatrice 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, allora il tuo hardware sarà simile a questo sotto con il display LCD che mostra questa Calcolatrice Arduino che utilizza la tastiera 4x4 in azione Poiché la tastiera utilizzata qui non ha i contrassegni corretti su di essa, ho assunto che gli alfabeti siano operatori come elencati di seguitoCarattere sulla tastieraSi assume che sia “A”Addizione (+)“B”Sottrazione (-)“C”Moltiplicazione (*)“D”Divisione (/)“*”Cancella (C)“#”È uguale (=)Puoi usa 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 premi l'operando e digita il tuo secondo numero infine premi il tasto “#” per ottenere il tuo risultato. Puoi anche provare a costruire questa calcolatrice Arduino basata su touchscreen.

Passaggio 6: codice

/* * Calcolatrice tastiera Arduino Programma */#include //File di intestazione per LCD da https://www.arduino.cc/en/Reference/LiquidCrystal#include //File di intestazione per tastiera da https://github.com/ Chris--A/Keypadconst byte ROWS = 4; // Quattro righeconst byte COLS = 4; // Tre colonne// Definisci le chiavi Keymapchar [ROWS][COLS] = { {'7', '8', '9', 'D'}, {'4', '5', '6', ' C'}, {'1', '2', '3', 'B'}, {'*', '0', '#', 'A'}};byte rowPins[ROWS] = { 0, 1, 2, 3 };// Collega la tastiera ROW0, ROW1, ROW2 e ROW3 a questi pin Arduino.byte colPins[COLS] = { 4, 5, 6, 7 }; // Collega la tastiera COL0, COL1 e COL2 a questi pin Arduino. Keypad kpd = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS); // Crea il Keypadconst int rs = 8, en = 9, d4 = 10, d5 = 11, d6 = 12, d7 = 13; //Pin a cui è connesso LCD LiquidCrystal lcd(rs, en, d4, d5, d6, d7); lungo Num1, Num2, Numero; chiave char, azione; risultato booleano = false; void setup() { lcd.begin(16, 2); //Stiamo utilizzando un display LCD 16*2 lcd.print("Calcolatrice fai da te"); //Visualizza un messaggio introduttivo lcd.setCursor(0, 1); // imposta il cursore sulla colonna 0, riga 1 lcd.print("-CircuitDigest"); //Mostra un messaggio introduttivo delay(2000); //Aspetta che il display mostri le informazioni lcd.clear(); //Quindi puliscilo}void loop() {key = kpd.getKey(); //memorizzazione del valore del tasto premuto in un charif (key!=NO_KEY)DetectButtons();if (result==true)CalculateResult();DisplayResult(); }void DetectButtons(){ lcd.clear(); //Quindi puliscilo if (key=='*') //Se viene premuto il pulsante Annulla {Serial.println ("Pulsante Annulla"); Numero=Num1=Num2=0; risultato=falso;} if (tasto == '1') //Se viene premuto il pulsante 1 {Serial.println ("Pulsante 1"); if (Numero==0) Numero=1; else Numero = (Numero*10) + 1; //Premuto due volte } if (tasto == '4') //Se viene premuto il pulsante 4 {Serial.println ("Pulsante 4"); if (Numero==0) Numero=4; else Numero = (Numero*10) + 4; //Premuto due volte } if (tasto == '7') //Se viene premuto il pulsante 7 {Serial.println ("Pulsante 7"); if (Numero==0) Numero=7; else Numero = (Numero*10) + 7; //Premuto due volte } if (tasto == '0') {Serial.println ("Pulsante 0"); //Il pulsante 0 viene premuto se (Number==0) Number=0; else Numero = (Numero*10) + 0; //Premuto due volte } if (tasto == '2') //Il pulsante 2 viene premuto {Serial.println ("Pulsante 2"); if (Numero==0) Numero=2; else Numero = (Numero*10) + 2; //Premuto due volte } if (tasto == '5') {Serial.println ("Pulsante 5"); if (Numero==0) Numero=5; else Numero = (Numero*10) + 5; //Premuto due volte } if (tasto == '8') {Serial.println ("Pulsante 8"); if (Numero==0) Numero=8; else Numero = (Numero*10) + 8; //Premuto due volte } if (tasto == '#') {Serial.println ("Pulsante uguale"); Num2=Numero; risultato = vero; } if (tasto == '3') {Serial.println ("Pulsante 3"); if (Numero==0) Numero=3; else Numero = (Numero*10) + 3; //Premuto due volte } if (tasto == '6') {Serial.println ("Pulsante 6"); if (Numero==0) Numero=6; else Numero = (Numero*10) + 6; //Premuto due volte } if (tasto == '9') {Serial.println ("Pulsante 9"); if (Numero==0) Numero=9; else Numero = (Numero*10) + 9; //Premuto due volte } if (tasto == 'A' || tasto == 'B' || tasto == 'C' || tasto == 'D') //Rilevazione pulsanti sulla colonna 4 { Num1 = Numero; Numero =0; if (chiave == 'A') {Serial.println ("Aggiunta"); azione = '+';} if (tasto == 'B') {Serial.println ("Sottrazione"); azione = '-'; } if (tasto == 'C') {Serial.println ("Moltiplicazione"); azione = '*';} if (chiave == 'D') {Serial.println ("Sviluppo"); azione = '/';} ritardo(100); }}void CalculateResult(){ if (action=='+') Number = Num1+Num2; if (azione=='-') Numero = Num1-Num2; if (azione=='*') Numero = Num1*Num2; if (azione=='/') Numero = Num1/Num2; }void DisplayResult(){ lcd.setCursor(0, 0); // imposta il cursore sulla colonna 0, riga 1 lcd.print(Num1); lcd.print(azione); lcd.print(Num2); if (risultato==vero) {lcd.print(" ="); lcd.print(Number);} //Visualizza il risultato lcd.setCursor(0, 1); // imposta il cursore sulla colonna 0, riga 1 lcd.print(Number); //Visualizza il risultato}

Consigliato: