Мазмуну:
Video: 1602 LCD жана 4x4 баскычтопту колдонуу менен Arduino DIY Calculator: 4 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:39
Салам балдар, бул көрсөтмөлөрдө биз Arduino менен негизги эсептөөлөрдү жасай турган калькулятор жасайбыз. Ошентип, биз негизинен 4x4 баскычтопунан маалыматтарды алып, 16x2 LCD дисплейине маалыматтарды басып чыгарабыз жана arduino эсептөөлөрдү аткарат.
1 -кадам: Сизге керектүү нерселер
Бул көрсөтмөлөр үчүн бизге төмөнкү нерселер керек болот: Arduino Uno (Ар кандай версия иштейт)
16 × 2 LCD дисплей
4 × 4 Keypad9V BatteryBreadboard Зымдарды туташтыруу
2 -кадам: Байланыштар
Бул Arduino Calculator долбоорунун толук схемасы жогоруда берилген. Электр схемасында көрсөтүлгөн +5V жана жерге туташууну Arduino 5V жана жерге туташтыргычынан алууга болот. Ардуинонун өзү ноутбуктан же 12 Вт адаптер же 9 В батарейканы колдонуу менен DC уячасы аркылуу иштесе болот. Биз LCDди 4 бит режиминде Arduino менен иштетебиз, андыктан ЖКнын акыркы төрт гана маалыматы Arduino менен туташкан. Клавиатурада жогоруда көрсөтүлгөндөй пин 7ден пин 7ге чейин туташтырылышы керек болгон 8 чыгаруу казыгы болот. Кээ бир Arduino такталары 0 жана pin1 менен байланыштырылган нерселер бар болсо, программаны жүктөөдө ката көрсөтүшү мүмкүн. программаны жүктөө учурунда баскычтоп.
3 -кадам: Код
Төмөнкү кодду көчүрүп, ага arduino жүктөңүз:/ * * Arduino клавиатурасы эсептегич программасы */#"LiquidCrystal.h" камтыйт // https://www.arduino.cc/en/Reference/LiquidCrystal#дан LCD үчүн баш файл "Keypad.h" кирет // https://github.com/Chris--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 -сапты кечиктирүү (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 (Саны) коюңуз; // Жыйынтыгын көрсөтүү}
4 -кадам: Calculator Output
Ошентип, биз туташууларды бүтүрдүк жана кодду arduinoго жүктөдүк жана анын кубаттуулугун өчүрүү жана кээ бир эсептөөлөрдү жүргүзүү убактысы & сиз көрүп тургандай, мен клавиатура менен эсептөөлөрдү жасап жатам жана сиз жыйынтыктарды LCDден көрө аласыз. Ошентип, ардуинону колдонуп, өзүңүздүн жеке калькуляторуңузду ачып алыңыз.
Сунушталууда:
4X4 баскычын колдонуу менен Arduino Calculator: 4 кадам (сүрөттөр менен)
4X4 баскычтопту колдонуу менен Arduino Calculator: Бул окуу куралында биз Arduino менен өзүбүздүн эсептегичибизди курабыз. Маанилер баскычтоп аркылуу жөнөтүлүшү мүмкүн (4 × 4 баскычтоп) жана жыйынтыгын ЖК экранда көрүүгө болот. Бул эсептегич кошуу, азайтуу, көбөйтүү сыяктуу жөнөкөй амалдарды аткара алат
CircuitPython менен 4x4 баскычтопту колдонуу: 4 кадам
4x4 баскычтопту CircuitPython менен колдонуу: Бул арзан баскычтоп CircuitPython долбоорлоруңузга сандык киргизүүнүн жөнөкөй ыкмасын сунуштайт. Мен аны Adafruit ItsyBitsy M0 экспрессинде колдоном. Сизге керек болот: Ариптакта - меники 4x4ItsyBitsy M0 Express же окшош boardMu Editor орнотулган
Сандык баскычтопту Arduino менен колдонуу: 4 кадам
Сандык баскычтопту Arduino менен колдонуу: Сандык баскычтоптор сиздин долбоорлоруңуз үчүн ар кандай интерфейстер үчүн жөнөкөй колдонуучунун альтернативасын камсыздай алат. Же сизге көп баскычтар керек болсо, алар курулушка байланыштуу сизге көп убакытты үнөмдөй алышат. Биз Arduino l аркылуу аларды туташтыруу аркылуу чуркайбыз
Arduino калкуляторун жасоо үчүн баскычтопту жана LCDди Arduino менен кантип колдонсо болот: 5 кадам
Arduino калкуляторун жасоо үчүн Arduino менен баскычтопту жана LCDди кантип колдонуу керек .: Бул окуу куралында мен 4x4 матрицалуу клавиатураны жана 16x2 ЖКны Arduino менен кантип колдонуп, аны жөнөкөй Arduino калкуляторун жасоо менен бөлүшөм. Андыктан баштайлы
4x4 баскычтопту колдонуу Arduino менен: 5 кадам (сүрөттөр менен)
4x4 баскыч баскычы Arduino менен: 4x4 баскычтобу матрица сыяктуу тизилген 16 баскычтан турат. Матрицаны сканерлөө ыкмасы менен 4x4 баскычтопко кирүү үчүн колдонулган ыкма. 4x4 баскычтобу ага жетүү үчүн 8 төөнөгүчтү талап кылат, б.а. мамычалар үчүн 4 казык жана линия үчүн 4 казык. Кантип сканерлөө