Mundarija:
- 1 -qadam: Sizga kerak bo'lgan narsalar
- 2 -qadam: ulanishlar
- 3 -qadam: kod
- 4 -qadam: Kalkulyator chiqishi
Video: 1602 LCD va 4x4 klaviatura yordamida Arduino DIY kalkulyatori: 4 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:24
Assalomu alaykum bolalar, biz Arduino yordamida asosiy hisob -kitoblarni bajaradigan kalkulyator tayyorlaymiz. Shunday qilib, biz asosan 4x4 klaviaturadan ma'lumotlarni olamiz va ma'lumotlarni 16x2 lcd displeyda chop etamiz va arduino hisob -kitoblarni amalga oshiradi.
1 -qadam: Sizga kerak bo'lgan narsalar
Bu ko'rsatmalar uchun bizga quyidagilar kerak bo'ladi: Arduino Uno (har qanday versiya ishlaydi)
16 × 2 LCD displey
4 × 4 klaviatura 9V akkumulyator paneliBarmoqlarni ulash
2 -qadam: ulanishlar
Arduino Kalkulyator loyihasining to'liq sxemasi yuqorida keltirilgan. O'chirish sxemasida ko'rsatilgan +5V va erga ulanishni Arduino -ning 5V va topraklama pinidan olish mumkin. Arduino-ni noutbukdan yoki shahar uyasi orqali 12V adapter yoki 9V batareya yordamida quvvatlantirish mumkin, biz Arduino-da LCD-ni 4-bitli rejimda ishlaymiz, shuning uchun LCD-ning oxirgi to'rtta ma'lumoti Arduino-ga ulangan. Klaviaturada yuqoridagi rasmda ko'rsatilgandek, pin 7 dan pin 7 gacha ulanishi kerak bo'lgan 8 ta chiqish pimi bo'ladi, agar Arduino -ning ba'zi platalari 0 va pin1 -ga ulangan biror narsa bo'lsa, dasturni yuklashda xato ko'rsatishi mumkin. dasturni yuklashda klaviatura.
3 -qadam: kod
Quyidagi kodni nusxa ko'chiring va unga arduino -ni yuklang:/ * * Arduino klaviatura kalkulyatori dasturi */#"LiquidCrystal.h" ni o'z ichiga oladi // https://www.arduino.cc/en/Reference/LiquidCrystal# dan LCD uchun sarlavha fayli. "Keypad.h" ni o'z ichiga oladi // Klaviatura uchun sarlavha fayli https://github.com/Chris--A/Keypadconst baytidan 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 -satr kechiktirishi (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}
4 -qadam: Kalkulyator chiqishi
Shunday qilib, biz ulanishlarni yakunladik va kodni arduino -ga yukladik va uning quvvatini o'chirib qo'yishimiz va ba'zi hisob -kitoblarni bajarishimiz kerak va men ko'rib turganingizdek, men klaviatura yordamida hisob -kitob qilyapman va siz natijalarni lcd -da ko'rishingiz mumkin. Shunday qilib, arduino yordamida o'zingizning shaxsiy kalkulyatoringizni yasang.
Tavsiya:
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
Jai Mishra LCD kalkulyatori: 8 qadam
LCD kalkulyatori Jai Mishra: Bu sizga o'z kalkulyatoringizni yaratishni o'rgatadigan juda foydali loyiha. Siz bu kalkulyatorni Internetda yoki real hayotda qo'shimcha materiallar yordamida yaratishingiz mumkin, lekin hozircha biz faqat onlayn kalkulyator yaratishga e'tibor qaratmoqchimiz
Arduino Nano yordamida 4x4 matritsali membranali klaviatura: 4 qadam
Arduino Nano yordamida 4x4 matritsali membranali klaviatura: 4x4 matritsali membranali klaviatura - bu tez -tez kalkulyator, parol kiritish va boshqalar kabi Arduino loyihalarini amalga oshirish uchun ishlatiladigan klaviatura moduli. Asosiy sozlamalar: Maxi
I2C xalta bilan 1602 LCD klaviatura qalqoni moduli: 6 qadam
I2C ryukzakli 1602 ta LCD klaviatura qalqoni moduli: Katta loyihaning bir qismi sifatida menda LCD displey va ba'zi oddiy menyularni boshqarish uchun klaviatura bo'lishi kerak edi. Men boshqa ishlarda Arduino -dagi ko'p kirish -chiqish portlaridan foydalanaman, shuning uchun men LCD uchun I2C interfeysini xohlardim. Shunday qilib, men qo'shimcha uskunalar sotib oldim
1602 ta LCD klaviatura qalqoni W/ Arduino [+Amaliy loyihalar] dan foydalanish: 7 qadam
1602 LCD klaviatura qalqoni W/ Arduino [+Amaliy loyihalar] dan foydalanish: Siz bu va boshqa ajoyib darsliklarni ElectroPeak rasmiy veb -saytida o'qishingiz mumkin.Bu qo'llanmada siz Arduino LCD klaviatura ekranini 3 ta amaliy loyiha bilan qanday ishlatishni o'rganasiz. Qalqonni qanday o'rnatish va kalitlarni aniqlash kerakHo