Рубрики
Схемы на Arduino

Калькулятор с использованием клавиатуры 4х4 и Arduino

В этой статье мы рассмотрим проектирование калькулятора на основе платы Arduino и клавиатуры (клавишной панели) 4х4. Результаты работы калькулятора будут показываться на жидкокристаллическом (ЖК) дисплее 16×2. Калькулятор будет способен выполнять простейшие математические операции: сложение, вычитание, умножение и деление с целыми числами. Но если вы поймете суть данного проекта, то вы на его основе в дальнейшем сможете реализовать и научный калькулятор, используя встроенные в Arduino математические функции.

Также вы можете прочитать статью про калькулятор на основе Arduino и сенсорного TFT ЖК дисплея.

Необходимые компоненты

  1. Плата Arduino Uno (купить на AliExpress) (любая другая версия также подойдет).
  2. ЖК дисплей 16х2 (купить на AliExpress).
  3. Клавиатура 4х4 (купить на AliExpress).
  4. Батарейка на 9 В.
  5. Макетная плата и соединительные провода.

Работа схемы

Схема проектируемого нами калькулятора представлена на следующем рисунке.

Напряжение +5V и землю для схемы можно непосредственно получить с контактов 5V и ground платы Arduino. Саму плату Arduino можно запитать от компьютера через USB кабель, от батарейки 9 В или адаптера на 12 В.

ЖК дисплей подключен к плате Arduino в 4-битном режиме, то есть используются 4 его контакта данных. Клавиатура имеет 8 выходных контактов, которые подключены к контактам 0-7 платы Arduino. Для более детального изучения данного вопроса вы можете прочитать статью про подключение клавиатуры 4х4 к плате Arduino.

Необходимые соединения в представленной схеме показаны в следующей таблице.

Контакт Arduino Куда подсоединен
D0 1-й контакт клавиатуры
D1 2-й контакт клавиатуры
D2 3-й контакт клавиатуры
D3 4-й контакт клавиатуры
D4 5-й контакт клавиатуры
D5 6-й контакт клавиатуры
D6 7-й контакт клавиатуры
D7 8-й контакт клавиатуры
D8 Register select pin of LCD (pin 4)
D9 Enable pin of LCD (pin 6)
D10 Data pin 4 (pin 11)
D11 Data pin 4 (pin 11)
D12 Data pin 4 (pin 11)
D13 Data pin 4 (pin 11)
+5V Vdd pin of LCD (pin 2)
Ground Vss,Vee and RW pin of LCD (pin 1,3 and 5)

Некоторые платы Arduino могут выдавать ошибку при загрузке в них программы в то время когда что-либо подсоединено к их контактам 0 и 1. Поэтому если вы столкнулись с такой ошибкой, просто отключите клавиатуру на время загрузки программы.

Когда все соединения в схеме сделаны, ваша конструкция должна выглядеть примерно следующим образом:

Объяснение программы для Arduino

Полный код программы приведен в конце статьи, здесь же мы рассмотрим его наиболее важные фрагменты.

Вначале в программе для Arduino необходимо подключить библиотеки, которые мы будем использовать. Библиотека для работы с ЖК дисплеем по умолчанию присутствует в Arduino IDE. А библиотеку для работы к клавиатурой необходимо скачать с Github. По приведенной ссылке вы скачаете ZIP файл с библиотекой, добавьте ее в Arduino IDE с помощью инструкции Sketch -> Include Library -> Add .ZIP и укажите путь к файлу с библиотекой.

Перед началом работы с клавиатурой мы должны в программе с помощью переменных ROWS и COLS указать какое количество строк и столбцов имеет клавиатура, которую мы подключаем к плате Arduino. Также мы должны указать карту клавиатуры, то есть какие клавиши она имеет в своем составе и на каких местах.

После указания необходимых параметров клавиатуры нам необходимо создать объект клавиатуры, с которым мы дальше будем работать в программе.

Также в программе мы должны указать к каким контактам Arduino подключен ЖК дисплей. В соответствии с соединениями на нашей схеме мы должны использовать следующие команды:

Внутри функции setup мы просто будем высвечивать на ЖК дисплее имя нашего проекта и после этого сразу переходить к функции loop.

В функции loop мы должны проверять печатается ли что либо на клавиатуре, если печатается, то мы должны распознать что печатается и поместить введенные числа в соответствующие переменные. А после нажатия клавиши “=” мы должны рассчитать результат операции и высветить его на экране ЖК дисплея.

Моделирование работы нашего калькулятора на Arduino

Мы смоделировали работу проектируемого нами калькулятора в симуляторе Proteus. По умолчанию данный симулятор не умеет работать с Arduino, но однако данный компонент можно легко скачать и добавить в его библиотеки. После установки компонента Arduino в Proteus просто добавьте на схему в нем алфавитно-цифровой ЖК дисплей, клавиатуру и сделайте соединения как показано на схеме.

Вид нашей схемы в симуляторе Proteus показан на следующем рисунке. Более подробно работа этой части проекта показана на видео, приведенном в конце статьи.

Работа проекта

После того, как все необходимые соединения сделаны, вы можете загружать программу в плату Arduino. После загрузки программы вы можете непосредственно приступать к тестированию работы проекта.

Поскольку используемая нами клавиатура не имеет клавиш математических операций и некоторых других нужных нам клавиш, то мы вместо них будем использовать клавиши с буквами как показано в следующей таблице.

Клавиша клавиатуры Выполняемое действие
“A” Сложение (+)
“B” Вычитание (-)
“C” Умножение (*)
“D” Деление (/)
“*” Очистить экран (C)
“#” Равно (=)

При необходимости вы можете подписать эти клавиши на клавиатуре маркером.

Принцип работы на данном калькуляторе заключается в следующем. Напишите число и оно появится на второй строчке дисплея, нажмите клавишу с видом операции, затем введите второе число. После этого нажмите клавишу “#” чтобы получить результат вычислений.

Исходный код программы

Если у вас есть вопросы по коду приведенной программы, то вы можете задать их в комментариях к данной статье.

Видео, демонстрирующее работу калькулятора

4 ответа к “Калькулятор с использованием клавиатуры 4х4 и Arduino”

спасибо блин собирал пол часа а он не работает все проверил все по схеме

Что конкретно не работает? Возможно стоит начать с простого и проверить работу программы по небольшим частям. Начать хотя бы с проверки правильности обработки нажатий клавиш на клавиатуре. Проект сравнительно несложный, можно разбить его на части и таким образом найти где закралась ошибка

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *