596.25K
Category: informaticsinformatics

Самостоятельная работа студента: Калькулятор на Arduino

1.

2.

Самостоятельная работа студента
Тема: Калькулятор на Arduino
Выполнила: Елеубаева Гүлханым
Группа: ИСк-20-1
Электронный адрес: [email protected]

3.

Содержание
1.
2.
3.
4.
5.
6.
7.
Введение
Схема в TinkerCad
Список компонентов
Скетч
Результат работы
Заключение
Список литературы

4.

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

5.

Схема в TinkerCad
Рисунок 1 – Схема в TinkerCad

6.

Список компонентов
Имя
Количество
Компонент
K1
1
KeyPad 4x4
U1
1
Arduino Uno R3
R1
1
1 kΩ Резистор
B1
1
BreadBoard Small
U1
1
LCD, ЖК-экран 16 x 2 (I2C)

7.

#include <Keypad.h>
#include <LiquidCrystal.h>
#include <string.h>
LiquidCrystal lcd (A0,A1,A2,A3,A4,A5);
const byte ROWS=4;
const byte COLS=4;
char keys[ROWS][COLS]={
{'1','2','3','+',},
{'4','5','6','-'},
{'7','8','9','*'},
{'C','0','=','/'}
};
byte rowPins[ROWS]={12,11,10,9};
byte colPins[COLS]={8,7,6,5};
Keypad KP=Keypad(
makeKeymap(keys),
rowPins, colPins,
ROWS, COLS
);
char key;
char znak=' ';
String ch1="";
Скетч

8.

Скетч
String ch2="";
String primer="";
int i, n_znak, n;
float x,y,z;
void setup(){
lcd.begin(16,2);
lcd.clear();
lcd.setCursor(0,0);
}
void loop(){
n_znak=0;
lcd.setCursor(0,0);
ch1="";
ch2="";
key = KP.getKey();
while(key != '='){
if (key=='C'){
lcd.clear();
primer="";
break;
}

9.

Скетч
if (key != NO_KEY){
lcd.print(key);
}
primer=primer+String(key);
key = KP.getKey();
}
n=primer.length();
for (i=0;i<n;i++){
if (primer[i]=='+' || primer[i]=='-' || primer[i]=='*' || primer[i]=='/'){
n_znak=i;
break;
}
}
znak=primer[n_znak];
for (i=0;i<n_znak;i++){
ch1=ch1+primer[i];
}
x=ch1.toFloat();
for (i=n_znak+1;i<n;i++){
ch2=ch2+primer[i];
}
y=ch2.toFloat();
lcd.setCursor(0,1);

10.

Скетч
switch(znak){
case '+':
z=x+y;
lcd.print(z);
break;
case '-':
z=x-y;
lcd.print(z);
break;
case '*':
z=x*y;
lcd.print(z);
break;
case '/':
z=x/y;
lcd.print(z);
break;
}
}

11.

Результат работы
Рисунок 2 – Начало моделирования

12.

Заключение
Выполните все подключения в соответствии со схемой выше и загрузите код из предыдущего шага.
Если он показывает ошибку, убедитесь, что вы добавили библиотеки согласно инструкции, приведенной
выше. Вы также можете попробовать симуляцию, чтобы проверить, связана ли проблема с вашим
оборудованием. Если все сделано так, как должно быть, то ваше оборудование будет выглядеть примерно
как на картинке в самом начале урока.
Несмотря на то, что мы использовали библиотеку для использования клавиатуры, мы должны
упомянуть несколько деталей о самой клавиатуре для Arduino. Переменные ROWS и COLS сообщают,
сколько строк и столбцов имеет наша клавиатура, а раскладка клавиатуры показывает порядок, в котором
присутствуют клавиши на клавиатуре. Клавиатура, которую мы используем в этом уроке, выглядит так,
как показано выше. Мы также в коде упоминаем к каким контактам подключена клавиатура с помощью
массива rowPins и colPins.

13.

Список литературы
1 https://arduinoplus.ru/arduino-calculator/
2 system with Arduino // ENGINEERING ONLINE: tutorials related to circuit designing,
programming, simulation. 2018. URL: https://www.youtube.com/watch?v=37KF1krbyrM (дата
обращения: 25.11.22 г.)
3 Как работает калькулятор? И его взаимодействие с Arduino // RADIOPROG.RU: блог
радиоэлектроника. 2019. URL: https://radioprog.ru/post/737 (дата обращения: 25.11.22 г.)
4 Проект калькулятора в TinkerCad // WWW.TINKERCAD.COM: веб-приложение для 3Dпроектирования, работы с электронными компонентами и написания программного кода. URL:
https://www.tinkercad.com/things/7UOeEixfTjZ?sharecode=XjNfb5gVPYn8tOC7iPdhNIbVxe7lVvqt
KKgIq9qgDm4

14.

СПАСИБО
за внимание!
English     Русский Rules