- Необходимые материалы:
- Принципиальная электрическая схема:
- Программа калькулятора Arduino:
- Моделирование калькулятора Arduino:
- Работа калькулятора Arduino:
Программирование - это всегда весело, и Arduino - прекрасная платформа, если вы только начинаете заниматься встроенным программированием. В этом уроке мы создадим наш собственный калькулятор с Arduino. Значения могут быть отправлены через клавиатуру (клавиатура 4 × 4), а результат можно просмотреть на ЖК-экране (точечная матрица 16 × 2). Этот калькулятор может выполнять простые операции, такие как сложение, вычитание, умножение и деление с целыми числами. Но как только вы поймете концепцию, вы сможете реализовать даже научные функции с помощью встроенных функций Arduino.
В конце этого проекта вы узнаете, как использовать ЖК-дисплей 16x2 и клавиатуру с Arduino, а также как легко их программировать с помощью доступных библиотек. Вы также поймете, как запрограммировать ваш Arduino для выполнения конкретной задачи.
Необходимые материалы:
- Arduino Uno (подойдет любая версия)
- ЖК-дисплей 16 × 2
- Клавиатура 4 × 4
- Батарея 9В
- Макетная плата и соединительные провода
Принципиальная электрическая схема:
Полная принципиальная схема этого проекта калькулятора Arduino приведена выше. Подключение + 5 В и заземление, показанное на принципиальной схеме, может быть получено от контакта 5 В и заземления Arduino. Сама Arduino может питаться от вашего ноутбука или через разъем постоянного тока с использованием адаптера 12 В или батареи 9 В.
Мы работаем с ЖК-дисплеем в 4-битном режиме с Arduino, поэтому только последние четыре бита данных ЖК-дисплея подключены к Arduino. Клавиатура будет иметь 8 выходных контактов, которые должны быть подключены от контакта 0 к контакту 7, как показано выше. Вы можете использовать следующую таблицу соединений для проверки вашего соединения с Arduino, вы также можете проверить взаимодействие клавиатуры 4x4 с Arduino.
Имя вывода Arduino: |
Соединен с: |
D0 |
1- й штифт клавиатуры |
D1 |
2- й пин клавиатуры |
D2 |
3- й контакт клавиатуры |
D3 |
4- й пин клавиатуры |
D4 |
5- й пин клавиатуры |
D5 |
6- й пин клавиатуры |
D6 |
7- й пин клавиатуры |
D7 |
8- й пин клавиатуры |
D8 |
Пин выбора регистра LCD (контакт 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 и 1 подключено что-либо, поэтому, если у вас возникли какие-либо проблемы, просто удалите клавиатуру во время загрузки программы.
После завершения подключения ваше оборудование будет выглядеть примерно так, как показано ниже.
Программа калькулятора Arduino:
Полная Arduino программы для этого проекта даются в конце этого проекта. Код разбит на небольшие значимые фрагменты и объяснен ниже.
Как было сказано ранее, мы собираемся связать ЖК-дисплей и клавиатуру с Arduino с помощью библиотек. Итак, давайте сначала добавим их в нашу Arduino IDE. Библиотека для ЖК-дисплея уже включена в ваш Arduino по умолчанию, поэтому нам не о чем беспокоиться. Для библиотеки клавиатуры нажмите ссылку, чтобы загрузить ее с Github. Вы получите ZIP-файл, затем добавьте эту библиотеку в Arduino с помощью Sketch -> Включить библиотеку -> Добавить файл.ZIP и укажите местоположение этого загруженного файла. После этого мы готовы к программированию.
Несмотря на то, что мы использовали библиотеку для использования клавиатуры, мы должны упомянуть несколько деталей (показанных ниже) о клавиатуре для Arduino. Переменные ROWS и COLS сообщают, сколько строк и столбцов имеет наша клавиатура, а раскладка клавиатуры показывает порядок, в котором клавиши присутствуют на клавиатуре. Клавиатура, которую я использую в этом проекте, выглядит так, как показано ниже, а карта клавиш также представляет то же самое.
Далее ниже мы упомянули, к каким контактам подключается клавиатура, используя массив переменных rowPins и colPins .
const byte ROWS = 4; // Четыре строки const byte COLS = 4; // Три столбца // Определение таблицы ключей char keys = {{'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. byte colPins = {4, 5, 6, 7}; // Подключите клавиатуру COL0, COL1 и COL2 к этим контактам Arduino.
После того, как мы указали, какой тип клавиатуры мы используем и как она подключена, мы можем создать клавиатуру, используя эти данные, используя строку ниже
Keypad kpd = Keypad (makeKeymap (keys), 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); // создаем ЖК-дисплей
Внутри функции настройки мы просто отображаем имя проекта, а затем переходим к циклу while, в котором находится основной проект.
По сути, мы должны проверить, набирается ли что-нибудь на клавиатуре, если вводится, мы должны распознавать, что набирается, а затем преобразовывать это в переменную, когда нажата «=», мы должны вычислить результат и, наконец, отобразить его на ЖК-дисплее. Именно это и делается внутри функции цикла, как показано ниже.
ключ = kpd.getKey (); // сохранение значения нажатой клавиши в виде символа if (key! = NO_KEY) DetectButtons (); если (результат == истина) CalculateResult (); DisplayResult ();
То, что происходит внутри каждой функции, объясняется с помощью строк комментариев, просмотрите полный код ниже, поиграйте с ним, чтобы понять, как он на самом деле работает. Если у вас есть какие-либо сомнения по поводу конкретной строки, не стесняйтесь использовать раздел комментариев или форумы.
Моделирование калькулятора Arduino:
Мы также можем попробовать смоделировать проект с помощью программы Proteus. Proteus не имеет собственного компонента Arduino, но его можно легко загрузить и добавить в его библиотеку. Когда у вас есть компонент Arduino на Proteus, просто добавьте буквенно-цифровой ЖК-дисплей и клавиатуру, чтобы выполнить соединение, как показано на принципиальной схеме.
Затем загрузите шестнадцатеричный файл отсюда и добавьте его в Arduino, дважды щелкнув по плате в Proteus и указав «программный файл» на этот загруженный шестнадцатеричный файл. Снимок симуляции показан ниже, полная работа показана на видео ниже.
Примечание. Данный шестнадцатеричный файл отличается от оригинала программы, представленной ниже. Он был изменен на, поскольку раскладка клавиатуры симулятора и реальной аппаратной клавиатуры отличается.
Работа калькулятора Arduino:
Выполните подключения согласно принципиальной схеме и загрузите приведенный ниже код. Если отображается ошибка, убедитесь, что вы добавили библиотеку в соответствии с приведенной выше инструкцией. Вы также можете попробовать симуляцию, чтобы проверить, не связана ли проблема с вашим оборудованием. Если все сделано так, как должно быть, то ваше оборудование будет выглядеть примерно так, как показано ниже, с ЖК-дисплеем, отображающим это
Поскольку используемая здесь клавиатура не имеет надлежащей маркировки, я предположил, что алфавиты будут операторами, перечисленными ниже.
Символ на клавиатуре |
Предполагается, что |
«А» |
Дополнение (+) |
«В» |
Вычитание (-) |
«C» |
Умножение (*) |
«D» |
Деление (/) |
«*» |
Очистить (C) |
«#» |
Равно (=) |
Вы можете использовать маркер, чтобы написать, что на самом деле представляет каждая кнопка.
После этого вы можете сразу начать пользоваться калькулятором. Введите число и появится во второй строке, нажмите операнд и введите второе число, наконец, нажмите клавишу «#», чтобы получить результат. Вы также можете попробовать создать этот калькулятор Arduino на основе сенсорного экрана.