Kalkulator TinkerCad natjecanje: 8 koraka
Kalkulator TinkerCad natjecanje: 8 koraka
Anonim
Kalkulator TinkerCad natjecanje
Kalkulator TinkerCad natjecanje

Hej, tako sam nedavno istraživao kako implementirati različite vrste koda u krug. Otkrio sam da bi izrada kalkulatora bila izvrstan način za implementaciju "case" i drugih oblika koda koji su mi bili zanimljivi. Ranije sam izrađivao kalkulatore izravno iz koda, ali zanimljivost mi je stvorila sklop za to. Pogotovo u ovo vrijeme karantene gdje sam gotovo cijeli dan na računalu. Projekt je za provedbu matematičkih operacija na LCD zaslonu.

Korak 1: Materijali

Za krug:

  • LCD 16 x 2
  • Arduino Uno R3
  • Tipkovnica 4x4
  • Mali Breadboard
  • Potenciometar (250 kΩ)
  • Otpornik (1 kΩ)
  • x26 Žice za kratkospojnike

Korak 2: Spajanje 4x4 tipkovnice

Povezivanje 4x4 tipkovnice
Povezivanje 4x4 tipkovnice

Spojite pinove od 4 reda na tipkovnici 4x4 na Arduino pinove 4-7 i spojite pinove s 4 stupca na Arduino pinove 0-3.

Korak 3: Omogućite napajanje tiskanoj ploči i povežite LCD

Omogućite napajanje tiskanoj ploči i povežite LCD
Omogućite napajanje tiskanoj ploči i povežite LCD

Koristio sam napon snage 5 za ploču. Priključio sam napajanje i masu na ploču. LCD se postavlja na matičnu ploču i postavlja tako da se svi njegovi pinovi spoje na matičnu ploču.

Korak 4: Spojite napajanje i uzemljenje na LCD

Spojite napajanje i uzemljenje na LCD
Spojite napajanje i uzemljenje na LCD

Za spajanje na LCD bit će potrebna 3 pina uzemljenja. Jedan će biti spojen na uzemljenje LCD -a, drugi će biti spojen na LED diodu LCD -a, a posljednji će biti spojen na RW. VCC na LCD -u i LED diodi zahtijevaju spajanje napajanja. Međutim, za napajanje LED -a bit će potreban priključeni otpornik. U ovom sam slučaju koristio otpornik od 1 kΩ.

Korak 5: Spajanje potenciometra

Spajanje potenciometra
Spajanje potenciometra

Spojite potenciometar na ploču s 3 slobodna stupca. Imat će 3 pina, stupcu koji sadrži priključak 1 pina trebat će mu uzemljenje. Stupcu koji sadrži priključak 2 kontakta potrebno je napajanje. Tada će brisač u svom stupcu imati kratkospojnu žicu koja se spaja na VO LCD -a.

Korak 6: Spajanje Arduina na LCD

Spajanje Arduina na LCD
Spajanje Arduina na LCD

Igle 8-13 na Arduinu bit će spojene na LCD. Igle 8-11 na Arduinu povezat će se s D8 (7-4). Zatim će se pin 12 Arduina spojiti s Enable -om LCD -a, a pin 13 na Arduinu će se spojiti na registar LCD -a.

Korak 7: Implementirajte kôd

Kod će biti potreban za korištenje matematičkih operacija s tipkovnicom i LCD -om. Sljedeći će biti kôd koji sam koristio, međutim više se promjena ipak može implementirati kako bi bilo čišće i bolje. Zato se slobodno poigrajte s tim malo.

#include #include

LCD tekući kristal (13, 12, 11, 10, 9, 8);

dugo prvo = 0;

duga sekunda = 0;

dvostruko ukupno = 0;

int pozit = 0;

char customKey;

const byte ROWS = 4;

const bajt COLS = 4;

ključevi char [ROWS] [COLS] = {

{'1', '2', '3', '/'}, {'4', '5', '6', '*'}, {'7', '8', '9', '-'}, {'C', '0', '=', '+'}};

byte rowPins [ROWS] = {7, 6, 5, 4};

bajt colPins [COLS] = {3, 2, 1, 0};

Tipkovnica customKeypad = Tipkovnica (makeKeymap (tipke), rowPins, colPins, ROWS, COLS);

void setup () {

lcd.begin (16, 2);

lcd.setCursor (5, 0);

lcd.clear (); }

void loop () {{100} {101}

customKey = customKeypad.getKey ();

switch (customKey) {

slučaj '0' … '9':

lcd.setCursor (0, 0);

prvi = prvi * 10 + (customKey - '0');

lcd.print (prvi);

pozit ++;

pauza;

slučaj '+':

prvi = (ukupno! = 0? ukupno: prvo);

lcd.setCursor (pozicija, 0);

lcd.print ("+");

pozit ++;

second = Drugi broj ();

ukupno = prvi + drugi;

lcd.setCursor (1, 1);

lcd.tisak (ukupno);

prvi = 0, drugi = 0;

pozit = 0;

pauza;

slučaj '-':

prvi = (ukupno! = 0? ukupno: prvo);

lcd.setCursor (pozicija, 0);

lcd.print ("-");

pozit ++;

second = Drugi broj ();

ukupno = prvi - drugi;

lcd.setCursor (1, 1);

lcd.tisak (ukupno);

prvi = 0, drugi = 0;

pozit = 0;

pauza;

slučaj '*':

prvi = (ukupno! = 0? ukupno: prvo);

lcd.setCursor (pozicija, 0);

lcd.print ("*");

pozit ++;

second = Drugi broj ();

ukupno = prva * druga;

lcd.setCursor (1, 1);

lcd.tisak (ukupno);

prvi = 0, drugi = 0;

pozit = 0;

pauza;

slučaj '/':

prvi = (ukupno! = 0? ukupno: prvo);

lcd.setCursor (pozicija, 0);

lcd.print ("/");

pozit ++;

second = Drugi broj (); lcd.setCursor (1, 1);

drugi == 0? lcd.print ("Greška"): ukupno = prvo (float) prvo / (float) drugo;

lcd.tisak (ukupno);

prvi = 0, drugi = 0;

pozit = 0;

pauza;

slučaj 'C':

ukupno = 0;

prvi = 0;

drugi = 0;

pozit = 0;

lcd.clear ();

pauza; }

}

long SecondNumber () {

dok (1) {

customKey = customKeypad.getKey ();

if (customKey> = '0' && customKey <= '9') {

drugi = drugi * 10 + (customKey - '0');

lcd.setCursor (pozicija, 0);

lcd.print (drugi); }

if (customKey == 'C') {

ukupno = 0;

prvi = 0;

drugi = 0;

pozit = 0;

lcd.clear ();

pauza; }

if (customKey == '=') {

lcd.setCursor (0, 1);

lcd.print ("=");

pozit = ukupno;

lcd.clear ();

lcd.setCursor (0, 1);

lcd.print ("=");

pauza; }

}

povratak drugi;}

Korak 8: Rezultat

Proizlaziti
Proizlaziti
Proizlaziti
Proizlaziti

Nadam se da ste svi uživali u ovom uputstvu. Hvala na čitanju!

Saim.