Mundarija:
- 1 -qadam: Kerakli narsalar
- 2 -qadam: O'chirish diagrammasi
- 3 -qadam: Arduino kalkulyatori dasturi
- 4 -qadam:
- 5 -qadam: Arduino kalkulyatorining ishlashi
- 6 -qadam: kod
Video: Arduino kalkulyatori: 6 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:26
Dasturlash har doim qiziqarli va Arduino - bu ajoyib dastur, agar siz ko'milgan dasturlashni boshlayotgan bo'lsangiz. Ushbu qo'llanmada biz Arduino bilan o'z kalkulyatorimizni yaratamiz. Qiymatlar klaviatura (4 × 4 klaviatura) orqali yuborilishi mumkin va natijani LCD displeyda ko'rish mumkin (16 × 2 nuqta matritsasi). Bu kalkulyator qo'shish, ayirish, ko'paytirish va bo'linish kabi oddiy amallarni bajarishi mumkin. Agar siz kontseptsiyani tushunsangiz, Arduino -ning o'rnatilgan funktsiyalari yordamida hatto ilmiy funktsiyalarni ham amalga oshirishingiz mumkin, bu loyihaning oxirida siz Arduino bilan 16x2 o'lchamli LCD va klaviaturani qanday ishlatishni, shuningdek, ularni dastur yordamida osonlikcha dasturlash mumkinligini bilib olasiz. mavjud kutubxonalar. Shuningdek, siz Arduino -ni ma'lum bir vazifani bajarish uchun qanday dasturlashni tushunasiz.
1 -qadam: Kerakli narsalar
Arduino Uno (har qanday versiya ishlaydi) 16 × 2 LCD displey 4 × 4 klaviatura 9V batareya Non paneli va ulash simlari
2 -qadam: O'chirish diagrammasi
3 -qadam: Arduino kalkulyatori dasturi
Ushbu loyihaning to'liq Arduino dasturi loyihaning oxirida berilgan. Yuqorida aytib o'tilganidek, biz kutubxonalar yordamida Arduino bilan LCD va klaviatura interfeysiga o'tamiz. Keling, avval ularni Arduino IDE -ga qo'shamiz. LCD kutubxona sukut bo'yicha Arduino -ga kiritilgan, shuning uchun biz bu haqda tashvishlanmasligimiz kerak. Klaviatura kutubxonasi uchun Github -dan yuklab olish uchun havolani bosing. Siz ZIP faylini olasiz, so'ngra bu liboni Arduino by Sketch -> Kutubxonani qo'shish ->. ZIP faylini qo'shish va yuklangan faylga manzilini ko'rsatish. Kutubxonani klaviatura yordamida ishlatgan bo'lsak ham, biz Arduino klaviaturasi haqida bir nechta tafsilotlarni (quyida ko'rsatilgan) eslatib o'tamiz. ROWS va COLS o'zgaruvchilari bizning klaviaturamizda qancha satr va ustun borligini bildiradi va klaviatura xaritasi klaviaturada tugmalar mavjud bo'lish tartibini ko'rsatadi. Men bu loyihada ishlatayotgan klaviatura, xuddi shunday, xaritaning asosiy xaritasida ham xuddi shunday ko'rinadi. Keyingi satrda satrlar va colPins.const baytlari ROWS = 4 o'zgaruvchilari yordamida klaviatura qaysi pinlarga ulanganligi haqida quyida aytib o'tdik. // To'rt qatorli bayt COLS = 4; // Uchta ustun // Klaviatura tugmachalarini belgilang [ROWS] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', ' B '}, {' 7 ',' 8 ',' 9 ',' C '}, {'*',' 0 ','#',' D '}}; bayt qatorlari [ROWS] = {0, 1, 2, 3}; // ROW0, ROW1, ROW2 va ROW3 klaviaturasini ushbu Arduino pinlariga ulang.byte colPins [COLS] = {4, 5, 6, 7}; // COL0, COL1 va COL2 klaviaturasini ushbu Arduino pinlariga ulang, biz qanday klaviatura turini ishlatayotganimizni va u qanday ulanganligini aytib o'tganimizdan so'ng, biz quyidagi ma'lumotlarni ishlatib, klaviaturani yaratishimiz mumkin Keypad kpd = Klaviatura (makeKeymap (tugmalar)), rowPins, colPins, ROWS, COLS); // Klaviaturani yarating Xuddi shunday, biz LCD displey Arduino -ning qaysi pinlariga ulanganligini ham aytishimiz kerak. Bizning sxemaga ko'ra, ta'riflar quyida ko'rsatilgandek bo'ladi int rs = 8, en = 9, d4 = 10, d5 = 11, d6 = 12, d7 = 13; // LCD ulangan pinlarLiquidCrystal lcd (rs, en, d4, d5, d6, d7); // LCD -ni yarating O'rnatish funktsiyasi ichida biz faqat loyihaning nomini ko'rsatamiz va keyin asosiy loyiha joylashgan loopga o'tamiz. Asosan, biz klaviaturada biror narsa yozilganligini tekshirishimiz kerak. "=" tugmachasi bosilganda nima yoziladi va keyin uni o'zgaruvchiga aylantiramiz, natijani hisoblab, so'ng uni LCD displeyda ko'rsatishimiz kerak. Bu pastda ko'rsatilganidek, pastadir funktsiyasida bajarilgan narsa = kpd.getKey (); // bosilgan kalit qiymatini xarifda saqlash (kalit! = NO_KEY) DetectButtons (); if (natija == rost) CalculateResult (); DisplayResult (); Har bir funktsiya ichida nima sodir bo'layotgani izoh satrlari yordamida tushuntiriladi, quyida keltirilgan to'liq koddan o'ting va uning qanday ishlashini tushunish uchun u bilan skripka qiling. Agar siz biron bir chiziq haqida shubhangiz bo'lsa, sharhlar bo'limidan yoki forumlardan foydalanishingiz mumkin.
4 -qadam:
5 -qadam: Arduino kalkulyatorining ishlashi
Ulanish sxemasini sxema bo'yicha bajaring va quyidagi kodni yuklang. Agar u xato ko'rsatsa, kutubxonani yuqoridagi ko'rsatmalarga muvofiq qo'shganingizga ishonch hosil qiling. Muammo sizning qurilmangizda ekanligini tekshirish uchun siz simulyatsiyani sinab ko'rishingiz mumkin. Agar hamma narsa kutilganidek bajarilgan bo'lsa, unda sizning apparatingiz quyidagicha ko'rinadi: LCD displeyda bu 4x4 klaviaturadan foydalanadigan Arduino kalkulyatori. Bu erda ishlatilgan klaviatura tegishli belgilarga ega emasligi sababli, men alifboni operator deb hisoblaganman. Quyida sanab o'tilgan Klaviaturadagi belgi "A" qo'shimchasi (+) "B" ayirish (-) "C" ko'paytirish (*) "D" bo'linmasi (/) "*" aniq (C) "#" ga teng (=) Har bir tugma nimani anglatishini yozish uchun markerdan foydalaning va shu bilan siz to'g'ridan -to'g'ri kalkulyatordan foydalanishni boshlashingiz mumkin. Raqamni yozing va ikkinchi qatorda paydo bo'ladi, operandni bosing va ikkinchi raqamingizni kiriting, natijada "#" tugmachasini bosing. Siz sensorli ekranli Arduino kalkulyatorini yaratishga harakat qilishingiz mumkin.
6 -qadam: kod
/ * * Arduino klaviatura kalkulyatori dasturi */#o'z ichiga oladi // LCD uchun sarlavha fayli https://www.arduino.cc/en/Reference/LiquidCrystal#include // Klaviatura uchun sarlavha fayli https://github.com/ Kris-A/Keypadconst bayt ROWS = 4; // To'rt qatorli bayt COLS = 4; // Uchta ustun // Klaviatura tugmachalarini belgilang [ROWS] [COLS] = {{'7', '8', '9', 'D'}, {'4', '5', '6', ' C '}, {' 1 ',' 2 ',' 3 ',' B '}, {'*',' 0 ','#',' A '}}; bayt qatorlari [ROWS] = {0, 1, 2, 3}; // ROW0, ROW1, ROW2 va ROW3 klaviaturasini ushbu Arduino pinlariga ulang.byte colPins [COLS] = {4, 5, 6, 7}; // COL0, COL1 va COL2 klaviaturasini ushbu Arduino pinlariga ulang. Keypad kpd = Klaviatura (makeKeymap (tugmalar), rowPins, colPins, ROWS, COLS); // Klaviatura panelini yarating int rs = 8, en = 9, d4 = 10, d5 = 11, d6 = 12, d7 = 13; // LCD ulangan pinlarLiquidCrystal lcd (rs, en, d4, d5, d6, d7); uzun Num1, Num2, Raqam; char tugmasi, harakat; boolean result = false; void setup () {lcd.begin (16, 2); // Biz 16*2 LCD displeydan foydalanmoqdamiz lcd.print ("DIY kalkulyatori"); // lcd.setCursor kirish xabarini ko'rsatish (0, 1); // kursorni 0-ustun, 1-qator lcd.print ("-CircuitDigest") ga o'rnating; // Kirish xabarining kechikishini ko'rsatish (2000); // displey ma'lumoti ko'rsatilishini kuting lcd.clear (); // Keyin tozalang} void loop () {key = kpd.getKey (); // bosilgan kalit qiymatini xarifda saqlash (kalit! = NO_KEY) DetectButtons (); if (natija == rost) CalculateResult (); DisplayResult (); } void DetectButtons () {lcd.clear (); // Keyin tozalang, agar (key == '*') // Bekor qilish tugmasi bosilsa {Serial.println ("Tugmani bekor qilish"); Raqam = Num1 = Num2 = 0; result = false;} if (key == '1') // Agar 1 -tugma bosilsa {Serial.println ("1 -tugma"); agar (Raqam == 0) Raqam = 1; else Raqam = (Raqam*10) + 1; // ikki marta bosildi} if (key == '4') // Agar 4 -tugma bosilsa {Serial.println ("Button 4"); agar (Raqam == 0) Raqam = 4; else Raqam = (Raqam*10) + 4; // ikki marta bosildi} if (key == '7') // Agar 7 -tugma bosilsa {Serial.println ("7 -tugma"); agar (Raqam == 0) Raqam = 7; else Raqam = (Raqam*10) + 7; // ikki marta bosildi} if (key == '0') {Serial.println ("Button 0"); // 0 tugmasi bosiladi, agar (Raqam == 0) Raqam = 0; else Raqam = (Raqam*10) + 0; // ikki marta bosildi} if (key == '2') // 2 -tugma bosilsa {Serial.println ("2 -tugma"); agar (Raqam == 0) Raqam = 2; else Raqam = (Raqam*10) + 2; // ikki marta bosildi} if (key == '5') {Serial.println ("5 -tugma"); agar (Raqam == 0) Raqam = 5; else Raqam = (Raqam*10) + 5; // ikki marta bosildi} if (key == '8') {Serial.println ("8 -tugma"); agar (Raqam == 0) Raqam = 8; else Raqam = (Raqam*10) + 8; // ikki marta bosildi} if (key == '#') {Serial.println ("Teng tugma"); Num2 = Raqam; natija = rost; } if (key == '3') {Serial.println ("3 -tugma"); agar (Raqam == 0) Raqam = 3; else Raqam = (Raqam*10) + 3; // ikki marta bosildi} if (key == '6') {Serial.println ("Button 6"); agar (Raqam == 0) Raqam = 6; else Raqam = (Raqam*10) + 6; // ikki marta bosildi} if (key == '9') {Serial.println ("9 -tugma"); agar (Raqam == 0) Raqam = 9; else Raqam = (Raqam*10) + 9; // ikki marta bosildi} agar (tugmachasi == 'A' || kalit == 'B' || kalit == 'C' || kalit == 'D') // 4 -ustunda tugmalarni aniqlash {Num1 = Raqam; Raqam = 0; if (key == 'A') {Serial.println ("Qo'shish"); harakat = '+';} if (key == 'B') {Serial.println ("Chiqarish"); harakat = '-'; } if (key == 'C') {Serial.println ("Ko'paytirish"); harakat = '*';} if (key == 'D') {Serial.println ("Devesion"); harakat = '/';} kechiktirish (100); }} void 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); // kursorni 0 -ustun, 1 -qator lcd.print (Num1) ga o'rnating; lcd.print (harakat); lcd.print (Num2); agar (natija == rost) {lcd.print ("="); lcd.print (Raqam);} // Natijani ko'rsatish lcd.setCursor (0, 1); // kursorni 0 -ustun, 1 -qator lcd.print (Raqam) ga o'rnating; // Natijani ko'rsatish}
Tavsiya:
Nextion/Arduino kalkulyatori: 3 qadam
Nextion/Arduino kalkulyatori: Arduino Uno uchun foydali kalkulyator. Kalkulyator uslubi Windows 10 bilan ishlaydigan standart kalkulyatorga o'xshaydi. Eslatma: Windows 10 kalkulyatori bajaradigan ilmiy va dasturchi funktsiyalarni o'z ichiga olmaydi, lekin bu funktsiyalar
4X4 klaviatura yordamida Arduino kalkulyatori: 4 qadam (rasmlar bilan)
4X4 klaviatura yordamida Arduino kalkulyatori: Ushbu qo'llanmada biz Arduino yordamida o'z kalkulyatorimizni yaratamiz. Qiymatlar klaviatura (4 × 4 klaviatura) orqali yuborilishi mumkin va natijani LCD displeyda ko'rish mumkin. Bu kalkulyator qo'shish, ayirish, ko'paytirish kabi oddiy amallarni bajarishi mumkin edi
1602 LCD va 4x4 klaviatura yordamida Arduino DIY kalkulyatori: 4 qadam
1602 LCD va 4x4 klaviatura yordamida Arduino DIY kalkulyatori: Salom bolalar, biz ko'rsatmalarda Arduino yordamida asosiy hisoblarni bajaradigan kalkulyator yaratamiz. Shunday qilib, biz asosan 4x4 klaviaturadan ma'lumotlarni olamiz va ma'lumotlarni 16x2 lcd displeyda chop etamiz va arduino hisob -kitoblarni amalga oshiradi
LED chiqishi bilan Arduino kalkulyatori: 5 qadam
LED chiqishi bilan Arduino kalkulyatori: Salom bolalar! Ketma -ket monitorning kirish va chiqishidan foydalanishni o'rganmoqchimisiz. Xo'sh, bu erda siz buni qanday qilish bo'yicha mukammal qo'llanmaga egasiz! Bu yo'riqnomada men sizga Arduino seriyali kalkulyatorini yaratish uchun zarur bo'lgan oddiy qadamlarni ko'rsataman
Arduino kalkulyatori: 8 qadam (rasmlar bilan)
Arduino kalkulyatori: Men sizga ko'rsatma beraman, qanday qilib boshqa kalkulyator kabi yaxshi Arduino kalkulyatorini yasashni ko'rsataman (yaxshi … qandaydir). Garchi bu o'lchamlari tufayli amaliy bo'lmasa ham, tenglik tugmachasini takroriy ishlatish (yo'qligi sababli