Innholdsfortegnelse:

Kalkulator TinkerCad -konkurranse: 8 trinn
Kalkulator TinkerCad -konkurranse: 8 trinn

Video: Kalkulator TinkerCad -konkurranse: 8 trinn

Video: Kalkulator TinkerCad -konkurranse: 8 trinn
Video: Lesson 98: Arduino 10 LED Push button Projects, Potentiometer LED Voltmeter and Traffic Light 2024, November
Anonim
Kalkulator TinkerCad -konkurranse
Kalkulator TinkerCad -konkurranse

Hei, så nylig har jeg undersøkt hvordan jeg kan implementere forskjellige typer kode i en krets. Jeg fant ut at det å lage en kalkulator ville være en fin måte å implementere "case" og andre former for kode jeg hadde funnet interessant. Jeg har tidligere laget kalkulatorer rett fra kode, men å lage en krets for det ga meg interesse. Spesielt i denne tiden av karantene hvor jeg er på datamaskinen min nesten hele dagen. Prosjektet er å implementere matematiske operasjoner på en LCD -skjerm.

Trinn 1: Materialer

For krets:

  • LCD 16 x 2
  • Arduino Uno R3
  • Tastatur 4x4
  • Lite brødbrett
  • Potensiometer (250 kΩ)
  • Motstand (1kΩ)
  • x26 Jumper ledninger

Trinn 2: Koble til 4x4 -tastaturet

Koble til 4x4 -tastaturet
Koble til 4x4 -tastaturet

Koble de fire radpinnene på 4x4-tastaturet til Arduino-pinnene 4-7, og koble de 4 kolonnpinnene til Arduino-pinnene 0-3.

Trinn 3: Gi strøm til brødbrettet og koble til LCD -skjermen

Gi brødbrettet strøm og koble til LCD -skjermen
Gi brødbrettet strøm og koble til LCD -skjermen

Jeg brukte en spenning på 5 til brødbrettet. Jeg koblet strømmen og bakken til brødbrettet. LCD -skjermen er plassert på brødbrettet og plassert slik at alle pinnene blir koblet til brødbrettet.

Trinn 4: Koble strøm og jord til LCD -skjermen

Koble strøm og jord til LCD -skjermen
Koble strøm og jord til LCD -skjermen

Det vil være 3 pins med jord som må kobles til LCD -skjermen. En vil bli koblet til bakken selv av LCD -en, en annen vil bli koblet til LED -en på LCD -en, og den siste vil bli koblet til RW. VCC på LCD og LED vil kreve strøm for å være tilkoblet. Strømmen til LED vil imidlertid kreve en motstand som er tilkoblet i dette tilfellet brukte jeg en 1kΩ motstand.

Trinn 5: Koble til potensiometeret

Koble til potensiometeret
Koble til potensiometeret

Koble potensiometeret til brødbrettet med 3 ledige kolonner. Den vil ha 3 pinner, kolonnen som inneholder terminal 1 -pinnen trenger bakken gitt til den. Kolonnen som inneholder terminal 2 -pinne trenger strøm gitt til den. Da vil viskeren ha en startkabel i kolonnen som kobles til VO på LCD -skjermen.

Trinn 6: Koble Arduino til LCD

Koble Arduino til LCD
Koble Arduino til LCD

Pins 8-13 på Arduino blir koblet til LCD-skjermen. Pins 8-11 på Arduino vil koble til henholdsvis D8 (7-4). Deretter vil pin 12 på Arduino koble til Enable of LCD, og pin 13 på Arduino vil koble til registeret på LCD -skjermen.

Trinn 7: Implementere kode

Kode vil være nødvendig for å bruke matematiske operasjoner med tastaturet og LCD -skjermen. Følgende vil være koden jeg brukte, men flere endringer kan fortsatt implementeres for å gjøre den renere og bedre. Så spill gjerne med det litt.

#include #include

LiquidCrystal lcd (13, 12, 11, 10, 9, 8);

lang først = 0;

lang sekund = 0;

dobbel totalt = 0;

int posit = 0;

char customKey;

const byte RADER = 4;

const byte COLS = 4;

forkulletaster [RADER] [COLS] = {

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

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

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

Tastatur tilpasset tastatur = Tastatur (makeKeymap (nøkler), rowPins, colPins, ROWS, COLS);

ugyldig oppsett () {

lcd.begin (16, 2);

lcd.setCursor (5, 0);

lcd.clear (); }

void loop () {

customKey = customKeypad.getKey ();

switch (customKey) {

sak '0' … '9':

lcd.setCursor (0, 0);

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

lcd.print (første);

posit ++;

gå i stykker;

tilfelle '+':

først = (totalt! = 0? totalt: først);

lcd.setCursor (posit, 0);

lcd.print ("+");

posit ++;

second = SecondNumber ();

total = første + andre;

lcd.setCursor (1, 1);

lcd.print (totalt);

først = 0, andre = 0;

posit = 0;

gå i stykker;

sak '-':

først = (totalt! = 0? totalt: først);

lcd.setCursor (posit, 0);

lcd.print ("-");

posit ++;

second = SecondNumber ();

total = første - andre;

lcd.setCursor (1, 1);

lcd.print (totalt);

først = 0, andre = 0;

posit = 0;

gå i stykker;

tilfelle '*':

første = (totalt! = 0? totalt: første);

lcd.setCursor (posit, 0);

lcd.print ("*");

posit ++;

second = SecondNumber ();

total = første * andre;

lcd.setCursor (1, 1);

lcd.print (totalt);

først = 0, andre = 0;

posit = 0;

gå i stykker;

sak '/':

først = (totalt! = 0? totalt: først);

lcd.setCursor (posit, 0);

lcd.print ("/");

posit ++;

second = SecondNumber (); lcd.setCursor (1, 1);

andre == 0? lcd.print ("Feil"): total = (float) første / (float) andre;

lcd.print (totalt);

først = 0, andre = 0;

posit = 0;

gå i stykker;

sak 'C':

totalt = 0;

første = 0;

andre = 0;

posit = 0;

lcd.clear ();

gå i stykker; }

}

long SecondNumber () {

mens (1) {

customKey = customKeypad.getKey ();

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

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

lcd.setCursor (posit, 0);

lcd.print (andre); }

hvis (customKey == 'C') {

totalt = 0;

første = 0;

andre = 0;

posit = 0;

lcd.clear ();

gå i stykker; }

if (customKey == '=') {

lcd.setCursor (0, 1);

lcd.print ("=");

posit = totalt;

lcd.clear ();

lcd.setCursor (0, 1);

lcd.print ("=");

gå i stykker; }

}

returner andre;}

Trinn 8: Resultat

Resultat
Resultat
Resultat
Resultat

Jeg håper dere alle likte dette lærerikt. Takk for at du leser!

Saim.

Anbefalt: