Мазмұны:

Калькулятор TinkerCad сайысы: 8 қадам
Калькулятор TinkerCad сайысы: 8 қадам

Бейне: Калькулятор TinkerCad сайысы: 8 қадам

Бейне: Калькулятор TinkerCad сайысы: 8 қадам
Бейне: Tinkercad Урок №11 - Создание калькулятора при помощи Tinkercad на платформе Arduino #Tinkercad 2024, Қараша
Anonim
Калькулятор TinkerCad байқауы
Калькулятор TinkerCad байқауы

Хей, жақында мен кодтың әр түрін схемаға қалай енгізу керектігін зерттедім. Мен калькулятор жасау «кейс» және басқа қызықты формаларды енгізудің тамаша әдісі болатынын білдім. Бұрын мен калькуляторды тікелей кодтан жасадым, бірақ оған схема жасау маған қызығушылық туғызды. Әсіресе, карантин кезінде, мен күні бойы компьютерде отырамын. Жоба СКД экранында математикалық операцияларды жүзеге асыру болып табылады.

1 -қадам: материалдар

Цикл үшін:

  • СКД 16х2
  • Arduino Uno R3
  • 4x4 пернетақтасы
  • Кішкене тақта
  • Потенциометр (250 кОм)
  • Резистор (1kΩ)
  • x26 Өтпелі сымдар

2 -қадам: 4x4 пернетақтасын қосу

4x4 пернетақтасын қосу
4x4 пернетақтасын қосу

4x4 пернетақтасындағы 4 қатарлы түйреуіштерді 4-7 Arduino түйреуіштеріне, 4 бағаналы түйреуіштерді Arduino түйреуіштеріне 0-3 жалғаңыз.

3 -қадам: Нан тақтасына қуат беріңіз және СКД қосыңыз

Нан тақтасына қуат беріңіз және СКД қосыңыз
Нан тақтасына қуат беріңіз және СКД қосыңыз

Мен нан тақтасы үшін 5 қуат кернеуін қолдандым. Мен қуат пен жерді нан тақтасына қостым. СКД нан тақтасына орнатылады және оның барлық түйреуіштері тақтаға қосылатындай етіп орналастырылады.

4 -қадам: СКД -ге қуат пен жерді қосыңыз

СКД -ге қуат пен жерді қосыңыз
СКД -ге қуат пен жерді қосыңыз

СКД -ге қосу үшін 3 түйреуіш қажет болады. Біреуі жерге СКД -ға қосылады, екіншісі - СКД жарық диодына, соңғысы - RW -ге қосылады. СКД мен светодиодты бейнекамераға қосу үшін қуат қажет болады. Бірақ жарықдиодты қуат үшін резистор қажет болады, бұл жағдайда мен 1 кОм резисторды қолдандым.

5 -қадам: Потенциометрді қосу

Потенциометрді қосу
Потенциометрді қосу

Потенциометрді 3 бос бағанасы бар тақтаға қосыңыз. Ол 3 түйреуішке ие болады, 1 түйреуіші бар бағанға оған жер қажет болады. 2 -ші терминалы бар бағанға оған қуат қажет болады. Содан кейін тазалағыштың бағанында СКД VO -ға қосылатын қосқыш сым болады.

6 -қадам: Arduino -ны СКД -ге қосу

Arduino -ны СК -ге қосу
Arduino -ны СК -ге қосу

Ардуинодағы 8-13 түйреуіштері СКД-ге қосылады. Arduino-дағы 8-11 түйреуіштер тиісінше D8 (7-4) қосылады. Содан кейін Arduino -ның 12 -ші түйіні СКД -ды қосуға қосылады, ал Arduino -дегі 13 -ші істікше СКД регистріне қосылады.

7 -қадам: кодты енгізу

Математикалық операцияларды пернетақта мен СКД көмегімен қолдану үшін код қажет болады. Төменде мен қолданған код болады, бірақ оны таза және жақсы ету үшін әлі де бірнеше өзгерістер енгізуге болады. Сондықтан онымен аздап ойнауға болады.

#қосу #қосу

LiquidCrystal lcd (13, 12, 11, 10, 9, 8);

ұзақ бірінші = 0;

ұзақ секунд = 0;

қосарланған жиынтық = 0;

int pozit = 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};

CustomKeypad пернетақтасы = Пернетақта (makeKeymap (пернелер), rowPins, colPins, ROWS, COLS);

жарамсыз орнату () {

lcd.begin (16, 2);

lcd.setCursor (5, 0);

lcd.clear (); }

void loop () {

customKey = customKeypad.getKey ();

ауысу (customKey) {

жағдай '0'… '9':

lcd.setCursor (0, 0);

бірінші = бірінші * 10 + (customKey - '0');

lcd.print (бірінші);

pozit ++;

үзіліс;

'+' жағдайы:

бірінші = (барлығы! = 0? барлығы: бірінші);

lcd.setCursor (позит, 0);

lcd.print («+»);

pozit ++;

секунд = SecondNumber ();

жалпы = бірінші + екінші;

lcd.setCursor (1, 1);

lcd.print (барлығы);

бірінші = 0, секунд = 0;

позит = 0;

үзіліс;

жағдай '-':

бірінші = (барлығы! = 0? барлығы: бірінші);

lcd.setCursor (позит, 0);

lcd.print («-»);

pozit ++;

секунд = SecondNumber ();

жалпы = бірінші - екінші;

lcd.setCursor (1, 1);

lcd.print (барлығы);

бірінші = 0, секунд = 0;

позит = 0;

үзіліс;

жағдай '*':

бірінші = (барлығы! = 0? барлығы: бірінші);

lcd.setCursor (позит, 0);

lcd.print («*»);

pozit ++;

секунд = SecondNumber ();

жалпы = бірінші * екінші;

lcd.setCursor (1, 1);

lcd.print (барлығы);

бірінші = 0, секунд = 0;

позит = 0;

үзіліс;

жағдай '/':

бірінші = (барлығы! = 0? барлығы: бірінші);

lcd.setCursor (позит, 0);

lcd.print («/»);

pozit ++;

секунд = SecondNumber (); lcd.setCursor (1, 1);

секунд == 0? lcd.print («Қате»): total = (float) бірінші / (float) секунд;

lcd.print (барлығы);

бірінші = 0, секунд = 0;

позит = 0;

үзіліс;

'С' жағдайы:

жалпы = 0;

бірінші = 0;

секунд = 0;

позит = 0;

lcd.clear ();

үзіліс; }

}

ұзақ SecondNumber () {

уақыт (1) {

customKey = customKeypad.getKey ();

егер (customKey> = '0' && customKey <= '9') {

секунд = секунд * 10 + (customKey - '0');

lcd.setCursor (позит, 0);

lcd.print (екінші); }

егер (customKey == 'C') {

жалпы = 0;

бірінші = 0;

секунд = 0;

позит = 0;

lcd.clear ();

үзіліс; }

егер (customKey == '=') {

lcd.setCursor (0, 1);

lcd.print («=»);

позит = жалпы;

lcd.clear ();

lcd.setCursor (0, 1);

lcd.print («=»);

үзіліс; }

}

екінші қайтару;}

8 -қадам: Нәтиже

Нәтиже
Нәтиже
Нәтиже
Нәтиже

Бұл нұсқаулық бәріңізге ұнады деп сенемін. Оқығаныңызға рахмет!

Сайм.

Ұсынылған: