Съдържание:

Калкулатор TinkerCad Конкурс: 8 стъпки
Калкулатор TinkerCad Конкурс: 8 стъпки

Видео: Калкулатор TinkerCad Конкурс: 8 стъпки

Видео: Калкулатор TinkerCad Конкурс: 8 стъпки
Видео: Mission: DICE Online - Tinkercad Tutorial #03 Minecraft Creeper 2024, Декември
Anonim
Калкулатор TinkerCad Contest
Калкулатор TinkerCad Contest

Хей, така че наскоро изследвах как да внедря различни типове код в схема. Открих, че създаването на калкулатор би било чудесен начин за внедряване на „case“и други форми на код, които ми бяха интересни. В миналото направих калкулатори направо от код, но създаването на схема за него ми даде интерес. Особено през това време на карантина, където съм почти цял ден на компютъра си. Проектът е за реализиране на математически операции на LCD екран.

Стъпка 1: Материали

За верига:

  • LCD 16 x 2
  • Arduino Uno R3
  • Клавиатура 4x4
  • Малка дъска
  • Потенциометър (250 kΩ)
  • Резистор (1 kΩ)
  • x26 Кабелни проводници

Стъпка 2: Свързване на 4x4 клавиатурата

Свързване на клавиатурата 4x4
Свързване на клавиатурата 4x4

Свържете четирите реда на клавиатурата 4x4 към щифтовете Arduino 4-7 и свържете щифтовете за 4 колони към щифтовете Arduino 0-3.

Стъпка 3: Осигурете захранване на макета и свържете LCD

Осигурете захранване на платката и свържете LCD
Осигурете захранване на платката и свържете LCD

Използвах захранващо напрежение 5 за макета. Свързах захранването и земята към макета. LCD дисплеят се поставя върху макетната платка и се поставя така, че всичките му щифтове да се свържат с макета.

Стъпка 4: Свържете захранването и земята към LCD

Свържете захранването и заземяването към LCD дисплея
Свържете захранването и заземяването към LCD дисплея

Необходими са 3 щифта за заземяване, които да бъдат свързани към LCD дисплея. Единият ще бъде свързан към земята със самия LCD, друг ще бъде свързан към светодиода на LCD дисплея, а последният ще бъде свързан към RW. VCC на LCD и светодиода ще изискват захранване за свързване. Захранването на светодиода обаче ще изисква свързан резистор, в този случай използвах 1kΩ резистор.

Стъпка 5: Свързване на потенциометъра

Свързване на потенциометъра
Свързване на потенциометъра

Свържете потенциометъра към макета с 3 свободни колони. Той ще има 3 пина, колоната, която съдържа терминал 1 щифт, ще се нуждае от заземяване. Колоната, която съдържа 2 извода на терминала, ще се нуждае от захранване. Тогава чистачката ще има джъмпер проводник в колоната си, който се свързва с VO на LCD.

Стъпка 6: Свързване на Arduino към LCD

Свързване на Arduino към LCD
Свързване на Arduino към LCD

Пинове 8-13 на Arduino ще бъдат свързани към LCD. Пинове 8-11 на Arduino ще се свържат съответно с D8 (7-4). Тогава щифт 12 на Arduino ще се свърже с Enable на LCD, а щифт 13 на Arduino ще се свърже с регистъра на LCD.

Стъпка 7: Приложете кода

Кодът ще е необходим за използване на математически операции с клавиатурата и LCD дисплея. По -долу ще бъде кодът, който използвах, но все пак могат да бъдат приложени множество промени, за да го направя по -чист и по -добър. Така че не се колебайте да си поиграете малко с него.

#включи #включи

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

дълго първо = 0;

дълга секунда = 0;

двойно общо = 0;

int posit = 0;

char customKey;

const байт ROWS = 4;

const байт COLS = 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);

void setup () {

lcd.begin (16, 2);

lcd.setCursor (5, 0);

lcd.clear (); }

void loop () {

customKey = customKeypad.getKey ();

switch (customKey) {

регистър '0' … '9':

lcd.setCursor (0, 0);

first = first * 10 + (customKey - '0');

lcd.print (първи);

posit ++;

прекъсване;

случай '+':

първо = (общо! = 0? общо: първо);

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

lcd.print ("+");

posit ++;

second = SecondNumber ();

общо = първо + второ;

lcd.setCursor (1, 1);

lcd.print (общо);

първо = 0, втори = 0;

позиция = 0;

прекъсване;

случай '-':

първо = (общо! = 0? общо: първо);

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

lcd.print ("-");

posit ++;

second = SecondNumber ();

общо = първо - второ;

lcd.setCursor (1, 1);

lcd.print (общо);

първо = 0, втори = 0;

позиция = 0;

прекъсване;

регистър '*':

първо = (общо! = 0? общо: първо);

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

lcd.print ("*");

posit ++;

second = SecondNumber ();

общо = първа * втора;

lcd.setCursor (1, 1);

lcd.print (общо);

първо = 0, втори = 0;

позиция = 0;

прекъсване;

случай '/':

първо = (общо! = 0? общо: първо);

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

lcd.print ("/");

posit ++;

second = SecondNumber (); lcd.setCursor (1, 1);

второ == 0? lcd.print ("Грешка"): общо = (първоначално) първо / (плаващо) второ;

lcd.print (общо);

първо = 0, втори = 0;

позиция = 0;

прекъсване;

случай "C":

общо = 0;

първо = 0;

втори = 0;

позиция = 0;

lcd.clear ();

прекъсване; }

}

long SecondNumber () {

докато (1) {

customKey = customKeypad.getKey ();

if (customKey> = '0' && customKey <= '9') {

второ = второ * 10 + (customKey - '0');

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

lcd.print (втори); }

if (customKey == 'C') {

общо = 0;

първо = 0;

втори = 0;

позиция = 0;

lcd.clear ();

прекъсване; }

if (customKey == '=') {

lcd.setCursor (0, 1);

lcd.print ("=");

позиция = общо;

lcd.clear ();

lcd.setCursor (0, 1);

lcd.print ("=");

прекъсване; }

}

връщане втора;}

Стъпка 8: Резултат

Резултат
Резултат
Резултат
Резултат

Надявам се, че всички сте харесали тази инструкция. Благодаря ви за четенето!

Саим.

Препоръчано: