Kalkulyator TinkerCad tanlovi: 8 qadam
Kalkulyator TinkerCad tanlovi: 8 qadam
Anonim
Kalkulyator TinkerCad tanlovi
Kalkulyator TinkerCad tanlovi

Hey, yaqinda men har xil turdagi kodlarni sxemaga qanday kiritishni o'rganyapman. Men kalkulyatorni yaratish "case" va men qiziq topgan boshqa kod turlarini amalga oshirishning ajoyib usuli bo'lishini aniqladim. Men ilgari kalkulyatorlarni to'g'ridan -to'g'ri koddan yasaganman, lekin buning uchun sxemani tuzish menga qiziqish uyg'otdi. Ayniqsa, karantin paytida, men deyarli kun bo'yi kompyuterimda bo'laman. Loyiha LCD displeyda matematik operatsiyalarni amalga oshirishdan iborat.

1 -qadam: materiallar

O'chirish uchun:

  • LCD displey 16 x 2
  • Arduino Uno R3
  • Klaviatura 4x4
  • Kichik non paneli
  • Potentsiometr (250 kΩ)
  • Qarshilik (1kΩ)
  • x26 o'tish simlari

2 -qadam: 4x4 klaviaturani ulash

4x4 klaviaturani ulash
4x4 klaviaturani ulash

4x4 klaviaturadagi 4 qatorli pinlarni Arduino 4-7 pinlariga va 4 ustunli pinlarni Arduino pinlariga 0-3 ga ulang.

3 -qadam: Elektron panelni quvvat bilan ta'minlang va LCD -ni ulang

Breadboard -ni quvvat bilan ta'minlang va LCD -ni ulang
Breadboard -ni quvvat bilan ta'minlang va LCD -ni ulang

Men non paneli uchun 5 kuch kuchlanishidan foydalandim. Men kuch va tuproqni non taxtasiga uladim. LCD displeyga joylashtirilgan va uning barcha pinlari taxtaga ulanishi uchun joylashtirilgan.

4 -qadam: Quvvat va topraklamani LCD -ga ulang

Quvvat va topraklamani LCD -ga ulang
Quvvat va topraklamani LCD -ga ulang

LCD -ga ulanish uchun 3 pinli tuproq kerak bo'ladi. Ulardan biri erga, LCD displeyga, ikkinchisi LCD displeyiga, ikkinchisi esa RW ga ulanadi. LCD va LED -ning VCC -ga ulanish uchun quvvat kerak bo'ladi. Biroq, LEDning quvvati rezistorga ulangan bo'lishi kerak, bu holda men 1kΩ rezistordan foydalanganman.

5 -qadam: Potansiyometrni ulash

Potentsiometrni ulash
Potentsiometrni ulash

Potansiyometrni non paneliga 3 ta bo'sh ustun bilan ulang. U 3 ta pinli bo'ladi, 1 -terminal terminali bo'lgan ustunga unga tuproq kerak bo'ladi. 2 -terminal terminali bo'lgan ustunga unga quvvat kerak bo'ladi. Keyin tozalagichning ustunida LCD VO ga ulanadigan o'tish kabeli bo'ladi.

6 -qadam: Arduino -ni LCD -ga ulash

Arduino -ni LCD -ga ulash
Arduino -ni LCD -ga ulash

Arduino-dagi 8-13-pinlar LCD-ga ulanadi. Arduino-dagi 8-11-pinlar mos ravishda D8 (7-4) ga ulanadi. Keyin Arduino -ning 12 -PIN -kodi LCD -ni yoqish bilan, Arduino -dagi 13 -pin esa LCD -registrga ulanadi.

7 -qadam: Kodni amalga oshirish

Matematik operatsiyalarni klaviatura va LCD yordamida ishlatish uchun kod kerak bo'ladi. Quyida men ishlatgan kod bo'ladi, lekin men uni yanada toza va yaxshiroq qilish uchun bir nechta o'zgarishlarni amalga oshirishim mumkin. Shunday qilib, u bilan biroz o'ynang.

#qo'shing #qo'shing

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

uzoq birinchi = 0;

uzoq soniya = 0;

ikki marta jami = 0;

int pozit = 0;

char customKey;

const bayt ROWS = 4;

const bayt COLS = 4;

char tugmalari [ROWS] [COLS] = {

{'1', '2', '3', '/'}, {'4', '5', '6', '*'}, {'7', '8', '9', '-'}, {'C', '0', '=', '+'}};

bayt rowPins [ROWS] = {7, 6, 5, 4};

bayt colPins [COLS] = {3, 2, 1, 0};

CustomKeypad klaviaturasi = Klaviatura (makeKeymap (tugmalar), rowPins, colPins, ROWS, COLS);

bo'sh o'rnatish () {

lcd.begin (16, 2);

lcd.setCursor (5, 0);

lcd.clear (); }

void loop () {

customKey = customKeypad.getKey ();

almashtirish (customKey) {

"0"… "9" holati:

lcd.setCursor (0, 0);

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

lcd.print (birinchi);

pozit ++;

tanaffus;

holat '+':

birinchi = (jami! = 0? jami: birinchi);

lcd.setCursor (pozitiv, 0);

lcd.print ("+");

pozit ++;

soniya = SecondNumber ();

jami = birinchi + ikkinchi;

lcd.setCursor (1, 1);

lcd.print (jami);

birinchi = 0, soniya = 0;

pozit = 0;

tanaffus;

holat '-':

birinchi = (jami! = 0? jami: birinchi);

lcd.setCursor (pozitiv, 0);

lcd.print ("-");

pozit ++;

soniya = SecondNumber ();

jami = birinchi - ikkinchi;

lcd.setCursor (1, 1);

lcd.print (jami);

birinchi = 0, soniya = 0;

pozit = 0;

tanaffus;

holat '*':

birinchi = (jami! = 0? jami: birinchi);

lcd.setCursor (pozitiv, 0);

lcd.print ("*");

pozitiv ++;

soniya = SecondNumber ();

jami = birinchi * soniya;

lcd.setCursor (1, 1);

lcd.print (jami);

birinchi = 0, soniya = 0;

pozit = 0;

tanaffus;

holat '/':

birinchi = (jami! = 0? jami: birinchi);

lcd.setCursor (pozitiv, 0);

lcd.print ("/");

pozit ++;

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

soniya == 0? lcd.print ("Xato"): jami = (suzuvchi) birinchi / (suzuvchi) soniya;

lcd.print (jami);

birinchi = 0, soniya = 0;

pozit = 0;

tanaffus;

"C" holati:

jami = 0;

birinchi = 0;

soniya = 0;

pozit = 0;

lcd.clear ();

tanaffus; }

}

uzun SecondNumber () {

vaqt (1) {

customKey = customKeypad.getKey ();

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

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

lcd.setCursor (pozitiv, 0);

lcd.print (ikkinchi); }

agar (customKey == 'C') {

jami = 0;

birinchi = 0;

soniya = 0;

pozit = 0;

lcd.clear ();

tanaffus; }

agar (customKey == '=') {

lcd.setCursor (0, 1);

lcd.print ("=");

pozit = jami;

lcd.clear ();

lcd.setCursor (0, 1);

lcd.print ("=");

tanaffus; }

}

sekundiga qaytish;}

8 -qadam: Natija

Natija
Natija
Natija
Natija

Umid qilamanki, barchangizga bu ko'rsatma yoqdi. O'qiganingiz uchun tashakkur!

Saim.