Indholdsfortegnelse:

Lommeregner TinkerCad -konkurrence: 8 trin
Lommeregner TinkerCad -konkurrence: 8 trin

Video: Lommeregner TinkerCad -konkurrence: 8 trin

Video: Lommeregner TinkerCad -konkurrence: 8 trin
Video: Как к получить Пользователь ввод в C 2024, November
Anonim
Lommeregner TinkerCad -konkurrence
Lommeregner TinkerCad -konkurrence

Hej, så for nylig har jeg undersøgt, hvordan man implementerer forskellige typer kode i et kredsløb. Jeg fandt ud af, at det at lave en lommeregner ville være en fantastisk måde at implementere "case" og andre former for kode, jeg havde fundet interessant. Jeg har tidligere lavet regnemaskiner lige fra kode, men at lave et kredsløb til det gav mig interesse. Især i denne tid i karantæne, hvor jeg er på min computer næsten hele dagen. Projektet er at implementere matematiske operationer på en LCD -skærm.

Trin 1: Materialer

Til kredsløb:

  • LCD 16 x 2
  • Arduino Uno R3
  • Tastatur 4x4
  • Lille brødbræt
  • Potentiometer (250 kΩ)
  • Modstand (1kΩ)
  • x26 Jumper ledninger

Trin 2: Tilslutning af 4x4 -tastaturet

Tilslutning af 4x4 -tastaturet
Tilslutning af 4x4 -tastaturet

Tilslut de 4 række ben på 4x4 tastaturet til Arduino benene 4-7, og slut de 4 søjle ben til Arduino benene 0-3.

Trin 3: Giv strøm til brødbrættet, og tilslut LCD

Giv strøm til brødbrættet, og tilslut LCD
Giv strøm til brødbrættet, og tilslut LCD

Jeg brugte en strømspænding på 5 til brødbrættet. Jeg sluttede strømmen og jorden til brødbrættet. LCD'et placeres på brødbrættet og placeres, så alle dets stifter får forbindelse til brødbrættet.

Trin 4: Tilslut strøm og jord til LCD'et

Tilslut strøm og jord til LCD'et
Tilslut strøm og jord til LCD'et

Der skal være 3 stifter jord for at blive tilsluttet LCD'et. Den ene vil blive tilsluttet jorden selv af LCD'en, en anden vil blive forbundet til LCD'ens LED, og den sidste vil blive forbundet til RW. LCD'ets VCC og lysdioden kræver strømforbindelse. Men strømmen til LED'en kræver en modstand tilsluttet i dette tilfælde brugte jeg en 1kΩ modstand.

Trin 5: Tilslutning af potentiometer

Tilslutning af potentiometer
Tilslutning af potentiometer

Tilslut potentiometeret til brødbrættet med 3 frie søjler. Den vil have 3 ben, søjlen, der indeholder terminalen 1, skal have jord givet til den. Kolonnen, der indeholder terminal 2 -pin, skal bruge strøm til den. Så vil viskeren have en jumper wire i sin kolonne, der forbinder til VO på LCD'et.

Trin 6: Tilslutning af Arduino til LCD

Tilslutning af Arduino til LCD
Tilslutning af Arduino til LCD

Pins 8-13 på Arduino forbindes til LCD'et. Pins 8-11 på Arduino vil oprette forbindelse til henholdsvis D8 (7-4). Derefter vil pin 12 på Arduino forbinde med Enable of LCD'en, og pin 13 på Arduino vil forbinde til LCD'ets register.

Trin 7: Implementér kode

Kode vil være nødvendig for at bruge matematiske operationer med tastaturet og LCD. Det følgende vil være den kode, jeg brugte, men flere ændringer kan stadig implementeres for at gøre det renere og bedre. Så du er velkommen til at lege lidt med det.

#include #include

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

lang først = 0;

langt sekund = 0;

dobbelt total = 0;

int posit = 0;

char customKey;

const byte Rækker = 4;

const byte COLS = 4;

char nøgler [ROWS] [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 customKeypad = Tastatur (makeKeymap (nøgler), rowPins, colPins, ROWS, COLS);

ugyldig opsætning () {

lcd.begin (16, 2);

lcd.setCursor (5, 0);

lcd.clear (); }

void loop () {

customKey = customKeypad.getKey ();

switch (customKey) {

sag '0' … '9':

lcd.setCursor (0, 0);

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

lcd.print (første);

posit ++;

pause;

case '+':

første = (i alt! = 0? i alt: første);

lcd.setCursor (posit, 0);

lcd.print ("+");

posit ++;

second = SecondNumber ();

total = første + andet;

lcd.setCursor (1, 1);

lcd.print (total);

først = 0, andet = 0;

posit = 0;

pause;

sag '-':

første = (i alt! = 0? i alt: første);

lcd.setCursor (posit, 0);

lcd.print ("-");

posit ++;

second = SecondNumber ();

total = første - anden;

lcd.setCursor (1, 1);

lcd.print (total);

først = 0, andet = 0;

posit = 0;

pause;

sag '*':

første = (i alt! = 0? i alt: første);

lcd.setCursor (posit, 0);

lcd.print ("*");

posit ++;

second = SecondNumber ();

total = første * anden;

lcd.setCursor (1, 1);

lcd.print (total);

først = 0, andet = 0;

posit = 0;

pause;

sag '/':

første = (i alt! = 0? i alt: første);

lcd.setCursor (posit, 0);

lcd.print ("/");

posit ++;

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

andet == 0? lcd.print ("Fejl"): total = (float) første / (float) sekund;

lcd.print (total);

først = 0, andet = 0;

posit = 0;

pause;

tilfælde 'C':

i alt=0;

første = 0;

andet = 0;

posit = 0;

lcd.clear ();

pause; }

}

lang SecondNumber () {

mens (1) {

customKey = customKeypad.getKey ();

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

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

lcd.setCursor (posit, 0);

lcd.print (anden); }

hvis (customKey == 'C') {

i alt=0;

første = 0;

andet = 0;

posit = 0;

lcd.clear ();

pause; }

hvis (customKey == '=') {

lcd.setCursor (0, 1);

lcd.print ("=");

posit = total;

lcd.clear ();

lcd.setCursor (0, 1);

lcd.print ("=");

pause; }

}

vende tilbage;}

Trin 8: Resultat

Resultat
Resultat
Resultat
Resultat

Jeg håber, at I alle har nydt dette instruerbare. Tak fordi du læste!

Saim.

Anbefalede: