Мазмуну:
- 1 -кадам: Керектүү нерселер
- 2 -кадам: Райондук диаграмма
- 3 -кадам: Arduino Calculator программасы
- 4 -кадам:
- 5 -кадам: Arduino Calculatorдун иштеши
- 6 -кадам: Код
Video: Arduino Calculator: 6 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:41
Программалоо ар дайым кызыктуу жана Arduino - бул эң сонун платформа, эгерде сиз жаңы киргизилген программалоону баштасаңыз. Бул окуу куралында биз Arduino менен өзүбүздүн эсептегичибизди курабыз. Маанилер баскычтоп аркылуу жөнөтүлүшү мүмкүн (4 × 4 баскычтоп) жана натыйжаны ЖК экранда көрүүгө болот (16 × 2 чекит матрицасы). Бул эсептегич толук сандар менен кошуу, кемитүү, көбөйтүү жана бөлүү сыяктуу жөнөкөй амалдарды аткара алат. Бирок түшүнүктү түшүнгөндөн кийин, сиз Arduino функциялары менен илимий функцияларды да ишке ашыра аласыз. Бул долбоордун аягында сиз Arduino менен 16x2 ЖК жана баскычтопту кантип колдонууну, ошондой эле алар үчүн программаны оңой колдонууну билесиз. жеткиликтүү китепканалар. Сиз ошондой эле белгилүү бир тапшырманы аткаруу үчүн Arduino программаңызды түшүнөсүз.
1 -кадам: Керектүү нерселер
Arduino Uno (Ар кандай версия иштейт) 16 × 2 ЖК Дисплей 4 × 4 Баскыч 9В Батарея Нан тактасы жана туташтыруу зымдары
2 -кадам: Райондук диаграмма
3 -кадам: Arduino Calculator программасы
Бул долбоордун толук Arduino программасы бул долбоордун аягында берилет. Код кичинекей мааниге ээ бөлүктөргө бөлүнөт жана төмөндө түшүндүрүлөт. Жогоруда айтылгандай, биз китепканаларды колдонуу менен LCD жана клавиатураны Arduino менен иштетебиз. Келгиле, адегенде аларды Arduino IDEге кошолу. ЖК үчүн китепкана демейки боюнча сиздин Arduinoңузга киргизилген, андыктан биз бул жөнүндө кабатыр болбошубуз керек. Баскычтоп китепканасы үчүн Githubдан жүктөө үчүн шилтемени басыңыз. Сиз ZIP файлын аласыз, андан кийин бул libkты Sketch by Arduino -> Китепкананы кошуу ->. ZIP файлын кошуу жана бул жүктөлүп алынган файлдын жайгашкан жерин көрсөтүү. Китепкананы клавиатура менен колдонсок да, биз Arduino клавиатурасы жөнүндө бир аз маалымат (төмөндө көрсөтүлгөн) жөнүндө сөз кылышыбыз керек. ROWS жана COLS өзгөрмөлөрү биздин клавиатурада канча катар жана мамыча бар экенин айтып берет жана клавиатура баскычтардын клавиатурада болушунун тартибин көрсөтөт. Мен бул долбоордо колдонгон клавиатура ачкыч картасына төмөндөгүдөй көрүнөт, дагы ошол эле нерсени көрсөтөт. Мындан ары биз клавиатура rowPins жана colPins.const байтынын ROWS = 4 өзгөрмөлүү массивин колдонуу менен туташтырылганын белгилейбиз. // Төрт rowsconst байт COLS = 4; // Үч мамыча // Keymapchar баскычтарын аныктаңыз [ROWS] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', ' B '}, {' 7 ',' 8 ',' 9 ',' C '}, {'*',' 0 ','#',' D '}}; байт rowPins [ROWS] = {0, 1, 2; // COL0, COL1 жана COL2 клавиатурасын ушул Arduino казыктарына туташтырыңыз. Биз кайсы клавиатураны колдонуп жатканыбызды жана ал кантип туташкандыгын айткандан кийин, биз төмөндөгү линияны колдонуп, ошол деталдарды колдонуп клавиатураны түзө алабыз Keypad kpd = Keypad (makeKeymap (key), rowPins, colPins, ROWS, COLS); // Баскычтопту түзүңүз Окшош түрдө, биз да LCDдин Arduino'нун кайсы казыктарына туташканын айтууга туура келет. Биздин схемага ылайык, аныктамалар төмөнкүдөй болот int rs = 8, en = 9, d4 = 10, d5 = 11, d6 = 12, d7 = 13; // ЖК кошулган казыктарLiquidCrystal lcd (rs, en, d4, d5, d6, d7); // ЖК түзүү Орнотуу функциясынын ичинде, биз жөн эле проектинин атын көрсөтөбүз, андан кийин негизги проект жайгашкан циклге өтөбүз. Негизинен, биз клавиатурада бир нерсе терилип жаткандыгын текшеришибиз керек, терилген болсо биз таанышыбыз керек эмне терилип жатат, андан кийин аны "=" басканда өзгөрмөгө айландыруу үчүн биз натыйжаны эсептеп, анан аны ЖКда көрсөтүшүбүз керек. Төмөндө көрсөтүлгөндөй, цикл функциясынын ичинде дал ушул нерсе жасалат = kpd.getKey (); // басылган ачкычтын маанисин чарифте сактоо (key! = NO_KEY) DetectButtons (); if (result == true) CalculateResult (); DisplayResult (); Ар бир функциянын ичинде эмне болуп жатканы комментарийлердин линиялары аркылуу түшүндүрүлөт, төмөндөгү толук коддон өтүңүз, анын чындыгында кантип иштээрин түшүнүү үчүн аны тегеректеп алыңыз. Эгерде сизде кандайдыр бир шек бар болсо, анда комментарийлер бөлүмүн же форумдарды колдонуңуз.
4 -кадам:
5 -кадам: Arduino Calculatorдун иштеши
Байланыштарды райондук схемага ылайык жасаңыз жана төмөндөгү кодду жүктөңүз. Эгерде ал ката көрсөтсө, китепкананы жогоруда берилген көрсөтмөгө ылайык кошконуңузга ишениңиз. Сиз ошондой эле көйгөй сиздин жабдыктарыңызда экендигин текшерүү үчүн симуляцияны колдонуп көрсөңүз болот. Эгерде баары болуп жаткандай жасалса, анда сиздин жабдыктарыңыз төмөндөгүдөй көрүнөт, бул ЖК дисплейде 4x4 баскычын колдонуу менен Arduino Calculator Бул жерде колдонулган баскычтобдо туура белгилер жок болгондуктан, мен алфавитти оператор катары Төмөндө тизмеленген Баскычтоптун мүнөзү "А" кошумча (+) "В" кемитүү (-) "С" көбөйтүү (*) "D" бөлүмү (/) "*" Тазалоо (C) "#" Барабар (=) деп кабыл алынган Ар бир баскычтын эмнени билдирерин жазуу үчүн маркерди колдонуңуз. Номерди териңиз жана экинчи сапта пайда болот операндды басыңыз жана экинчи номериңизди териңиз, жыйынтыгын алуу үчүн "#" баскычын басыңыз. Ошондой эле бул сенсордук экранга негизделген Arduino калкуляторун түзүп көрүңүз.
6 -кадам: Код
/ * * Arduino баскычтоптун эсептегич программасы */#камтыйт // https://www.arduino.cc/en/Reference/LiquidCrystal#include // LCD үчүн Header файлы https://github.com/ Крис-A/Keypadconst байт ROWS = 4; // Төрт rowsconst байт COLS = 4; // Үч мамыча // Keymapchar баскычтарын аныктаңыз [ROWS] [COLS] = {{'7', '8', '9', 'D'}, {'4', '5', '6', ' C '}, {' 1 ',' 2 ',' 3 ',' B '}, {'*',' 0 ','#',' A '}}; байт rowPins [ROWS] = {0, 1, 2; // COL0, COL1 жана COL2 клавиатурасын ушул Arduino казыктарына туташтырыңыз. Keypad kpd = Keypad (makeKeymap (key), rowPins, colPins, ROWS, COLS); // Keypadconst түзүү int rs = 8, en = 9, d4 = 10, d5 = 11, d6 = 12, d7 = 13; // ЖК кошулган казыктарLiquidCrystal lcd (rs, en, d4, d5, d6, d7); узун Num1, Num2, Number; char ачкычы, иш -аракет; логикалык жыйынтык = false; void setup () {lcd.begin (16, 2); // Биз 16*2 ЖК дисплейди lcd.print ("DIY Calculator") колдонуп жатабыз; // Киришүү билдирүүсүн көрсөтүү lcd.setCursor (0, 1); // курсорду 0 графасына орнотуңуз, 1-сап lcd.print ("-CircuitDigest"); // Киришүү билдирүүсүнүн кечигүүсүн көрсөтүү (2000); // дисплейдин маалыматты көрсөтүшүн күтө туралы lcd.clear (); // Андан кийин тазалаңыз} void loop () {key = kpd.getKey (); // басылган ачкычтын маанисин чарифте сактоо (key! = NO_KEY) DetectButtons (); if (result == true) CalculateResult (); DisplayResult (); } void DetectButtons () {lcd.clear (); // Андан кийин тазалаңыз, эгерде (key == '*') // Эгерде жокко чыгаруу баскычы басылса {Serial.println ("Button Cancel"); Number = Num1 = Num2 = 0; result = false;} if (key == '1') // If Button 1 is pressed {Serial.println ("Button 1"); if (Number == 0) Number = 1; else саны = (саны*10) + 1; // эки жолу басылды} if (key == '4') // If Button 4 is pressed {Serial.println ("Button 4"); if (Number == 0) Number = 4; else саны = (саны*10) + 4; // Эки жолу басылды} if (key == '7') // If Button 7 is pressed {Serial.println ("Button 7"); if (Number == 0) Number = 7; else саны = (саны*10) + 7; // эки жолу басылды} if (key == '0') {Serial.println ("Button 0"); // 0 баскычы басылат, эгерде (Сан == 0) Сан = 0; else саны = (саны*10) + 0; // эки жолу басылды} if (key == '2') // 2 -баскыч басылат {Serial.println ("Button 2"); if (Number == 0) Number = 2; else саны = (саны*10) + 2; // эки жолу басылды} if (key == '5') {Serial.println ("Button 5"); if (Number == 0) Number = 5; else саны = (саны*10) + 5; // эки жолу басылды} if (key == '8') {Serial.println ("Button 8"); if (Number == 0) Number = 8; else саны = (саны*10) + 8; // эки жолу басылды} if (key == '#') {Serial.println ("Button Equal"); Num2 = Number; натыйжа = чындык; } if (key == '3') {Serial.println ("Button 3"); if (Number == 0) Number = 3; else саны = (саны*10) + 3; // эки жолу басылды} if (key == '6') {Serial.println ("Button 6"); if (Number == 0) Number = 6; else саны = (саны*10) + 6; // эки жолу басылды} if (key == '9') {Serial.println ("Button 9"); if (Number == 0) Number = 9; else саны = (саны*10) + 9; // эки жолу басылды} if (key == 'A' || key == 'B' || key == 'C' || key == 'D') // 4 -графанын баскычтарын аныктоо {Num1 = Number; Number = 0; if (key == 'A') {Serial.println ("Кошуу"); иш = '+';} if (key == 'B') {Serial.println ("Subtraction"); иш = '-'; } if (key == 'C') {Serial.println ("Көбөйтүү"); иш = '*';} if (key == 'D') {Serial.println ("Devesion"); action = '/';} delay (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); // курсорду 0 графасына, 1 -сапка lcd.print (Num1) коюңуз; lcd.print (иш -аракет); lcd.print (Num2); if (result == true) {lcd.print ("="); lcd.print (Number);} // Натыйжаны көрсөтүү lcd.setCursor (0, 1); // курсорду 0 мамычасына, 1 сапка lcd.print (Саны) коюңуз; // Жыйынтыгын көрсөтүү}
Сунушталууда:
Nextion/Arduino Calculator: 3 кадам
Nextion/Arduino Calculator: Arduino Uno үчүн пайдалуу эсептегич. Калькулятор стили боюнча Windows 10 менен келген стандарттык калькуляторго окшош. Эскертүү: Бул Windows 10 калькулятору аткарган илимий жана программалоочу функцияларды камтыбайт, бирок бул функциялар
4X4 баскычын колдонуу менен Arduino Calculator: 4 кадам (сүрөттөр менен)
4X4 баскычтопту колдонуу менен Arduino Calculator: Бул окуу куралында биз Arduino менен өзүбүздүн эсептегичибизди курабыз. Маанилер баскычтоп аркылуу жөнөтүлүшү мүмкүн (4 × 4 баскычтоп) жана жыйынтыгын ЖК экранда көрүүгө болот. Бул эсептегич кошуу, азайтуу, көбөйтүү сыяктуу жөнөкөй амалдарды аткара алат
1602 LCD жана 4x4 баскычтопту колдонуу менен Arduino DIY Calculator: 4 кадам
1602 ЖК жана 4x4 баскычтопту колдонуу менен Arduino DIY калкулятору: Салам балдар, бул көрсөтмөлөрдө биз Arduino менен негизги эсептөөлөрдү жасай турган калькулятор жасайбыз. Ошентип, биз негизинен 4x4 баскычтопунан маалыматтарды алып, 16x2 LCD дисплейине маалыматтарды басып чыгарабыз жана arduino эсептөөлөрдү аткарат
Arduino Touchscreen Calculator: 7 кадам
Arduino Touchscreen Calculator: Саламатсызбы! Бул Arduino Uno жана TFT LCD калканчынын жардамы менен сенсордук экранды эсептөөчү долбоор. Мен үйдө программалоо классынын концепциясын ойлоп таптым жана бул долбоорду куруу тажрыйбасы абдан кызыктуу болду. Бул эсептегич
LED чыгаруу менен Arduino Calculator: 5 кадам
LED чыгаруу менен Arduino Calculator: Эй балдар! Сериялык монитордун киришин жана чыгышын колдонууну үйрөнгүңүз келет. Мында сизде муну кантип жасоо боюнча эң сонун окуу куралы бар! Бул көрсөтмөдө, мен сизге Arduino сериялык мди колдонуп калькулятор түзүүгө керектүү жөнөкөй кадамдарды көрсөтөм