Talaan ng mga Nilalaman:

Calculator TinkerCad Contest: 8 Hakbang
Calculator TinkerCad Contest: 8 Hakbang

Video: Calculator TinkerCad Contest: 8 Hakbang

Video: Calculator TinkerCad Contest: 8 Hakbang
Video: Arduino Calculator using Keypad and LCD - Tinkercad Calculator using 4x4 Keypad and LCD 2024, Nobyembre
Anonim
Calculator TinkerCad Contest
Calculator TinkerCad Contest

Hey, kaya kamakailan lamang ay pagtuklas ko kung paano ipatupad ang iba't ibang mga uri ng code sa isang circuit. Nalaman ko na ang paggawa ng isang calculator ay magiging isang mahusay na paraan upang ipatupad ang "kaso" at iba pang mga form ng code na nakita kong kawili-wili. Mayroon akong nakaraang mga calculator na diretso mula sa code, ngunit ang paggawa ng isang circuit para dito ay nagbigay sa akin ng interes. Lalo na sa oras na ito ng kuwarentenas kung nasaan ako sa aking computer halos buong araw. Ang proyekto ay upang ipatupad ang mga pagpapatakbo ng matematika sa isang LCD screen.

Hakbang 1: Mga Kagamitan

Para sa Circuit:

  • LCD 16 x 2
  • Arduino Uno R3
  • Keypad 4x4
  • Maliit na Breadboard
  • Potensyomiter (250 kΩ)
  • Resistor (1kΩ)
  • x26 Mga wire ng Jumper

Hakbang 2: Pagkonekta sa 4x4 Keypad

Pagkonekta sa 4x4 Keypad
Pagkonekta sa 4x4 Keypad

Ikonekta ang 4 na mga row pin sa 4x4 keypad sa Arduino pin 4-7, at ikonekta ang 4 na mga pin ng haligi sa mga pin ng Arduino 0-3.

Hakbang 3: Magbigay ng Lakas sa Breadboard at Ikonekta ang LCD

Magbigay ng Lakas sa Breadboard at Connect LCD
Magbigay ng Lakas sa Breadboard at Connect LCD

Gumamit ako ng boltahe ng kuryente na 5 para sa breadboard. Ikinonekta ko ang lakas at lupa sa breadboard. Ang LCD ay nakalagay sa breadboard, at inilagay sa gayon ang lahat ng mga pin nito ay nakakakonekta sa breadboard.

Hakbang 4: Ikonekta ang Lakas at Ground sa LCD

Ikonekta ang Power at Ground sa LCD
Ikonekta ang Power at Ground sa LCD

Magkakaroon ng 3 mga pin ng lupa na kinakailangan upang maiugnay sa LCD. Ang isa ay makokonekta sa lupa sa sarili nitong LCD, ang isa pa ay makakonekta sa LED ng LCD, at ang huli ay makakonekta sa RW. Ang VCC ng LCD at nangunguna ay mangangailangan ng lakas upang maiugnay. Gayunpaman ang kapangyarihan para sa LED ay mangangailangan ng isang risistor na konektado sa kasong ito Gumamit ako ng isang 1kΩ risistor.

Hakbang 5: Pagkonekta sa Potentiometer

Pagkonekta sa Potentiometer
Pagkonekta sa Potentiometer

Ikonekta ang potensyomiter sa breadboard na may 3 mga libreng haligi. Magkakaroon ito ng 3 mga pin, ang haligi na naglalaman ng terminal na 1 pin ay mangangailangan ng lupa na ibinigay dito. Ang haligi na naglalaman ng terminal 2 pin ay mangangailangan ng lakas na ibinigay dito. Pagkatapos ang wiper ay magkakaroon ng jumper wire sa haligi nito na kumokonekta sa VO ng LCD.

Hakbang 6: Pagkonekta sa Arduino sa LCD

Pagkonekta sa Arduino sa LCD
Pagkonekta sa Arduino sa LCD

