Innehållsförteckning:

Kalkylator TinkerCad -tävling: 8 steg
Kalkylator TinkerCad -tävling: 8 steg

Video: Kalkylator TinkerCad -tävling: 8 steg

Video: Kalkylator TinkerCad -tävling: 8 steg
Video: Tinkercad Урок №11 - Создание калькулятора при помощи Tinkercad на платформе Arduino #Tinkercad 2024, November
Anonim
Kalkylator TinkerCad -tävling
Kalkylator TinkerCad -tävling

Hej, så nyligen har jag undersökt hur man implementerar olika typer av kod i en krets. Jag fann att att göra en miniräknare skulle vara ett bra sätt att implementera "case" och andra former av kod som jag hade funnit intressant. Jag har tidigare gjort miniräknare direkt från kod, men att göra en krets för det gav mig intresse. Speciellt under den här karantänstiden där jag är på min dator nästan hela dagen. Projektet är att implementera matematiska operationer på en LCD -skärm.

Steg 1: Material

För krets:

  • LCD 16 x 2
  • Arduino Uno R3
  • Knappsats 4x4
  • Litet brödbräda
  • Potentiometer (250 kΩ)
  • Motstånd (1kΩ)
  • x26 Bygelkablar

Steg 2: Anslutning av 4x4 -knappsatsen

Anslutning av 4x4 -knappsatsen
Anslutning av 4x4 -knappsatsen

Anslut de fyra radstiften på knappsatsen 4x4 till Arduino-stiften 4-7 och anslut de fyra kolumnstiften till Arduino-stiften 0-3.

Steg 3: Ge ström till brödbrädan och anslut LCD

Ge ström till brödbrädan och anslut LCD
Ge ström till brödbrädan och anslut LCD

Jag använde en nätspänning på 5 för brödbrädan. Jag kopplade strömmen och marken till brödbrädan. LCD -skärmen placeras på brödbrädan och placeras så att alla dess stift blir anslutna till brödbrädet.

Steg 4: Anslut ström och jord till LCD -skärmen

Anslut ström och jord till LCD -skärmen
Anslut ström och jord till LCD -skärmen

Det kommer att finnas 3 stift jord för att anslutas till LCD -skärmen. En kommer att anslutas till marken själv i LCD -skärmen, en annan kommer att anslutas till LED: n på LCD -skärmen, och den sista kommer att anslutas till RW. LCD -skärmens och lysdiodens VCC kräver strömanslutning. Strömmen för lysdioden kräver dock ett motstånd som är anslutet i detta fall använde jag ett 1kΩ motstånd.

Steg 5: Anslutning av potentiometern

Anslutning av potentiometern
Anslutning av potentiometern

Anslut potentiometern till brödbrädan med 3 fria kolumner. Den kommer att ha 3 stift, kolumnen som innehåller terminal 1 -stiftet behöver jord ges till den. Kolumnen som innehåller terminal 2 -stiftet behöver ström till den. Sedan har torkaren en bygelkabel i kolumnen som ansluts till LCD -skärmen.

Steg 6: Anslutning av Arduino till LCD

Ansluter Arduino till LCD
Ansluter Arduino till LCD

Stift 8-13 på Arduino kommer att anslutas till LCD-skärmen. Pins 8-11 på Arduino kommer att ansluta till D8 (7-4) respektive. Därefter kommer pin 12 på Arduino att anslutas till Enable of LCD, och pin 13 på Arduino kommer att ansluta till LCD: ns register.

Steg 7: Implementera kod

Kod kommer att behövas för att använda matematiska operationer med knappsatsen och LCD -skärmen. Följande kommer att vara koden jag använde, men flera ändringar kan fortfarande implementeras för att göra den renare och bättre. Så lek gärna med det lite.

#inkludera #inkludera

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

lång först = 0;

lång sekund = 0;

dubbel summa = 0;

int posit = 0;

char customKey;

const byte RADER = 4;

const byte COLS = 4;

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

Tangentbord customKeypad = Tangentbord (makeKeymap (nycklar), rowPins, colPins, ROWS, COLS);

void setup () {

lcd.begin (16, 2);

lcd.setCursor (5, 0);

lcd.clear (); }

void loop () {

customKey = customKeypad.getKey ();

switch (customKey) {

fall '0' … '9':

lcd.setCursor (0, 0);

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

lcd.print (första);

posit ++;

ha sönder;

fall '+':

först = (totalt! = 0? totalt: första);

lcd.setCursor (posit, 0);

lcd.print ("+");

posit ++;

second = SecondNumber ();

totalt = första + andra;

lcd.setCursor (1, 1);

lcd.print (totalt);

först = 0, andra = 0;

posit = 0;

ha sönder;

fall '-':

först = (totalt! = 0? totalt: första);

lcd.setCursor (posit, 0);

lcd.print ("-");

posit ++;

second = SecondNumber ();

totalt = första - andra;

lcd.setCursor (1, 1);

lcd.print (totalt);

först = 0, andra = 0;

posit = 0;

ha sönder;

fall '*':

först = (totalt! = 0? totalt: första);

lcd.setCursor (posit, 0);

lcd.print ("*");

posit ++;

second = SecondNumber ();

totalt = första * andra;

lcd.setCursor (1, 1);

lcd.print (totalt);

först = 0, andra = 0;

posit = 0;

ha sönder;

fall '/':

först = (totalt! = 0? totalt: första);

lcd.setCursor (posit, 0);

lcd.print ("/");

posit ++;

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

andra == 0? lcd.print ("Fel"): total = (float) första / (float) andra;

lcd.print (totalt);

först = 0, andra = 0;

posit = 0;

ha sönder;

fall 'C':

totalt = 0;

först = 0;

andra = 0;

posit = 0;

lcd.clear ();

ha sönder; }

}

long SecondNumber () {

medan (1) {

customKey = customKeypad.getKey ();

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

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

lcd.setCursor (posit, 0);

lcd.print (andra); }

if (customKey == 'C') {

totalt = 0;

först = 0;

andra = 0;

posit = 0;

lcd.clear ();

ha sönder; }

if (customKey == '=') {

lcd.setCursor (0, 1);

lcd.print ("=");

posit = totalt;

lcd.clear ();

lcd.setCursor (0, 1);

lcd.print ("=");

ha sönder; }

}

återvänd tvåa;}

Steg 8: Resultat

Resultat
Resultat
Resultat
Resultat

Jag hoppas att ni alla tyckte om detta instruerbara. Tack för att du läste!

Saim.

Rekommenderad: