- Необходими материали:
- Електрическа схема:
- Програма за калкулатор Arduino:
- Симулация на калкулатор Arduino:
- Работа на калкулатора Arduino:
Програмирането винаги е забавно и Arduino е прекрасна платформа, ако тепърва започвате с вграденото програмиране. В този урок ще изградим собствен калкулатор с Arduino. Стойностите могат да се изпратят чрез клавиатура (4 × 4 клавиатура) и резултатът може да се види на LCD екран (16 × 2 матрица). Този калкулатор може да извършва прости операции като събиране, изваждане, умножение и деление с цели числа. Но след като разберете концепцията, можете да внедрите дори научни функции с вградените функции на Arduino.
В края на този проект ще знаете как да използвате LCD 16x2 и клавиатура с Arduino, както и колко лесно е да ги програмирате с помощта на лесно достъпните библиотеки. Също така ще разберете как да програмирате вашия Arduino за изпълнение на определена задача.
Необходими материали:
- Arduino Uno (всяка версия ще работи)
- 16 × 2 LCD дисплей
- 4 × 4 клавиатура
- 9V батерия
- Макет и свързващи проводници
Електрическа схема:
Пълната електрическа схема на този проект за калкулатор Arduino е дадена по-горе. Връзката + 5V и заземяване, показана на електрическата схема, може да бъде получена от 5V и заземяващия щифт на Arduino. Самият Arduino може да се захранва от вашия лаптоп или през DC жака с помощта на 12V адаптер или 9V батерия.
Работим с LCD в 4-битов режим с Arduino, така че само последните четири бита за данни на LCD са свързани към Arduino. Клавиатурата ще има 8 изходни щифта, които трябва да бъдат свързани от щифт 0 до щифт 7, както е показано по-горе. Можете да използвате следната таблица на връзките, за да проверите връзката си с Arduino, можете също да проверите взаимодействието на клавиатурата 4x4 с Arduino.
Име на Arduino Pin: |
Свързан с: |
D0 |
1- ви щифт на клавиатурата |
D1 |
2- ри щифт на клавиатурата |
D2 |
3 -ти щифт на клавиатурата |
D3 |
4 -ти щифт на клавиатурата |
D4 |
5 -ти щифт на клавиатурата |
D5 |
6 -ти щифт на клавиатурата |
D6 |
7 -ми щифт на клавиатурата |
D7 |
8 -ми щифт на клавиатурата |
D8 |
Регистрирайте избрания щифт на LCD (щифт 4) |
D9 |
Активиране на щифт на LCD (щифт 6) |
D10 |
ПИН за данни 4 (извод 11) |
D11 |
ПИН за данни 4 (извод 11) |
D12 |
ПИН за данни 4 (извод 11) |
D13 |
ПИН за данни 4 (извод 11) |
+ 5V |
Свързан с Vdd щифт на LCD (щифт 2) |
Земя |
Свързан с Vss, Vee и RW щифт на LCD (щифтове 1,3 и 5) |
Някои дъски на Arduino може да показват грешка при качване на програма, ако има нещо, свързано с щифтове 0 и pin1, така че ако имате някакви, просто премахнете клавиатурата, докато качвате програмата.
След като свържете връзките си, вашият хардуер ще изглежда по следния начин
Програма за калкулатор Arduino:
Най- пълен Arduino програмата за този проект се дава в края на този проект. Кодът е разделен на малки смислени парчета и е обяснен по-долу.
Както беше казано по-рано, ще свържем LCD и клавиатурата с Arduino, използвайки библиотеки. Така че нека първо да ги добавим към нашата ID на Arduino. Библиотеката за LCD вече е включена във вашия Arduino по подразбиране, така че не е нужно да се притесняваме за това. За библиотека на клавиатурата щракнете върху връзката, за да я изтеглите от Github. Ще получите ZIP файл, след това добавете тази библиотека към Arduino чрез Sketch -> Включване на библиотека -> Добавяне на.ZIP файл и посочете местоположението към този изтеглен файл. След като приключим, всички сме готови за програмиране.
Въпреки че използвахме библиотека за използване на клавиатура, трябва да споменем няколко подробности (показани по-долу) за клавиатурата на Arduino. Променливата ROWS и COLS ще покаже колко редове и колони има нашата клавиатура и картата на клавиатурата показва реда, в който клавишите присъстват на клавиатурата. Клавиатурата, която използвам в този проект, изглежда по-долу на картата с ключове, също представлява същото.
По-нататък споменахме към кои щифтове е свързана клавиатурата с помощта на променливия масив rowPins и colPins .
const байт ROWS = 4; // Четири реда const байт COLS = 4; // Три колони // Определете клавишите charmap на Keymap = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, { '7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; byte rowPins = {0, 1, 2, 3}; // Свържете клавиатурата ROW0, ROW1, ROW2 и ROW3 към тези Arduino щифтове. байт colPins = {4, 5, 6, 7}; // Свържете клавиатурата COL0, COL1 и COL2 към тези Arduino щифтове.
След като споменем какъв тип клавиатура използваме и как е свързана, можем да създадем клавиатурата, като използваме тези подробности, като използваме реда по-долу
Клавиатура kpd = клавиатура (makeKeymap (клавиши), rowPins, colPins, ROWS, COLS); // Създаване на клавиатурата
По същия начин трябва да кажем и към кои изводи на Arduino е свързан LCD дисплеят. Според нашата електрическа схема дефинициите ще бъдат както по-долу
const int rs = 8, en = 9, d4 = 10, d5 = 11, d6 = 12, d7 = 13; // щифтове, към които е свързан LCD LiquidCrystal lcd (rs, en, d4, d5, d6, d7); // създаване на LCD
Във вътрешността на настройка функция, ние просто се покаже името на проекта и след това да се пристъпи към линия, докато в които основната лъжите на проекта.
По принцип трябва да проверим дали нещо се въвежда на клавиатурата, ако е въведено, трябва да разпознаем какво се пише и след това да го преобразуваме в променлива, когато е натиснато „=“, трябва да изчислим резултата и след това да го покажем накрая на LCD дисплея. Точно това се прави във вътрешността на цикъла, както е показано по-долу
ключ = kpd.getKey (); // съхраняване на стойността на натиснат клавиш в знак, ако (ключ! = NO_KEY) DetectButtons (); if (result == true) CalculateResult (); DisplayResult ();
Какво се случва във всяка функция е обяснено с помощта на редовете за коментари, преминете през пълния код по-долу, бъркайте с него, за да разберете как всъщност работи. Ако имате някакви съмнения по конкретен ред, не се колебайте да използвате раздела за коментари или форумите.
Симулация на калкулатор Arduino:
Можем също да опитаме да симулираме проекта, като използваме софтуера Proteus. Proteus няма самостоятелен компонент Arduino, но може лесно да бъде изтеглен и добавен към библиотеката си. След като инсталирате компонента Arduino на Proteus, просто добавете буквено-цифров LCD и клавиатура, за да осъществите връзката, както е показано на схемата.
След това изтеглете шестнадесетичния файл от тук и го добавете към Arduino, като щракнете двукратно върху борда в Proteus и насочете „програмния файл“ към този изтеглен шестнадесетичен файл. Една моментна снимка на симулацията е показана по-долу, пълната работа е показана във видеото по-долу.
Забележка: Даденият шестнадесетичен файл не е същият като оригинала на програмата, даден по-долу. Той е модифициран, тъй като клавиатурата на симулационната клавиатура и действителната хардуерна клавиатура е различна.
Работа на калкулатора Arduino:
Направете връзките според електрическата схема и качете кода по-долу. Ако показва грешка, уверете се, че сте добавили библиотеката според инструкциите, дадени по-горе. Можете също така да опитате симулацията, за да проверите дали проблемът е във вашия хардуер. Ако всичко е направено така, както е трябвало да бъде, тогава вашият хардуер ще изглежда нещо подобно по-долу с LCD дисплея
Тъй като клавиатурата, използвана тук, няма правилни маркировки, предположих, че азбуките са оператори, както е изброено по-долу
Символ на клавиатурата |
Предполага се |
„А“ |
Добавяне (+) |
„Б“ |
Изваждане (-) |
"° С" |
Умножение (*) |
"Д" |
Отдел (/) |
„*“ |
Ясно (C) |
„#“ |
Равен (=) |
Можете да използвате маркер, за да напишете какво всъщност представлява всеки бутон.
С това можете директно да започнете да използвате калкулатора. Напишете номера и ще се появи на втория ред, натиснете операнда и въведете втория си номер, накрая натиснете бутона "#", за да получите резултата си. Можете също така да опитате да изградите този калкулатор Arduino, базиран на сензорен екран.