Sommario:
- Passaggio 1: materiali
- Passaggio 2: collegamento della tastiera 4x4
- Passaggio 3: fornire alimentazione alla breadboard e collegare l'LCD
- Passaggio 4: collegare l'alimentazione e la messa a terra al display LCD
- Passaggio 5: collegamento del potenziometro
- Passaggio 6: collegamento di Arduino a LCD
- Passaggio 7: codice di implementazione
- Passaggio 8: risultato
Video: Calcolatrice Concorso TinkerCad: 8 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:01
Ehi, di recente ho esplorato come implementare diversi tipi di codice in un circuito. Ho scoperto che creare una calcolatrice sarebbe stato un ottimo modo per implementare "casi" e altre forme di codice che avevo trovato interessanti. In passato ho realizzato calcolatrici direttamente dal codice, ma creare un circuito per questo mi ha dato interesse. Soprattutto in questo periodo di quarantena dove sto al computer quasi tutto il giorno. Il progetto consiste nell'implementare operazioni matematiche su uno schermo LCD.
Passaggio 1: materiali
Per il circuito:
- LCD 16 x 2
- Arduino Uno R3
- Tastiera 4x4
- Tagliere piccolo
- Potenziometro (250 kΩ)
- Resistenza (1kΩ)
- x26 cavi del ponticello
Passaggio 2: collegamento della tastiera 4x4
Collegare i pin a 4 righe sulla tastiera 4x4 ai pin Arduino 4-7 e collegare i pin a 4 colonne ai pin Arduino 0-3.
Passaggio 3: fornire alimentazione alla breadboard e collegare l'LCD
Ho usato una tensione di alimentazione di 5 per la breadboard. Ho collegato l'alimentazione e la massa alla breadboard. Il display LCD è posizionato sulla breadboard e posizionato in modo che tutti i suoi pin siano collegati alla breadboard.
Passaggio 4: collegare l'alimentazione e la messa a terra al display LCD
Ci saranno 3 pin di terra necessari per essere collegati al display LCD. Uno sarà collegato alla massa dell'LCD, un altro sarà collegato al LED dell'LCD e l'ultimo sarà collegato all'RW. Il VCC dell'LCD e il led richiederanno alimentazione per essere collegati. Tuttavia l'alimentazione per il LED richiederà un resistore collegato, in questo caso ho usato un resistore da 1kΩ.
Passaggio 5: collegamento del potenziometro
Collega il potenziometro alla breadboard con 3 colonne libere. Avrà 3 pin, la colonna che contiene il pin del terminale 1 avrà bisogno di messa a terra. La colonna che contiene il pin del terminale 2 avrà bisogno di alimentazione. Quindi il tergicristallo avrà un ponticello nella sua colonna che si collega al VO del display LCD.
Passaggio 6: collegamento di Arduino a LCD
I pin 8-13 su Arduino saranno collegati al display LCD. I pin 8-11 su Arduino si collegheranno rispettivamente a D8 (7-4). Quindi il pin 12 dell'Arduino si collegherà con l'Abilitazione dell'LCD e il pin 13 dell'Arduino si collegherà al registro dell'LCD.
Passaggio 7: codice di implementazione
Il codice sarà necessario per utilizzare le operazioni matematiche con la tastiera e l'LCD. Quello che segue sarà il codice che ho usato, tuttavia più modifiche possono ancora essere implementate per renderlo più pulito e migliore. Quindi sentiti libero di giocarci un po'.
#include #include
LCD a cristalli liquidi(13, 12, 11, 10, 9, 8);
prima lunga = 0;
secondo lungo = 0;
doppio totale = 0;
int posizione = 0;
char customKey;
const byte RIGHE = 4;
const byte COLS = 4;
char keys[RIGHE][COLS] = {
{'1', '2', '3', '/'}, {'4', '5', '6', '*'}, {'7', '8', '9', '-'}, {'C', '0', '=', '+'} };
byte rowPins[RIGHE] = {7, 6, 5, 4};
byte colPins[COLS] = {3, 2, 1, 0};
Tastiera customKeypad = Tastiera(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
void setup(){
lcd.begin(16, 2);
lcd.setCursor(5, 0);
lcd.clear(); }
ciclo vuoto() {
customKey = customKeypad.getKey();
switch(CustomKey) {
caso '0' … '9':
lcd.setCursor(0, 0);
primo = primo * 10 + (customKey - '0');
lcd.print(primo);
posizione++;
rottura;
caso '+':
primo = (totale != 0 ? totale: primo);
lcd.setCursor(posit, 0);
lcd.print("+");
posizione++;
secondo = SecondoNumero();
totale = primo + secondo;
lcd.setCursor(1, 1);
lcd.print(totale);
primo = 0, secondo = 0;
posizione=0;
rottura;
Astuccio '-':
primo = (totale != 0 ? totale: primo);
lcd.setCursor(posit, 0);
lcd.print("-");
posizione++;
secondo = SecondoNumero();
totale = primo - secondo;
lcd.setCursor(1, 1);
lcd.print(totale);
primo = 0, secondo = 0;
posizione=0;
rottura;
Astuccio '*':
primo = (totale != 0 ? totale: primo);
lcd.setCursor(posit, 0);
lcd.print("*");
posizione++;
secondo = SecondoNumero();
totale = primo * secondo;
lcd.setCursor(1, 1);
lcd.print(totale);
primo = 0, secondo = 0;
posizione=0;
rottura;
Astuccio '/':
primo = (totale != 0 ? totale: primo);
lcd.setCursor(posit, 0);
lcd.print("/");
posizione++;
secondo = SecondoNumero(); lcd.setCursor(1, 1);
secondo == 0 ? lcd.print("Errore"): total = (float)primo / (float)secondo;
lcd.print(totale);
primo = 0, secondo = 0;
posizione=0;
rottura;
caso 'C':
totale = 0;
primo = 0;
secondo = 0;
posizione = 0;
lcd.clear();
rottura; }
}
secondo numero lungo() {
mentre(1) {
customKey = customKeypad.getKey();
if(customKey >= '0' && customKey <= '9') {
secondo = secondo * 10 + (customKey - '0');
lcd.setCursor(posit, 0);
lcd.print(secondo); }
if(CustomKey == 'C') {
totale = 0;
primo = 0;
secondo = 0;
posizione = 0;
lcd.clear();
rottura; }
if(CustomKey == '='){
lcd.setCursor(0, 1);
lcd.print("=");
posizione = totale;
lcd.clear();
lcd.setCursor(0, 1);
lcd.print("=");
rottura; }
}
ritorna per secondo;}
Passaggio 8: risultato
Spero che vi sia piaciuto questo istruibile. Grazie per aver letto!
Sai.
Consigliato:
Robot da disegno con scudo Adafruit (concorso Make It Move): 10 passaggi (con immagini)
Drawing Robot With Adafruit Shield (Make It Move Contest): Ciao, mi chiamo Jacob e vivo nel Regno Unito. In questo progetto costruirò un robot che disegna per te. *Sono sicuro che molti di voi vogliono vederlo, quindi se vuoi saperlo, salta direttamente al penultimo passaggio ma assicurati di tornare qui per vedere
Harvest Drawers - Partecipazione al concorso Growing Beyond Earth della NASA: 5 passaggi (con immagini)
Harvest Drawers - Voce al concorso Growing Beyond Earth della NASA: Riepilogo: A bordo della stazione spaziale internazionale, gli astronauti non hanno molto spazio per coltivare il cibo. Questo giardino idroponico è progettato per funzionare in modo efficiente utilizzando la quantità minima di spazio per raccogliere 30 piante a rotazione in un a gravità zero
Braccio robotico con servomotore RC controllato da Fpga - Concorso Digilent: 3 passaggi
Braccio robotico con servomotore RC controllato da Fpga - Digilent Contest: braccio robotico con servomotore controllato da FPGA L'obiettivo di questo progetto è creare un sistema programmabile in grado di eseguire operazioni di saldatura su scheda perf. Il sistema è basato sulla scheda di sviluppo Digilent Basys3 e sarà in grado di saldare co
Partecipazione al concorso per badge Make:NYC da una vecchia stampante GameBoy: 14 passaggi (con immagini)
Partecipazione al concorso per badge Make:NYC da una vecchia stampante GameBoy: Ciao a tutti, ecco il mio secondo colpo a un Instructable.. sii gentile. , l'essenza della competizione è creare una targhetta/badge indossabile di qualche tipo, di alcuni materiali
Iscrizione tascabile al concorso di velocità: custodia universale per il trasporto di memoria! Smetti di dimenticare: 3 passaggi
Iscrizione tascabile al concorso di velocità: custodia universale per il trasporto di memoria! Smetti di dimenticare: questa è una "custodia da trasporto universale" per sd, mmc, unità flash, xd, CF, memory stik/pro… ideale per tutte le tue esigenze di memoria! E ENTRA IN TASCA!!! Questa è una partecipazione al "Concorso di velocità tascabile" (Il concorso si chiude il giorno del mio compleanno, quindi per favore v