Sommario:

Calcolatrice Concorso TinkerCad: 8 passaggi
Calcolatrice Concorso TinkerCad: 8 passaggi

Video: Calcolatrice Concorso TinkerCad: 8 passaggi

Video: Calcolatrice Concorso TinkerCad: 8 passaggi
Video: How to make a 8 led chase using Arduino on Tinkercad 2024, Dicembre
Anonim
Calcolatrice Concorso TinkerCad
Calcolatrice Concorso TinkerCad

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

Collegamento della tastiera 4x4
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

Fornire alimentazione alla breadboard e collegare LCD
Fornire alimentazione alla breadboard e collegare 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

Collegare l'alimentazione e la messa a terra all'LCD
Collegare l'alimentazione e la messa a terra all'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

Collegamento del potenziometro
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

Collegamento di Arduino a LCD
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

Risultato
Risultato
Risultato
Risultato

Spero che vi sia piaciuto questo istruibile. Grazie per aver letto!

Sai.

Consigliato: