- Необхідні матеріали:
- Кругова діаграма:
- Програма калькулятора Arduino:
- Моделювання калькулятора Arduino:
- Робота калькулятора Arduino:
Програмування - це завжди весело, а Arduino - чудова платформа, якщо ви тільки починаєте працювати з вбудованим програмуванням. У цьому посібнику ми створимо власний калькулятор з Arduino. Значення можна надсилати через клавіатуру (клавіатура 4 × 4), а результати можна переглядати на РК-екрані (матриця 16 × 2 точки). Цей калькулятор може виконувати такі прості операції, як додавання, віднімання, множення та ділення з цілими числами. Але як тільки ви зрозумієте концепцію, ви зможете реалізувати навіть наукові функції за допомогою вбудованих функцій Arduino.
Наприкінці цього проекту ви дізнаєтесь, як використовувати РК-дисплей та клавіатуру 16x2 з Arduino, а також наскільки легко програмувати їх за допомогою доступних бібліотек. Ви також зрозумієте, як запрограмувати ваш Arduino на виконання певного завдання.
Необхідні матеріали:
- Arduino Uno (Будь-яка версія буде працювати)
- РК-дисплей 16 × 2
- Клавіатура 4 × 4
- 9 В акумулятор
- Макет та з'єднувальні дроти
Кругова діаграма:
Повна принципова схема цього проекту Arduino Calculator подана вище. З'єднання + 5 В і заземлення, показане на електричній схемі, можна отримати за допомогою 5 В і заземлення Arduino. Сам Arduino можна живити від вашого ноутбука або через роз'єм постійного струму за допомогою адаптера 12 В або акумулятора 9 В.
Ми працюємо з РК-дисплеєм у 4-розрядному режимі з Arduino, тому до 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 |
Зареєструйте обраний штифт РК (контакт 4) |
D9 |
Увімкнути штифт РК-дисплея (штифт 6) |
D10 |
Контакт 4 даних (контакт 11) |
D11 |
Контакт 4 даних (контакт 11) |
D12 |
Контакт 4 даних (контакт 11) |
D13 |
Контакт 4 даних (контакт 11) |
+ 5В |
Підключений до виводу Vdd РК-дисплея (контакт 2) |
Земля |
Підключений до Vss, Vee та RW штифта РК (контакт 1,3 і 5) |
Деякі плати Arduino можуть виявляти помилку під час завантаження програми, якщо є щось підключене до контактів 0 та pin1, тому, якщо у вас виникли проблеми, просто видаліть клавіатуру під час завантаження програми.
Після завершення з’єднання апаратне забезпечення буде виглядати приблизно так нижче
Програма калькулятора Arduino:
Повна Arduino програми для цього проекту даються в кінці цього проекту. Код розділений на невеликі значущі фрагменти і пояснено нижче.
Як вже говорилося раніше, ми збираємось взаємодіяти РК-дисплей і клавіатуру з Arduino за допомогою бібліотек. Тож давайте спочатку додамо їх до нашого IDE Arduino. Бібліотека для рідкокристалічного екрану вже включена у ваш Arduino за замовчуванням, тому нам не потрібно про це турбуватися. Для бібліотеки клавіатури натисніть на посилання, щоб завантажити її з Github. Ви отримаєте ZIP-файл, потім додайте цю бібліотеку до Arduino за допомогою Sketch -> Включити бібліотеку -> Додати.ZIP-файл і вкажіть місце розташування на цей завантажений файл. Після цього ми всі готові до програмування.
Незважаючи на те, що ми використовували бібліотеку для використання клавіатури, ми повинні згадати кілька деталей (показаних нижче) про клавіатуру Arduino. Змінна ROWS і COLS покаже, скільки рядків і стовпців має наша клавіатура, а карта клавіш показує порядок, в якому клавіші присутні на клавіатурі. Клавіатура, яку я використовую в цьому проекті, виглядає так, як показано нижче на карті ключів, також представляє те ж саме.
Далі нижче ми згадали, до яких контактів підключена клавіатура, використовуючи змінний масив rowPins та colPins .
const байт РЯДКИ = 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 підключений РК-дисплей. Відповідно до нашої принципової схеми визначення будуть такими, як показано нижче
const int rs = 8, en = 9, d4 = 10, d5 = 11, d6 = 12, d7 = 13; // Шпильки, до яких підключений РК-дисплей LiquidCrystal lcd (rs, en, d4, d5, d6, d7); // створити РК
Усередині установки функції, ми просто відобразити ім'я проекту, а потім перейти до в той час як цикл, в якому основний проект брехні.
По суті, ми повинні перевірити, чи набрано що-небудь на клавіатурі, якщо набрано, ми повинні розпізнати, що вводиться, а потім перетворити його у змінну, коли натиснуто “=”, ми повинні обчислити результат і, нарешті, відобразити його на РК-дисплеї. Це саме те, що робиться всередині функції циклу, як показано нижче
ключ = kpd.getKey (); // зберігання натиснутого значення клавіші в символі if (key! = NO_KEY) DetectButtons (); if (result == true) CalculateResult (); DisplayResult ();
Що відбувається всередині кожної функції, пояснюється за допомогою рядків коментарів, перегляньте повний код нижче, возитися з ним, щоб зрозуміти, як це насправді працює. Якщо у вас є сумніви щодо конкретного рядка, сміливо використовуйте розділ коментарів або форуми.
Моделювання калькулятора Arduino:
Ми також можемо спробувати змоделювати проект за допомогою програмного забезпечення Proteus. Proteus не має компонента Arduino самостійно, але його можна легко завантажити та додати до своєї бібліотеки. Отримавши компонент Arduino на Proteus, просто додайте буквено-цифровий РК-дисплей та клавіатуру, щоб встановити з'єднання, як показано на схемі.
Потім завантажте шістнадцятковий файл звідси і додайте його до Arduino, двічі клацнувши на дошці в Proteus і наведіть “програмний файл” на цей завантажений шістнадцятковий файл. Знімок симуляції показаний нижче, а повна робота - на відео нижче.
Примітка: Наведений шістнадцятковий файл не такий же, як оригінал наведеної нижче програми. Його було змінено з того часу, як клавіатура симуляційної клавіатури і фактична апаратна клавіатура відрізняється.
Робота калькулятора Arduino:
Зробіть підключення відповідно до електричної схеми та завантажте код нижче. Якщо відображається помилка, переконайтеся, що ви додали бібліотеку згідно з інструкцією, наведеною вище. Ви також можете спробувати моделювання, щоб перевірити, чи проблема не у вашому обладнанні. Якщо все буде зроблено так, як це мало бути, тоді ваше обладнання буде виглядати приблизно так нижче, а РК-дисплей відображатиме це
Оскільки на клавіатурі, яка використовується тут, немає належних позначень, я вважаю, що алфавіти є операторами, як зазначено нижче
Символ на клавіатурі |
Передбачається |
"А" |
Додавання (+) |
“B” |
Віднімання (-) |
“С” |
Множення (*) |
"D" |
Відділ (/) |
“*” |
Прозорий (C) |
"#" |
Дорівнює (=) |
За допомогою маркера можна написати, що насправді представляє кожна кнопка.
Після цього ви можете безпосередньо розпочати користуватися калькулятором. Введіть номер і з’явиться у другому рядку, натисніть операнд, а друге число введіть, нарешті, натисніть клавішу “#”, щоб отримати результат. Ви також можете спробувати створити цей сенсорний калькулятор Arduino.