Мазмұны:
- Жабдықтар
- 1 -қадам: материалдарыңызды TinkerCad -те жинаңыз
- 2 -қадам: Жабдықтарыңызды реттеңіз
- 3 -қадам: сымдарды қосу
- 4 -қадам: кодты жазу
- 5 -қадам: Кодексті бұзу
- 6 -қадам: Бұл калькулятордың аппараттық құралы қалай жұмыс істейді?
- 7 -қадам: Калькуляторды толық қарау
- 8 -қадам: Бұл кодтың менің шабыты
Бейне: Джай Мишраның СКД калькуляторы: 8 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:23
Tinkercad жобалары »
Бұл сізге жеке калькулятор жасауды үйрететін өте пайдалы жоба. Сіз бұл калькуляторды желіде де, нақты өмірде де қосымша құралдардың көмегімен жасай аласыз, бірақ әзірге біз тек онлайн калькуляторды құруға тоқталамыз.
Жабдықтар
- Arduino Uno R3
- 220 Ом резистор
- 4*4 пернетақта
- 16*2 СКД
- Тізбекті қосуға арналған сымдар шоғыры
1 -қадам: материалдарыңызды TinkerCad -те жинаңыз
Стресс пен қателіктерді азайту үшін 2 -қадамды бастамас бұрын, сіздің барлық жабдықтарыңыз қол жетімді екеніне көз жеткізіңіз. Дұрыс жабдықтарды қолданғаныңызға көз жеткізіңіз, жоғарыдағы суреттегі кейбір компоненттер басқа компоненттерге ұқсас, сондықтан олардың арасында араласпаңыз. Нұсқаулық ретінде жоғарыдағы суретті пайдаланыңыз.
2 -қадам: Жабдықтарыңызды реттеңіз
Жабдықтарды реттеу - сіздің калькуляторыңыз қандай болатынын алдын ала қараудың ең жақсы әдісі. Сіз қалаған калькулятор дизайнының кез келген түрін жасай аласыз, бірақ калькулятордың табиғи екеніне көз жеткізіңіз және пайдаланушылар дизайнды түсініп, шатастырмауы керек. Мен бәріне тиімді және түсінікті стандартты калькулятор дизайнын қолдандым. Сіз менің дизайнымды таңдай аласыз немесе өзіңіз жасай аласыз, бірақ бұл шығармашылық және сәттілік!
3 -қадам: сымдарды қосу
Егер сіз оның мәнін түсінбесеңіз, сымдарды қосу қиын жұмыс. Бұл сымда біз барлық төрт компонентті біріктіруге тырысамыз, сондықтан олар кодты жазу уақыты келгенде топ болып жұмыс жасай алады. Егер сымдар жоқ болса, онда ағын болмайды, бұл жобаның сәтсіз аяқталуына әкеледі. Ешқандай түсініспеушіліксіз сымдар дұрыс қосылғанына көз жеткізіңіз.
Сымдарды қосуды аяқтағаннан кейін, сымдардың ұқыпты және реттелген екеніне көз жеткізіңіз, осылайша сізге және басқаларға осы калькулятордың аппараттық құралында не болып жатқанын түсіну оңай болады. Бұрын айтқанымдай, сіз менің сымдарды ұйымдастыру техникасын қолдана аласыз немесе өзіңіз жасай аласыз, бірақ сіз не істеуге шешім қабылдасаңыз да, олар бос орынмен жиналғанына көз жеткізіңіз.
4 -қадам: кодты жазу
#қосу
#қосу #қосу
LiquidCrystal lcd (13, 12, 11, 10, 9, 8);
ұзақ бірінші = 0; ұзақ секунд = 0; қосарланған жиынтық = 0;
char customKey; const байт ROWS = 4; COLS const байт = 4;
char пернелері [ROWS] [COLS] = {{'1', '4', '7', '/'}, {'2', '5', '8', '+'}, {'3', '6', '9', '-'}, {'C', '0', '=', '*'}}; байт rowPins [ROWS] = {7, 6, 5, 4}; // colPins байт пернетақтасының жол түйіндеріне қосылу [COLS] = {3, 2, 1, 0}; // пернетақтаның бағаналық түйреуіштеріне қосылыңыз
// NewKeypad Keypad класының данасын инициализациялау customKeypad = Пернетақта (makeKeymap (пернелер), rowPins, colPins, ROWS, COLS);
void setup () {lcd.begin (16, 2); // lcd бастау (int i = 0; i <= 3; i ++); lcd.setCursor (0, 0); lcd.print («Калькулятор»); lcd.setCursor (0, 1); lcd.print («Джай Мишра»); кешіктіру (4000); lcd.clear (); lcd.print («Қорытынды жоба»); кешіктіру (2500); lcd.clear (); lcd.setCursor (0, 0); }
void loop () {
customKey = customKeypad.getKey (); switch (customKey) {case '0'… '9': // Бұл операторға «+-*/» lcd.setCursor (0, 0) басылғанша бірінші мәнді жинауды жалғастырады; бірінші = бірінші * 10 + (customKey - '0'); lcd.print (бірінші); үзіліс;
жағдай '+': бірінші = (барлығы! = 0? барлығы: бірінші); lcd.setCursor (0, 1); lcd.print («+»); секунд = SecondNumber (); // жиналған екінші санды алу жалпы = бірінші + екінші; lcd.setCursor (0, 3); lcd.print (барлығы); бірінші = 0, екінші = 0; // келесі үзіліс үшін мәндерді нөлге қайтару;
жағдай '-': бірінші = (барлығы! = 0? жалпы: бірінші); lcd.setCursor (0, 1); lcd.print («-»); секунд = SecondNumber (); жалпы = бірінші - екінші; lcd.setCursor (0, 3); lcd.print (барлығы); бірінші = 0, екінші = 0; үзіліс;
жағдай '*': бірінші = (барлығы! = 0? Барлығы: бірінші); lcd.setCursor (0, 1); lcd.print («*»); секунд = SecondNumber (); жалпы = бірінші * екінші; lcd.setCursor (0, 3); lcd.print (барлығы); бірінші = 0, екінші = 0; үзіліс;
жағдай '/': бірінші = (барлығы! = 0? барлығы: бірінші); lcd.setCursor (0, 1); lcd.print («/»); секунд = SecondNumber (); lcd.setCursor (0, 3);
секунд == 0? lcd.print («Жарамсыз»): total = (float) бірінші / (float) секунд;
lcd.print (барлығы); бірінші = 0, екінші = 0; үзіліс;
жағдай 'С': барлығы = 0; lcd.clear (); үзіліс; }}
long SecondNumber () {while (1) {customKey = customKeypad.getKey (); if (customKey> = '0' && customKey <= '9') {second = second * 10 + (customKey - '0'); lcd.setCursor (0, 2); lcd.print (екінші); }
if (customKey == '=') үзіліс; // екінші қайтару; } екінші қайтару; }
5 -қадам: Кодексті бұзу
Біз компьютер түсінетін мәндерді инициализацияладық
#қосу
#қосу #қосу
LiquidCrystal lcd (13, 12, 11, 10, 9, 8);
ұзақ бірінші = 0; ұзақ секунд = 0; қосарланған жиынтық = 0;
char customKey; const байт ROWS = 4; COLS const байт = 4;
Біз компьютерге пернетақта жұмыс істейтін сандар мен белгілерді айттық
char пернелері [ROWS] [COLS] = {{'1', '2', '3', '/'}, {'4', '5', '6', '+'}, {'7', '8', '9', '-'}, {'C', '0', '=', '*'}};
Біз пернетақтаның жолдары мен бағандарын және қай сан қай бағанда келетінін және т.б
байт rowPins [ROWS] = {7, 6, 5, 4}; байт colPins [COLS] = {3, 2, 1, 0};
Біз компьютерге кіріспе немесе экрандағы қуатты жасадық (оған өз атыңызды жаза аласыз)
void setup () {lcd.begin (16, 2); үшін (int i = 0; i <= 3; i ++); lcd.setCursor (0, 0); lcd.print («Калькулятор»); lcd.setCursor (0, 1); lcd.print («Джай Мишра»); кешіктіру (4000); lcd.clear (); lcd.print («Қорытынды жоба»); кешіктіру (2500); lcd.clear (); lcd.setCursor (0, 0); }
Біз калькуляторда әр операцияның мағынасы мен формуласын жасаймыз, сондықтан компьютер калькуляторда «+» түймесін басқанда, компьютер қандай формуланы қолдану керектігін түсінеді
{жағдай '0'… '9': lcd.setCursor (0, 0); бірінші = бірінші * 10 + (customKey - '0'); lcd.print (бірінші); үзіліс;
жағдай '/': бірінші = (барлығы! = 0? барлығы: бірінші); lcd.setCursor (0, 1); lcd.print («/»); секунд = SecondNumber (); lcd.setCursor (0, 3);
секунд == 0? lcd.print («Жарамсыз»): total = (float) бірінші / (float) секунд;
lcd.print (барлығы); бірінші = 0, екінші = 0; үзіліс; жағдай '+': бірінші = (барлығы! = 0? барлығы: бірінші); lcd.setCursor (0, 1); lcd.print («+»); секунд = SecondNumber (); lcd.setCursor (0, 3); lcd.print (барлығы); бірінші = 0, екінші = 0; үзіліс;
жағдай '-': бірінші = (барлығы! = 0? жалпы: бірінші); lcd.setCursor (0, 1); lcd.print («-»); секунд = SecondNumber (); жалпы = бірінші - екінші; lcd.setCursor (0, 3); lcd.print (барлығы); бірінші = 0, екінші = 0; үзіліс;
жағдай '*': бірінші = (барлығы! = 0? Барлығы: бірінші); lcd.setCursor (0, 1); lcd.print («*»); секунд = SecondNumber (); жалпы = бірінші * екінші; lcd.setCursor (0, 3); lcd.print (барлығы); бірінші = 0, екінші = 0; үзіліс;
жағдай 'С': барлығы = 0; lcd.clear (); үзіліс; }}
Код өте оңай, оны түсінуге тырысу керек, содан кейін бәрін оңай жасауға болады. Егер кодпен проблемалар туындаса, маған электронды пошта арқылы хабарлаңыз
6 -қадам: Бұл калькулятордың аппараттық құралы қалай жұмыс істейді?
Бұл калькуляторда СКД, пернетақта, Arduino тақтасы және 220 Ом резисторы қолданылады. Бұл компоненттердің барлығы бөлек, бірақ сымдармен Arduino пернетақтасы мен СКД -ге қосылған. СКД әр түрлі бөлімдері ақырында екеуін де пернетақтамен байланыстыратын Arduino тақтасына қосылған. Қосылғаннан кейін кодтау барлық жұмысты орындайды және пернетақтадағы әр операция мен түймені орындауға тапсырма береді.
7 -қадам: Калькуляторды толық қарау
Біздің соңғы жобамыз осылай көрінеді! Егер сіздің кодыңыз жұмыс істемесе немесе техникалық қиындықтар болса, маған электронды поштаны жіберіңіз, мен сізге ең жақсы калькуляторды құруға көмектесуге тырысамын!
8 -қадам: Бұл кодтың менің шабыты
Тинкеркадта калькулятор жасау туралы жоғарыдағы бейнеден шабыт алдым! Мен ештеңені көшірмедім және қоймадым, бірақ мен оның калькулятор туралы түсінігін және кодты түсінуді қолдандым.
Ұсынылған:
Банктік шот бойынша жинақ калькуляторы: 18 қадам
Банктік шот бойынша жинақ калькуляторы: Менің жинақ калькуляторымды таңдағаныңыз үшін рахмет. Бүгін біз жеке шығындар мен жинақтарды бақылау үшін BankAccount класын қалай бағдарламалау керектігін үйренетін боламыз. Шығындарыңызды бақылау үшін банктік есепшот жасау үшін сізге алдымен қарапайым мәліметтер қажет болады
Bluetooth басқарылатын Messenger СКД -- 16x2 СКД -- Hc05 -- Қарапайым -- Сымсыз хабарландыру тақтасы: 8 қадам
Bluetooth басқарылатын Messenger СКД || 16x2 СКД || Hc05 || Қарапайым || Сымсыз хабарландыру тақтасы: …………………………. Басқа бейнелер үшін менің YouTube каналыма ТІРКЕЛІҢІЗ …… ………………………………… Хабарландыру тақтасы адамдарды жаңа ақпаратпен жаңарту үшін қолданылады немесе егер сіз хабарламаны бөлмеде немесе жартылай жібергіңіз келсе
СКД басқыншылары: 16x2 СКД дисплейіндегі ойын сияқты ғарыштық басқыншылар: 7 қадам
СКД басқыншылары: 16x2 СКД дисплейіндегі ғарыштық басқыншылар ойыны: Аңызға айналған «Космостық басқыншылар» ойынын енгізудің қажеті жоқ. Бұл жобаның ең қызықты ерекшелігі - бұл графикалық шығару үшін мәтіндік дисплейді қолдану. Бұған 8 таңбалы таңбаны енгізу арқылы қол жеткізуге болады. Сіз толық Arduino жүктей аласыз
I2C / IIC СКД дисплей - IUC LCD дисплейіне SPI СКД дисплейін Arduino көмегімен SPI - IIC модулін қолданып қолданыңыз: 5 қадам
СКД дисплейі I2C / IIC | IUC LCD дисплейіне SPI LCD дисплейін Arduino көмегімен SPI мен IIC модулін қолдана отырып қолданыңыз: Сәлеметсіздер ме, балалар, өйткені қалыпты SPI LCD 1602 сымдары өте көп, сондықтан оларды arduino -мен байланыстыру өте қиын, бірақ нарықта бір модуль бар. SPI дисплейін IIC дисплейіне түрлендіріңіз, сонда сізге тек 4 сымды қосу қажет
СКД дисплейі I2C / IIC - SPI СКД I2C СК дисплейіне түрлендіру: 5 қадам
СКД дисплейі I2C / IIC | SPI СКД дисплейін I2C СК дисплейіне түрлендіріңіз: LCD дисплейін пайдалану үшін тым көп қосылым қажет, сондықтан мен i2c lcd -ді спи -LCD -ге түрлендіретін модуль таптым