Форум программистов, компьютерный форум, киберфорум
Arduino
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 25.03.2017
Сообщений: 79
1

простой калькулятор

13.03.2018, 00:01. Просмотров 1594. Ответов 2
Метки нет (Все метки)

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
#include <Keypad.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(7,8,9,10,11,12); 
 
long num1,num2 ;
double total;
char operation,button;
 
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] = {A2,A3,A4,A5}; 
byte colPins[COLS] = {2,3,4,5};     
Keypad customKeypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS);
 
 
void setup() 
{
  pinMode(13, OUTPUT);
  digitalWrite(13, LOW);
  lcd.begin(16,2);
 
 
}
 
void loop()
{
  
 
  while(1)
  {
     
        
    button = customKeypad.getKey(); 
    if (button=='C') 
    {
      num1=0;
      num2=0;
      total=0;
      operation=0;
      lcd.clear();
    }
        
    if (button >='0' && button <='9') 
    {
      num1 = num1*10 + (button -'0'); 
     
      lcd.setCursor(0,0); 
      lcd.print(num1);    
    }
    
    if (num1 !=0 && (button=='-' || button=='+' || button=='*' || button=='/')) 
    {
     
      operation = button;  
      lcd.setCursor(0,1);  
      lcd.print(operation); 
      break;
    }
 
  }
    
  while(1) 
  {
    
    if (button =='C')
      break;
    button = customKeypad.getKey();
    if (button=='C') 
    {
      num1=0;
      num2=0;
      total=0;
      operation=0;
      lcd.clear();
      break;
    }
    if (button >='0' && button <='9') 
    {
      num2 = num2*10 + (button -'0');
      lcd.setCursor(1,1);
      lcd.print(num2);
    }
    if (button == '=' && num2 !=0)
    {       
      domath();             
      break;  
    }
  }
    
  while(1) 
  {
        
    if (button =='C')
      break;
 
    button = customKeypad.getKey();
    if (button =='C') 
    {
      lcd.clear();
      lcd.setCursor(0,0);
      num1=0;
      num2=0;
      total=0;
      operation=0;
      break;
    }
  }
 
}
 
 
void domath()
{
  switch(operation)
  {
    case '+': 
      total = num1+num2;
      break;
      
    case '-': 
      total = num1-num2;
      break;
      
    case '/': 
      total = (float)num1/(float)num2;
      break;
      
    case '*': 
      total = num1*num2;
      break;
          
  }
    
  lcd.setCursor(0,1);
  lcd.print('=');
  lcd.setCursor(1,1);
  lcd.print(total);   
}


Код не работает, на дисплей ничего не виводить, помогите где ошибка?
0
Миниатюры
простой калькулятор  
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.03.2018, 00:01
Ответы с готовыми решениями:

простой калькулятор
Хочу сделать небольшой домашний проект - калькулятор на Ардуино. Как в IDE привязать число к...

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

Калькулятор (простой)
Уважаемые форумчане! Ранее всегда пользовался 1st Calculator, но в настоящее время не имею...

Простой калькулятор
Написать WSH сценарий, который: Запросит у пользователя два числа Запросит одну из 4 операций...

2
Просто Лис
Эксперт Python
4005 / 2460 / 874
Регистрация: 17.05.2012
Сообщений: 7,479
Записей в блоге: 9
13.03.2018, 14:24 2
Насколько я вижу, клавиатура подключена не туда. Для неё в коде указаны пины 2,3,4,5,A2,A3,A4,A5.
0
0 / 0 / 0
Регистрация: 25.03.2017
Сообщений: 79
13.03.2018, 14:26  [ТС] 3
Подключил к 2 3 4 5 и 6 7 8 9 не работает
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.03.2018, 14:26

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Простой калькулятор
Не могу понять что не так. При запуске принимает num1 num2 и operationType(=-*/), но вместо выдачи...

Простой калькулятор
Здравствуйте! Помогите пожалуйста сделать так, чтобы калькулятор считал корень, проценты, &quot;+/-&quot; и...

Простой калькулятор
Суть задания написать обычный калькулятор который берёт данные из html формы. Собственно не сложное...

Простой калькулятор
Первая программа после Hello Word. Пользователь вводит например (3-1)*2 А в ответе выводится...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.