Ang mga pin na 8-13 sa Arduino ay makakonekta sa LCD. Ang mga pin na 8-11 sa Arduino ay kumokonekta sa D8 (7-4) ayon sa pagkakabanggit. Pagkatapos ang pin 12 ng Arduino ay makakonekta sa Paganahin ang LCD, at ang pin 13 sa Arduino ay kumokonekta sa rehistro ng LCD.

Hakbang 7: Ipatupad ang Code

Kakailanganin ang code upang magamit ang mga pagpapatakbo ng matematika gamit ang keypad at LCD. Ang sumusunod ay ang code na ginamit ko, subalit ang maramihang mga pagbabago ay maaari pa rin akong ipatupad upang gawing mas malinis at mas mahusay ito. Kaya huwag mag-atubiling maglaro dito nang kaunti.

# isama ang # isama

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

mahaba muna = 0;

mahabang segundo = 0;

doble na kabuuan = 0;

int posit = 0;

char pasadyaKey;

const byte ROWS = 4;

const byte COLS = 4;

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

Keypad customKeypad = Keypad (makeKeymap (key), rowPins, colPins, ROWS, COLS);

walang bisa ang pag-setup () {

lcd.begin (16, 2);

lcd.setCursor (5, 0);

lcd.clear (); }

void loop () {

pasadyaKey = pasadyaKeypad.getKey ();

lumipat (customKey) {

case '0'… '9':

lcd.setCursor (0, 0);

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

lcd.print (una);

posit ++;

pahinga;

kaso '+':

una = (kabuuan! = 0? kabuuan: una);

lcd.setCursor (posit, 0);

lcd.print ("+");

posit ++;

pangalawa = PangalawaBilang ();

kabuuan = una + segundo;

lcd.setCursor (1, 1);

lcd.print (kabuuang);

una = 0, pangalawa = 0;

posit = 0;

pahinga;

kaso '-':

una = (kabuuan! = 0? kabuuan: una);

lcd.setCursor (posit, 0);

lcd.print ("-");

posit ++;

pangalawa = PangalawaBilang ();

kabuuan = una - pangalawa;

lcd.setCursor (1, 1);

lcd.print (kabuuang);

una = 0, pangalawa = 0;

posit = 0;

pahinga;

kaso '*':

una = (kabuuan! = 0? kabuuan: una);

lcd.setCursor (posit, 0);

lcd.print ("*");

posit ++;

pangalawa = PangalawaBilang ();

kabuuan = una * segundo;

lcd.setCursor (1, 1);

lcd.print (kabuuang);

una = 0, pangalawa = 0;

posit = 0;

pahinga;

kaso '/':

una = (kabuuan! = 0? kabuuan: una);

lcd.setCursor (posit, 0);

lcd.print ("/");

posit ++;

pangalawa = PangalawaBilang (); lcd.setCursor (1, 1);

pangalawa == 0? lcd.print ("Error"): total = (float) muna / (float) pangalawa;

lcd.print (kabuuang);

una = 0, pangalawa = 0;

posit = 0;

pahinga;

kaso 'C':

kabuuan = 0;

una = 0;

pangalawa = 0;

posit = 0;

lcd.clear ();

pahinga; }

}

mahabang SecondNumber () {

habang (1) {

pasadyaKey = pasadyaKeypad.getKey ();

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

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

lcd.setCursor (posit, 0);

lcd.print (pangalawa); }

kung (customKey == 'C') {

kabuuan = 0;

una = 0;

pangalawa = 0;

posit = 0;

lcd.clear ();

pahinga; }

kung (customKey == '=') {

lcd.setCursor (0, 1);

lcd.print ("=");

posit = kabuuan;

lcd.clear ();

lcd.setCursor (0, 1);

lcd.print ("=");

pahinga; }

}

ibalik ang pangalawa;}

Hakbang 8: Resulta

Resulta
Resulta
Resulta
Resulta

Inaasahan kong nasiyahan kayong lahat sa pagtuturo na ito. Salamat sa pagbabasa!

Saim.

Inirerekumendang: