Mündəricat:
- Addım 1: Lazım olan şeylər
- Addım 2: Dövrə Şeması
- Addım 3: Arduino Kalkulyator Proqramı
- Addım 4:
- Addım 5: Arduino Kalkulyatorunun işləməsi
- Addım 6: Kod
Video: Arduino Kalkulyator: 6 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:46
Proqramlaşdırma həmişə əyləncəlidir və Arduino, quraşdırılmış proqramlaşdırmaya yeni başlamısınızsa, gözəl bir platformadır. Bu təlimatda Arduino ilə öz kalkulyatorumuzu quracağıq. Dəyərlər klaviatura (4 × 4 klaviatura) vasitəsilə göndərilə bilər və nəticəni LCD ekranda (16 × 2 Dot-matrix) görmək olar. Bu kalkulyator tam ədədlərlə Əlavə, Çıxarma, Çarpma və Bölmə kimi sadə əməliyyatları yerinə yetirə bilər. Ancaq konsepsiyanı başa düşdükdən sonra hətta Arduino -nun qurulmuş funksiyaları ilə hətta elmi funksiyaları da həyata keçirə bilərsiniz. Bu layihənin sonunda Arduino ilə 16x2 LCD və Klaviatura istifadə etməyi və onlar üçün proqramlaşdırmanın nə qədər asan olduğunu biləcəksiniz. mövcud kitabxanalar. Xüsusi bir işi yerinə yetirmək üçün Arduino -nu necə proqramlaşdıracağınızı da başa düşəcəksiniz.
Addım 1: Lazım olan şeylər
Arduino Uno (İstənilən versiya işləyəcək) 16 × 2 LCD Ekran 4 × 4 Klaviatura 9V Batareya Çörək paneli və Bağlayıcı tellər
Addım 2: Dövrə Şeması
Addım 3: Arduino Kalkulyator Proqramı
Bu layihə üçün tam Arduino proqramı bu layihənin sonunda verilmişdir. Kod kiçik mənalı hissələrə bölünmüş və aşağıda izah edilmişdir. Daha əvvəl dediyimiz kimi kitabxanalardan istifadə edərək Arduino ilə bir LCD və klaviatura ilə əlaqə quracağıq. Onları əvvəlcə Arduino IDE -yə əlavə edək. LCD üçün kitabxana artıq standart olaraq Arduino -ya daxildir, buna görə narahat olmağımıza ehtiyac yoxdur. Klaviatura kitabxanası üçün Github -dan yükləmək üçün linki vurun. Bir ZIP faylı alacaqsınız, sonra bu libi Arketino ilə Sketch -> Kitabxanaya daxil edin ->. ZIP faylını əlavə edin və bu yüklənmiş faylın yerini göstərin. Bitirdikdən sonra hamımız proqramlaşdırmağa hazırıq. Klaviatura istifadə etmək üçün bir kitabxana istifadə etsək də, Arduino klaviaturası haqqında bir neçə detalı (aşağıda göstərilmişdir) qeyd etməliyik. Dəyişən ROWS və COLS, klaviaturamızda neçə satır və sütunun olduğunu söyləyəcək və klaviatura düymələrinin klaviaturada yerləşmə qaydasını göstərir. Bu proyektdə istifadə etdiyim klaviatura, əsas xəritədə də belə görünür. Aşağıda, KeyPadin sıra pinləri ilə əlaqəli olan pinProses və colPins.const bayt ROWS = 4; // Dörd satır konst bayt COLS = 4; // Üç sütun // Keymapchar düymələrini təyin edin [ROWS] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', ' B '}, {' 7 ',' 8 ',' 9 ',' C '}, {'*',' 0 ','#',' D '}}; bayt sıraPins [ROWS] = {0, 1, 2, 3}; // Klaviatura ROW0, ROW1, ROW2 və ROW3 -ü bu Arduino pinlərinə qoşun.byte colPins [COLS] = {4, 5, 6, 7}; // Klaviatura COL0, COL1 və COL2 -ni bu Arduino pinlərinə qoşun. Hansı növ klaviaturadan istifadə etdiyimizi və necə bağlandığını qeyd etdikdən sonra aşağıdakı sətirdən istifadə edərək klaviaturanı yarada bilərik Keypad kpd = Keypad (makeKeymap (düymələr)), rowPins, colPins, ROWS, COLS); // Klaviatura yaradınBənzər şəkildə, LCD -nin Arduinonun hansı sancaqlarına bağlı olduğunu da söyləməliyik. Dövrə diaqramımıza görə təriflər int rs = 8, en = 9, d4 = 10, d5 = 11, d6 = 12, d7 = 13 kimi olardı. // LCD -nin bağlı olduğu pinlərLiquidCrystal lcd (rs, en, d4, d5, d6, d7); // LCD yaradın Quraşdırma funksiyasının içərisində biz sadəcə layihənin adını göstəririk və sonra əsas layihənin yerləşdiyi döngəyə davam edirik. Əsasən klaviaturada nəsə yazılıb yazılmadığını yoxlamalıyıq. nə yazılır və "=" düyməsinə basıldıqda onu dəyişənə çeviririk, nəticəni hesablamalı və nəhayət LCD -də göstərməliyik. Aşağıdakı düymə = kpd.getKey (); // basılan düymə dəyərini bir şerifdə saxlamaq (açar! = NO_KEY) DetectButtons (); if (nəticə == doğru) CalculateResult (); DisplayResult (); Hər bir funksiyanın içərisində baş verənlər şərh sətirləri ilə izah olunur, aşağıdakı tam kodu keçin və əslində necə işlədiyini başa düşmək üçün onunla birlikdə fırladın. Xüsusi bir xətt haqqında hər hansı bir şübhəniz varsa, şərh bölməsindən və ya forumlardan istifadə etməkdən çekinmeyin.
Addım 4:
Addım 5: Arduino Kalkulyatorunun işləməsi
Bağlantıları dövrə diaqramına uyğun olaraq qurun və aşağıdakı kodu yükləyin. Səhv göstərərsə, yuxarıda göstərilən təlimata uyğun olaraq kitabxananı əlavə etdiyinizə əmin olun. Problemin donanımınızda olub olmadığını yoxlamaq üçün simulyasiyanı da sınaya bilərsiniz. Hər şey olduğu kimi edildiyi təqdirdə, cihazınız bu şəkildə görünən LCD ilə belə bir şeyə bənzəyəcək Arduino Kalkulyatoru 4x4 Klaviatura istifadə edərkən Burada istifadə olunan klaviatura üzərində düzgün işarələr olmadığından Əlifbaları operator olaraq qəbul etmişəm. aşağıda listelenen Klaviaturada Xarakter "A" Əlavə (+) "B" Çıxarma (-) "C" Çarpma (*) "D" Bölmə (/) "*" Təmiz (C) "#" Bərabərdir (=) hər bir düymənin əslində nəyi təmsil etdiyini yazmaq üçün markerdən istifadə edin. Bunu etdikdən sonra birbaşa kalkulyatordan istifadə etməyə başlaya bilərsiniz. Nömrəni yazın və ikinci sətirdə görünəcək operand düyməsini basın və ikinci nömrənizi yazın, nəticəni əldə etmək üçün "#" düyməsini basın. Bu Touchscreen əsaslı Arduino kalkulyatorunu da qurmağa cəhd edə bilərsiniz.
Addım 6: Kod
/ * * Arduino Keypad kalkulyator proqramı */#daxildir // https://www.arduino.cc/en/Reference/LiquidCrystal#include -dən LCD üçün başlıq faylı // https://github.com/ saytından Klaviatura üçün başlıq faylı. Chris-A/Keypadconst bayt ROWS = 4; // Dörd satır konst bayt COLS = 4; // Üç sütun // Keymapchar düymələrini təyin edin [ROWS] [COLS] = {{'7', '8', '9', 'D'}, {'4', '5', '6', ' C '}, {' 1 ',' 2 ',' 3 ',' B '}, {'*',' 0 ','#',' A '}}; bayt sıraPins [ROWS] = {0, 1, 2, 3}; // Klaviatura ROW0, ROW1, ROW2 və ROW3 -ü bu Arduino pinlərinə qoşun.byte colPins [COLS] = {4, 5, 6, 7}; // Klaviatura COL0, COL1 və COL2 -ni bu Arduino pinlərinə qoşun. Keypad kpd = Klaviatura (makeKeymap (düymələr), rowPins, colPins, ROWS, COLS); // Keypadconst yaradın int rs = 8, en = 9, d4 = 10, d5 = 11, d6 = 12, d7 = 13; // LCD -nin bağlı olduğu pinlərLiquidCrystal lcd (rs, en, d4, d5, d6, d7); uzun Num1, Num2, Number; char açarı, hərəkət; boolean nəticə = yalan; void setup () {lcd.begin (16, 2); // 16*2 LCD lcd.print ("DIY Kalkulyator") istifadə edirik; // Giriş mesajını göstərin lcd.setCursor (0, 1); // imleci 0 sütunu, sətir 1 lcd.print ("-CircuitDigest") olaraq təyin edin; // Giriş mesajının gecikməsini göstərin (2000); // Məlumatın göstərilməsini gözləyin lcd.clear (); // Sonra təmizləyin} void loop () {key = kpd.getKey (); // basılan düymə dəyərini bir şerifdə saxlamaq (açar! = NO_KEY) DetectButtons (); if (nəticə == doğru) CalculateResult (); DisplayResult (); } vahid DetectButtons () {lcd.clear (); // Sonra təmizləyin, əgər (key == '*') // Ləğv et düyməsinə basılırsa {Serial.println ("Button Cancel"); Sayı = Sayı1 = Nüm2 = 0; result = false;} if (key == '1') // Əgər Button 1 -ə basılırsa {Serial.println ("Button 1"); əgər (Sayı == 0) Sayı = 1; başqa Sayı = (Sayı*10) + 1; // iki dəfə basıldı} if (key == '4') // Əgər Button 4 -ə basılırsa {Serial.println ("Button 4"); əgər (Sayı == 0) Sayı = 4; başqa Sayı = (Sayı*10) + 4; // iki dəfə basıldı} if (key == '7') // Əgər 7 -ci Düymə basılarsa {Serial.println ("Button 7"); əgər (Sayı == 0) Sayı = 7; başqa Sayı = (Sayı*10) + 7; // iki dəfə basıldı} if (key == '0') {Serial.println ("Button 0"); // 0 sayı düyməsinə basılır, əgər (Sayı == 0) Sayı = 0; başqa Sayı = (Sayı*10) + 0; // iki dəfə basıldığında} if (key == '2') // Button 2 Basıldığında {Serial.println ("Button 2"); əgər (Sayı == 0) Sayı = 2; başqa Sayı = (Sayı*10) + 2; // iki dəfə basıldı} if (key == '5') {Serial.println ("Button 5"); əgər (Sayı == 0) Sayı = 5; başqa Sayı = (Sayı*10) + 5; // iki dəfə basıldı} if (key == '8') {Serial.println ("Button 8"); əgər (Sayı == 0) Sayı = 8; başqa Sayı = (Sayı*10) + 8; // iki dəfə basıldı} if (key == '#') {Serial.println ("Button Equal"); Num2 = Sayı; nəticə = doğru; } if (key == '3') {Serial.println ("Button 3"); əgər (Sayı == 0) Sayı = 3; başqa Sayı = (Sayı*10) + 3; // iki dəfə basıldı} if (key == '6') {Serial.println ("Button 6"); əgər (Sayı == 0) Sayı = 6; başqa Sayı = (Sayı*10) + 6; // iki dəfə basıldı} if (key == '9') {Serial.println ("Button 9"); əgər (Sayı == 0) Sayı = 9; başqa Sayı = (Sayı*10) + 9; // iki dəfə basıldığında} if (key == 'A' || key == 'B' || key == 'C' || key == 'D') // Sütun 4 -də Düymələrin Algılanması {Num1 = Sayı; Sayı = 0; if (key == 'A') {Serial.println ("Əlavə"); hərəkət = '+';} if (key == 'B') {Serial.println ("Çıkarma"); hərəkət = '-'; } if (key == 'C') {Serial.println ("Çarpma"); hərəkət = '*';} if (key == 'D') {Serial.println ("Devesion"); hərəkət = '/';} gecikmə (100); }} etibarsız CalculateResult () {if (action == '+') Number = Num1+Num2; if (action == '-') Number = Num1-Num2; if (action == '*') Number = Num1*Num2; if (action == '/') Number = Num1/Num2; } void DisplayResult () {lcd.setCursor (0, 0); // imleci 0 sütunu, sətir 1 lcd.print (Num1) olaraq təyin edin; lcd.print (hərəkət); lcd.print (Num2); əgər (nəticə == doğru) {lcd.print ("="); lcd.print (Sayı);} // Nəticəni göstər lcd.setCursor (0, 1); // imleci 0 sütun, sətir 1 lcd.print (sayı) olaraq təyin edin; // Nəticəni göstərin}
Tövsiyə:
Nextion/Arduino Kalkulyator: 3 addım
Nextion/Arduino Kalkulyator: Arduino Uno üçün faydalı bir kalkulyator. Kalkulyator, üslub baxımından Windows 10 ilə gələn standart kalkulyatora bənzəyir. Qeyd: Windows 10 kalkulyatorunun etdiyi elmi və proqramçı funksiyalarını ehtiva etmir, lakin bu funksiyalar
Arduino Uno ilə HP-35 Elmi Kalkulyator Emulyatoru: 4 addım
Arduino Uno ilə HP-35 Elmi Kalkulyator Emulyatoru: Bu layihənin məqsədi TFTLCD və Dokunmatik Ekrana bənzər bir Arduino Uno-da https://www.hpmuseum.org/simulate/hp35sim/hp35sim…. aşağıdakı simulyatoru işə salmaqdır. orijinal HP-35 Elmi Kalkulyator. Saxlanılan orijinal kodu təqlid edir
Arduino Touchscreen Kalkulyator: 7 addım
Arduino Touchscreen Kalkulyator: Salam! Bu, Arduino Uno və TFT LCD qalxanı istifadə edərək toxunma ekranlı bir kalkulyator hazırlamaq layihəsidir. Ev məktəbi proqramlaşdırma sinifimin konsepsiyasını ortaya qoydum və bu layihənin qurulması təcrübəsi çox maraqlı idi. Bu kalkulyator
LED Çıxışlı Arduino Kalkulyator: 5 addım
LED Çıxışlı Arduino Kalkulyatoru: Hey uşaqlar! Serial monitor giriş və çıxışının necə istifadə olunacağını öyrənmək istəyirsiniz. Yaxşı, burada bunu necə edəcəyinizə dair mükəmməl bir təlimatınız var! Bu təlimatda Arduino serial m -dən istifadə edərək bir kalkulyator yaratmaq üçün lazım olan sadə addımları sizə göstərəcəyəm
Arduino istifadə edərək Qrafik Kalkulyator: 7 addım
Arduino istifadə edərək Qrafik Kalkulyator: Salam dostlar, bu gün sizə göstərmək üçün yeni bir şeyim var. Başlıqda daha əvvəl qeyd edildiyi kimi, Arduino uno və 2.4 " TFT Lcd Ekran Qalxanı