Inhoudsopgave:

Rekenmachine TinkerCad-wedstrijd - Ajarnpa
Rekenmachine TinkerCad-wedstrijd - Ajarnpa

Video: Rekenmachine TinkerCad-wedstrijd - Ajarnpa

Video: Rekenmachine TinkerCad-wedstrijd - Ajarnpa
Video: Arduino expert tutorial : MATH GAME (KAEDU+KA06+NIBBLE) 2024, November
Anonim
Rekenmachine TinkerCad-wedstrijd
Rekenmachine TinkerCad-wedstrijd

Hé, onlangs heb ik onderzocht hoe ik verschillende soorten code in een circuit kan implementeren. Ik ontdekte dat het maken van een rekenmachine een geweldige manier zou zijn om "case" en andere vormen van code te implementeren die ik interessant had gevonden. Ik heb in het verleden rekenmachines rechtstreeks uit code gemaakt, maar het maken van een circuit ervoor gaf me interesse. Zeker in deze tijd van quarantaine waar ik bijna de hele dag achter mijn computer zit. Het project is om wiskundige bewerkingen op een LCD-scherm te implementeren.

Stap 1: Materialen

Voor circuit:

  • LCD-scherm 16 x 2
  • Arduino Uno R3
  • Toetsenbord 4x4
  • Kleine Broodplank
  • Potentiometer (250 kΩ)
  • Weerstand (1kΩ)
  • x26 Jumper draden

Stap 2: Het 4x4-toetsenbord aansluiten

Het 4x4-toetsenbord aansluiten
Het 4x4-toetsenbord aansluiten

Verbind de 4 rij-pinnen op het 4x4-toetsenbord met de Arduino-pinnen 4-7 en verbind de 4 kolompinnen met de Arduino-pinnen 0-3.

Stap 3: Voorzie het breadboard van stroom en sluit het LCD-scherm aan

Voorzie het breadboard van stroom en sluit het LCD-scherm aan
Voorzie het breadboard van stroom en sluit het LCD-scherm aan

Ik gebruikte een voedingsspanning van 5 voor het breadboard. Ik heb de stroom en aarde aangesloten op het breadboard. Het LCD-scherm wordt op het breadboard geplaatst en zo geplaatst dat alle pinnen op het breadboard worden aangesloten.

Stap 4: Sluit de voeding en aarde aan op het LCD-scherm

Sluit de voeding en aarde aan op het LCD-scherm
Sluit de voeding en aarde aan op het LCD-scherm

Er zijn 3 pinnen van aarde nodig om op het LCD-scherm te worden aangesloten. Een zal worden aangesloten op de aarde zelf van de LCD, een andere zal worden aangesloten op de LED van de LCD en de laatste zal worden aangesloten op de RW. De VCC van het LCD-scherm en de led hebben stroom nodig om te worden aangesloten. De stroom voor de LED vereist echter een aangesloten weerstand. In dit geval heb ik een weerstand van 1 kΩ gebruikt.

Stap 5: De potentiometer aansluiten

De potentiometer aansluiten
De potentiometer aansluiten

Sluit de potentiometer aan op het breadboard met 3 vrije kolommen. Het zal 3 pinnen hebben, de kolom die de 1 pin van terminal bevat, moet aarde worden gegeven. De kolom die de pin van terminal 2 bevat, heeft stroom nodig. Dan heeft de wisser een jumperdraad in de kolom die wordt aangesloten op VO van het LCD-scherm.

Stap 6: De Arduino aansluiten op het LCD-scherm

De Arduino aansluiten op het LCD-scherm
De Arduino aansluiten op het LCD-scherm

Pins 8-13 op de Arduino worden verbonden met het LCD-scherm. Pins 8-11 op de Arduino zullen respectievelijk verbinding maken met D8 (7-4). Dan maakt pin 12 van de Arduino verbinding met de Enable van het LCD-scherm, en pin 13 op de Arduino maakt verbinding met het register van het LCD-scherm.

Stap 7: Code implementeren

Er is een code nodig om wiskundige bewerkingen uit te voeren met het toetsenbord en het LCD-scherm. Het volgende is de code die ik heb gebruikt, maar er kunnen nog steeds meerdere wijzigingen worden doorgevoerd om het schoner en beter te maken. Dus speel er gerust een beetje mee.

#include #include

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

lange eerste = 0;

lange seconde = 0;

dubbel totaal = 0;

int-positie = 0;

teken customKey;

const byte RIJEN = 4;

constbyte COLS = 4;

char-toetsen [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 (toetsen), rowPins, colPins, RIJEN, COLS);

ongeldige setup(){

lcd.begin (16, 2);

lcd.setCursor (5, 0);

lcd.wissen(); }

lege lus() {

customKey = customKeypad.getKey();

schakelaar (aangepaste sleutel) {

geval '0' … '9':

lcd.setCursor(0, 0);

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

lcd.print(eerste);

posit++;

pauze;

geval '+':

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

lcd.setCursor(posit, 0);

lcd.print("+");

posit++;

tweede = SecondNumber();

totaal = eerste + tweede;

lcd.setCursor(1, 1);

lcd.print (totaal);

eerste = 0, seconde = 0;

posit=0;

pauze;

geval '-':

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

lcd.setCursor(posit, 0);

lcd.print("-");

posit++;

tweede = SecondNumber();

totaal = eerste - tweede;

lcd.setCursor(1, 1);

lcd.print (totaal);

eerste = 0, seconde = 0;

posit=0;

pauze;

geval '*':

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

lcd.setCursor(posit, 0);

lcd.print("*");

posit++;

tweede = SecondNumber();

totaal = eerste * tweede;

lcd.setCursor(1, 1);

lcd.print (totaal);

eerste = 0, seconde = 0;

posit=0;

pauze;

geval '/':

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

lcd.setCursor(posit, 0);

lcd.print("/");

posit++;

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

seconde == 0 ? lcd.print("Fout"): totaal = (float)first / (float)second;

lcd.print (totaal);

eerste = 0, seconde = 0;

posit=0;

pauze;

geval 'C':

totaal = 0;

eerste = 0;

seconde = 0;

poneren = 0;

lcd.wissen();

pauze; }

}

lang SecondNumber() {

terwijl(1) {

customKey = customKeypad.getKey();

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

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

lcd.setCursor(posit, 0);

lcd.print (tweede); }

if(customKey == 'C') {

totaal = 0;

eerste = 0;

seconde = 0;

poneren = 0;

lcd.wissen();

pauze; }

if(customKey == '='){

lcd.setCursor(0, 1);

lcd.print("=");

poneren = totaal;

lcd.wissen();

lcd.setCursor(0, 1);

lcd.print("=");

pauze; }

}

keer terug;}

Stap 8: Resultaat

Resultaat
Resultaat
Resultaat
Resultaat

Ik hoop dat jullie allemaal genoten hebben van deze instructable. Bedankt voor het lezen!

Saim.

Aanbevolen: