Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Калькулятор Arduino

Компоненты и расходные материалы

Arduino UNO
× 1
Комплект ЖК-экрана RGB, дисплей 16x2 символов
× 1
Перемычки (общие)
× 1
Батарея 9 В (стандартная)
× 1
Макет (общий)
× 1

Об этом проекте

В конце этого проекта вы узнаете, как использовать ЖК-дисплей 16x2 и клавиатуру с Arduino, а также насколько легко их программировать с помощью доступных библиотек. Вы также поймете, как запрограммировать Arduino для выполнения конкретной задачи.

Необходимые материалы:

  • Arduino Uno (подойдет любая версия)
  • ЖК-дисплей 16 × 2
  • Клавиатура 4 × 4
  • Батарея 9 В
  • Макетная плата и соединительные провода

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 и 1, поэтому, если они возникнут, просто удалите клавиатуру при загрузке программы.

После завершения подключения ваше оборудование будет выглядеть примерно так:

Код

  • Файл без названия
Файл без названия Arduino
 * * Программа калькулятора клавиатуры Arduino * / # include  // Заголовочный файл для ЖК-дисплея с https://www.arduino.cc/en/Reference/LiquidCrystal#include  // Заголовок файл для клавиатуры с https://github.com/Chris--A/Keypadconst byte ROWS =4; // Четыре строки по одному байту COLS =4; // Три столбца // Определение ключей Keymapchar [ROWS] [COLS] ={{'7', '8', '9', 'D'}, {'4', '5', '6', ' C '}, {' 1 ',' 2 ',' 3 ',' B '}, {' * ',' 0 ',' # ',' A '}}; byte rowPins [ROWS] ={0, 1, 2, 3}; // Подключаем клавиатуру ROW0, ROW1, ROW2 и ROW3 к этим контактам Arduino. Byte colPins [COLS] ={4, 5, 6, 7}; // Подключите клавиатуру COL0, COL1 и COL2 к этим контактам Arduino .Keypad kpd =Keypad (makeKeymap (keys), rowPins, colPins, ROWS, COLS); // Создаем Keypadconst int rs =8, en =9, d4 =10, d5 =11, d6 =12, d7 =13; // Контакты, к которым подключен ЖК-дисплей LiquidCrystal lcd (rs, en, d4, d5, d6, d7); длинные Num1, Num2, Number; клавиша char, действие; логический результат =ложь; void setup () {lcd.begin (16, 2); // Мы используем ЖК-дисплей 16 * 2 lcd.print ("DIY Calculator"); // Отображаем вводное сообщение lcd.setCursor (0, 1); // установить курсор в столбец 0, строка 1 lcd.print ("- CircuitDigest"); // Отображаем задержку вступительного сообщения (2000); // Дождитесь отображения информации lcd.clear (); // Затем очищаем его} void loop () {key =kpd.getKey (); // сохранение значения нажатой клавиши в charif (key! =NO_KEY) DetectButtons (); if (result ==true) CalculateResult (); DisplayResult (); } void DetectButtons () {lcd.clear (); // Затем очищаем его if (key =='*') // Если нажата кнопка отмены {Serial.println ("Button Cancel"); Число =Число1 =Число2 =0; result =false;} if (key =='1') // Если нажата кнопка 1 {Serial.println ("Button 1"); если (Число ==0) Число =1; иначе Число =(Число * 10) + 1; // Нажата дважды} if (key =='4') // Если нажата кнопка 4 {Serial.println ("Button 4"); если (Число ==0) Число =4; иначе Число =(Число * 10) + 4; // Нажата дважды} if (key =='7') // Если нажата кнопка 7 {Serial.println ("Button 7"); если (Число ==0) Число =7; иначе Число =(Число * 10) + 7; // Нажат дважды} if (key =='0') {Serial.println ("Button 0"); // Кнопка 0 нажата if (Number ==0) Number =0; иначе Число =(Число * 10) + 0; // Нажата дважды} if (key =='2') // Кнопка 2 нажата {Serial.println ("Button 2"); если (Число ==0) Число =2; иначе Число =(Число * 10) + 2; // Нажат дважды} if (key =='5') {Serial.println ("Button 5"); если (Число ==0) Число =5; иначе Число =(Число * 10) + 5; // Нажат дважды} if (key =='8') {Serial.println ("Button 8"); если (Число ==0) Число =8; иначе Число =(Число * 10) + 8; // Нажат дважды} if (key =='#') {Serial.println ("Button Equal"); Num2 =Число; результат =истина; } if (key =='3') {Serial.println ("Кнопка 3"); если (Число ==0) Число =3; иначе Число =(Число * 10) + 3; // Нажат дважды} if (key =='6') {Serial.println ("Button 6"); если (Число ==0) Число =6; иначе Число =(Число * 10) + 6; // Нажат дважды} if (key =='9') {Serial.println ("Button 9"); если (Число ==0) Число =9; иначе Число =(Число * 10) + 9; // Нажат дважды} if (key =='A' || key =='B' || key =='C' || key =='D') // Обнаружение кнопок в столбце 4 {Num1 =Number; Число =0; if (key =='A') {Serial.println ("Дополнение"); действие ='+';} if (key =='B') {Serial.println («Вычитание»); действие ='-'; } if (key =='C') {Serial.println ("Умножение"); действие ='*';} если (ключ =='D') {Serial.println ("Devesion"); действие ='/';} задержка (100); }} void CalculateResult () {if (action =='+') Number =Num1 + Num2; if (действие =='-') Число =Num1-Num2; если (действие =='*') Число =Число1 * Число2; если (действие =='/') Число =Число1 / Число2; } void DisplayResult () {lcd.setCursor (0, 0); // установить курсор в столбец 0, строка 1 lcd.print (Num1); lcd.print (действие); lcd.print (Num2); если (результат ==истина) {lcd.print ("="); lcd.print (Number);} // Отображаем результат lcd.setCursor (0, 1); // установить курсор в столбец 0, строка 1 lcd.print (Number); // Отображаем результат} 

Схема


Производственный процесс

  1. Скалка
  2. Боулинг
  3. Демонстрация использования клавиатуры Arduino (HID) и предотвращение
  4. Программирование серии Atmel AT89 через Arduino
  5. Arduino Spybot
  6. Чтение PPM-сигнала RC-приемника с использованием Arduino
  7. FlickMote
  8. Самодельный телевизор B-Gone
  9. Основные часы
  10. 4-контактный ШИМ-контроль вентилятора, 25 кГц, с Arduino Uno