INHOUDSOPGAWE:

Sakrekenaar TinkerCad -wedstryd: 8 stappe
Sakrekenaar TinkerCad -wedstryd: 8 stappe

Video: Sakrekenaar TinkerCad -wedstryd: 8 stappe

Video: Sakrekenaar TinkerCad -wedstryd: 8 stappe
Video: NEWYES Calculator VS Casio calculator 2024, November
Anonim
Sakrekenaar TinkerCad Wedstryd
Sakrekenaar TinkerCad Wedstryd

Hey, so onlangs het ek ondersoek hoe ek verskillende soorte kode in 'n stroombaan kan implementeer. Ek het gevind dat die maak van 'n sakrekenaar 'n goeie manier sou wees om 'case' en ander vorme van kode wat ek interessant gevind het, te implementeer. Ek het in die verlede sakrekenaars reguit van die kode gemaak, maar ek het 'n stroombaan daarvoor gemaak. Veral gedurende hierdie tyd van kwarantyn waar ek amper die hele dag op my rekenaar is. Die projek is om wiskundige bewerkings op 'n LCD -skerm te implementeer.

Stap 1: materiaal

Vir stroombaan:

  • LCD 16 x 2
  • Arduino Uno R3
  • Toetsenbord 4x4
  • Klein broodbord
  • Potensiometer (250 kΩ)
  • Weerstand (1kΩ)
  • x26 Jumper drade

Stap 2: Koppel die 4x4 -klavier

Koppel die 4x4 -klavier
Koppel die 4x4 -klavier

Verbind die 4 ry-penne op die 4x4-klavier met die Arduino-penne 4-7, en verbind die 4 kolompenne met die Arduino-penne 0-3.

Stap 3: Gee die broodbord krag en koppel die LCD

Gee die broodbord krag en verbind die LCD
Gee die broodbord krag en verbind die LCD

Ek het 'n kragspanning van 5 vir die broodbord gebruik. Ek het die krag en die grond aan die broodbord gekoppel. Die LCD word op die broodbord geplaas en geplaas sodat al sy penne met die broodbord verbind kan word.

Stap 4: Koppel krag en grond aan op die LCD

Koppel krag en grond aan die LCD
Koppel krag en grond aan die LCD

Daar sal 3 penne grond nodig wees om aan die LCD gekoppel te word. Die een word gekoppel aan die LCD selfoon, die ander aan die LED van die LCD, en die laaste aan die RW. Die VCC van die LCD en die LED sal krag benodig om aan te sluit. Die krag vir die LED sal egter 'n weerstand benodig, in hierdie geval het ek 'n 1kΩ -weerstand gebruik.

Stap 5: Koppel die potensiometer

Koppel die potensiometer
Koppel die potensiometer

Koppel die potensiometer aan die broodbord met 3 gratis kolomme. Dit sal 3 penne hê, die kolom wat die terminale 1 pen bevat, sal grond benodig word. Die kolom wat die terminale 2 -pen bevat, benodig krag. Dan sal die veër 'n jumperdraad in die kolom hê wat aansluit by die VO van die LCD.

Stap 6: Koppel die Arduino aan die LCD

Koppel die Arduino aan die LCD
Koppel die Arduino aan die LCD

Spelde 8-13 op die Arduino sal aan die LCD gekoppel word. Spelde 8-11 op die Arduino sal onderskeidelik met D8 (7-4) verbind word. Dan sal pen 12 van die Arduino aansluit by die Enable of the LCD, en pen 13 op die Arduino sal aansluit by die register van die LCD.

Stap 7: Implementeer kode

Kode sal nodig wees om wiskundige bewerkings met die bedieningspaneel en LCD te gebruik. Die volgende is die kode wat ek gebruik het, maar ek kan nog steeds verskeie veranderings implementeer om dit skoner en beter te maak. So speel gerus 'n bietjie daarmee.

#include #include

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

lank eerste = 0;

lang sekonde = 0;

dubbele totaal = 0;

int posit = 0;

char customKey;

const byte RYDE = 4;

const byte COLS = 4;

char sleutels [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};

Toetsenbord customKeypad = Toetsenbord (makeKeymap (sleutels), rowPins, colPins, ROWS, COLS);

ongeldige opstelling () {

lcd.begin (16, 2);

lcd.setCursor (5, 0);

lcd.clear (); }

leemte -lus () {

customKey = customKeypad.getKey ();

skakelaar (customKey) {

geval '0' … '9':

lcd.setCursor (0, 0);

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

lcd.print (eerste);

posit ++;

breek;

geval '+':

eerste = (totaal! = 0? totaal: eerste);

lcd.setCursor (posit, 0);

lcd.print ("+");

posit ++;

tweede = TweedeNommer ();

totaal = eerste + tweede;

lcd.setCursor (1, 1);

lcd.print (totaal);

eerste = 0, tweede = 0;

posit = 0;

breek;

geval '-':

eerste = (totaal! = 0? totaal: eerste);

lcd.setCursor (posit, 0);

lcd.print ("-");

posit ++;

tweede = TweedeNommer ();

totaal = eerste - tweede;

lcd.setCursor (1, 1);

lcd.print (totaal);

eerste = 0, tweede = 0;

posit = 0;

breek;

geval '*':

eerste = (totaal! = 0? totaal: eerste);

lcd.setCursor (posit, 0);

lcd.print ("*");

posit ++;

tweede = TweedeNommer ();

totaal = eerste * tweede;

lcd.setCursor (1, 1);

lcd.print (totaal);

eerste = 0, tweede = 0;

posit = 0;

breek;

geval '/':

eerste = (totaal! = 0? totaal: eerste);

lcd.setCursor (posit, 0);

lcd.print ("/");

posit ++;

tweede = TweedeNommer (); lcd.setCursor (1, 1);

tweede == 0? lcd.print ("Fout"): totaal = (float) eerste / (float) tweede;

lcd.print (totaal);

eerste = 0, tweede = 0;

posit = 0;

breek;

geval 'C':

totaal = 0;

eerste = 0;

tweede = 0;

posit = 0;

lcd.clear ();

breek; }

}

lang TweedeNommer () {

terwyl (1) {

customKey = customKeypad.getKey ();

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

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

lcd.setCursor (posit, 0);

lcd.print (tweede); }

as (customKey == 'C') {

totaal = 0;

eerste = 0;

tweede = 0;

posit = 0;

lcd.clear ();

breek; }

as (customKey == '=') {

lcd.setCursor (0, 1);

lcd.print ("=");

posit = totaal;

lcd.clear ();

lcd.setCursor (0, 1);

lcd.print ("=");

breek; }

}

keer tweede;}

Stap 8: Resultaat

Uitslag
Uitslag
Uitslag
Uitslag

Ek hoop dat julle almal hierdie leersame geniet het. Dankie dat u gelees het!

Saim.

Aanbeveel: