Mündəricat:

Kalkulyator TinkerCad Müsabiqəsi: 8 addım
Kalkulyator TinkerCad Müsabiqəsi: 8 addım

Video: Kalkulyator TinkerCad Müsabiqəsi: 8 addım

Video: Kalkulyator TinkerCad Müsabiqəsi: 8 addım
Video: Tinkercad Урок №11 - Создание калькулятора при помощи Tinkercad на платформе Arduino #Tinkercad 2024, Noyabr
Anonim
Kalkulyator TinkerCad Müsabiqəsi
Kalkulyator TinkerCad Müsabiqəsi

Hey, bu yaxınlarda fərqli bir kod növünü bir dövrə necə tətbiq edəcəyimi araşdırıram. Bir kalkulyatorun "case" və maraqlı tapdığım digər kod formalarını tətbiq etmək üçün əla bir yol olacağını gördüm. Keçmişdə kalkulyatorları düz koddan düzəltmişdim, amma bunun üçün bir dövrə düzəltmək mənə maraq verdi. Xüsusilə bütün gün kompüterimdə olduğum karantin dövründə. Layihə LCD ekranda riyazi əməliyyatları həyata keçirməkdir.

Addım 1: Materiallar

Dövrə üçün:

  • LCD 16x2
  • Arduino Uno R3
  • Klaviatura 4x4
  • Kiçik Breadboard
  • Potansiyometr (250 kΩ)
  • Rezistor (1kΩ)
  • x26 Jumper telləri

Addım 2: 4x4 Klaviaturaya qoşulun

4x4 klaviatura ilə əlaqə
4x4 klaviatura ilə əlaqə

4x4 klaviatura üzərindəki 4 sıra pinləri Arduino pinlərinə 4-7 və 4 sütunlu pinləri Arduino pinlərinə 0-3 bağlayın.

Addım 3: Breadboard -a Güc verin və LCD -yə qoşulun

Breadboard -a Güc verin və LCD -yə qoşulun
Breadboard -a Güc verin və LCD -yə qoşulun

Çörək taxtası üçün 5 güc gərginliyindən istifadə etdim. Gücü və zəmini çörək taxtasına bağladım. LCD çörək taxtasına yerləşdirilir və bütün pinləri çörək taxtasına bağlanacaq şəkildə yerləşdirilir.

Addım 4: Güc və Zəmini LCD -yə qoşun

Güc və Zəmini LCD -yə qoşun
Güc və Zəmini LCD -yə qoşun

LCD -yə qoşulmaq üçün 3 sancaq lazımdır. Biri yerə özündən asılı olaraq LCD -yə, digəri isə LCD -nin LED -ə, sonuncusu isə RW -yə qoşulacaq. LCD və LED -in VCC -nin bağlanması üçün güc tələb olunur. Ancaq LED -in gücünə 1 kΩ rezistor istifadə etdiyim halda bağlı bir rezistor lazım olacaq.

Addım 5: Potansiyometrin bağlanması

Potansiyometrin bağlanması
Potansiyometrin bağlanması

Potansiyometrini çörək taxtasına 3 pulsuz sütunla qoşun. 3 sancağa sahib olacaq, terminal 1 pinini ehtiva edən sütuna ona torpaq verilməlidir. Terminal 2 pinini ehtiva edən sütunun ona verilən gücə ehtiyacı olacaq. Sonra silecek sütununda LCD -nin VO -na qoşulan bir keçid teli olacaq.

Addım 6: Arduinonun LCD -yə qoşulması

Arduinonun LCD -yə qoşulması
Arduinonun LCD -yə qoşulması

Arduino-da 8-13 pinləri LCD-yə qoşulacaq. Arduino-dakı 8-11 pinləri müvafiq olaraq D8 (7-4) -ə qoşulacaq. Arduino -nun 12 -ci pinini LCD -nin aktivləşdirilməsi ilə, Arduino -nun 13 -cü pininin isə LCD -nin reyestrinə qoşulmasını təmin edəcək.

Addım 7: Kod tətbiq edin

Klaviatura və LCD ilə riyazi əməliyyatları istifadə etmək üçün kod lazım olacaq. Aşağıda istifadə etdiyim kod olacaq, amma daha təmiz və daha yaxşı hala gətirmək üçün bir çox dəyişikliklər edə bilərəm. Odur ki, onunla bir az oynamaqdan çekinmeyin.

#daxil edin #daxil edin

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

uzun ilk = 0;

uzun saniyə = 0;

ikiqat ümumi = 0;

int pozit = 0;

char customKey;

const bayt ROWS = 4;

const baytı COLS = 4;

char düymələri [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};

Klaviatura xüsusiKeypad = Klaviatura (makeKeymap (düymələr), rowPins, colPins, ROWS, COLS);

boş quraşdırma () {

lcd.begin (16, 2);

lcd.setCursor (5, 0);

lcd.clear (); }

boşluq döngəsi () {

customKey = customKeypad.getKey ();

keçid (xüsusi açar) {

hal '0'… '9':

lcd.setCursor (0, 0);

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

lcd.print (ilk);

pozitiv ++;

fasilə;

hal '+':

birinci = (cəmi! = 0? cəmi: birinci);

lcd.setCursor (mövqe, 0);

lcd.print ("+");

pozitiv ++;

ikinci = SecondNumber ();

cəmi = birinci + ikinci;

lcd.setCursor (1, 1);

lcd çap (cəmi);

ilk = 0, saniyə = 0;

pozit = 0;

fasilə;

hal '-':

ilk = (cəmi! = 0? cəmi: birinci);

lcd.setCursor (mövqe, 0);

lcd.print ("-");

pozitiv ++;

ikinci = SecondNumber ();

cəmi = birinci - ikinci;

lcd.setCursor (1, 1);

lcd çap (cəmi);

ilk = 0, saniyə = 0;

pozit = 0;

fasilə;

hal '*':

birinci = (cəmi! = 0? cəmi: birinci);

lcd.setCursor (mövqe, 0);

lcd.print ("*");

pozitiv ++;

ikinci = SecondNumber ();

cəmi = birinci * ikinci;

lcd.setCursor (1, 1);

lcd çap (cəmi);

ilk = 0, saniyə = 0;

pozit = 0;

fasilə;

hal '/':

ilk = (cəmi! = 0? cəmi: birinci);

lcd.setCursor (mövqe, 0);

lcd.print ("/");

pozitiv ++;

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

saniyə == 0? lcd.print ("Hata"): total = (float) birinci / (float) ikinci;

lcd çap (cəmi);

ilk = 0, saniyə = 0;

pozit = 0;

fasilə;

hal 'C':

cəmi = 0;

birinci = 0;

saniyə = 0;

pozit = 0;

lcd.clear ();

fasilə; }

}

uzun SecondNumber () {

isə (1) {

customKey = customKeypad.getKey ();

əgər (customKey> = '0' && customKey <= '9') {

saniyə = ikinci * 10 + (customKey - '0');

lcd.setCursor (mövqe, 0);

lcd çap (ikinci); }

əgər (customKey == 'C') {

cəmi = 0;

birinci = 0;

saniyə = 0;

pozit = 0;

lcd.clear ();

fasilə; }

əgər (customKey == '=') {

lcd.setCursor (0, 1);

lcd.print ("=");

pozit = ümumi;

lcd.clear ();

lcd.setCursor (0, 1);

lcd.print ("=");

fasilə; }

}

saniyə qayıt;}

Addım 8: Nəticə

Nəticə
Nəticə
Nəticə
Nəticə

Ümid edirəm hamınız bu dərsdən zövq aldınız. Oxuduğunuz üçün təşəkkür edirik!

Saim.

Tövsiyə: