Guest User

Untitled

a guest
Jul 16th, 2018
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.97 KB | None | 0 0
  1. #include <Wire.h>
  2. #include <LiquidCrystal_I2C.h>
  3. #include <Keypad.h>
  4. #include <math.h>
  5. #define menu 12
  6. const byte qtdLinhas = 4; //QUANTIDADE DE LINHAS DO TECLADO
  7. const byte qtdColunas = 4; //QUANTIDADE DE COLUNAS DO TECLADO
  8. int vector[10];
  9. //CONSTRUÇÃO DA MATRIZ DE CARACTERES
  10. char matriz_teclas[qtdLinhas][qtdColunas] = {
  11. {'1', '2', '3', 'A'},
  12. {'4', '5', '6', 'B'},
  13. {'7', '8', '9', 'C'},
  14. {'*', '0', '#', 'D'}
  15. };
  16.  
  17.  
  18. // Teclado
  19. byte PinosqtdLinhas[qtdLinhas] = {11, 10, 9, 8}; //PINOS UTILIZADOS PELAS LINHAS
  20. byte PinosqtdColunas[qtdColunas] = {6, 5, 4, 3}; //PINOS UTILIZADOS PELAS COLUNAS
  21.  
  22.  
  23. // Declaração de objetos
  24.  
  25. LiquidCrystal_I2C lcd(0x3f, 20, 4);
  26.  
  27. // Variáveis Globais
  28. Keypad meuteclado = Keypad( makeKeymap(matriz_teclas), PinosqtdLinhas, PinosqtdColunas, qtdLinhas, qtdColunas);
  29. int line [4] = {0, 1, 2, 3}, line_bk[3], index, menu_number = 1;
  30. boolean menu_flag = 0,
  31. enter_flag = 0,
  32. sub_menu = 0;
  33.  
  34. // Variaveis Teclado
  35. int raio = 0;
  36. int largura = 1;
  37. int numero_de_voltas = 2;
  38. int bitola_fio = 3;
  39.  
  40.  
  41. void setup() {
  42. Serial.begin(9600);
  43. // Teclado
  44. lcd.init();
  45. //Display LCD
  46. lcd.begin(20, 4); // 20 Colunas 3 Linhas
  47. lcd.setBacklight(HIGH);
  48. lcd.setCursor(0, 0);
  49. lcd.print(">");
  50.  
  51. }
  52.  
  53. void loop() {
  54.  
  55. if (!sub_menu)
  56. {
  57. lcd.clear();
  58. lcd.setCursor(0, line[0]);
  59. lcd.print("A) Diametro/Largura");
  60. lcd.setCursor(0, line[1]);
  61. lcd.print("B) Bitola do Fio");
  62. lcd.setCursor(0, line[2]);
  63. lcd.print("C) Numero Voltas ");
  64. lcd.setCursor(0, line[3]);
  65. lcd.print("D) Quant Camadas");
  66. char entrada = meuteclado.waitForKey();
  67. switch (entrada) {
  68. case 'A':
  69. getvalue();
  70. break;
  71.  
  72. }
  73.  
  74.  
  75. }
  76.  
  77. }
  78.  
  79.  
  80. void raio_bobina()
  81. {
  82. lcd.setCursor(0, 0);
  83. lcd.print("RAIO : ");
  84. // Teclado
  85.  
  86. }
  87.  
  88. void largura_bobina()
  89. {
  90. lcd.setCursor(0, 0);
  91. lcd.print("LARGURA : ");
  92. // Teclado
  93.  
  94. }
  95. void voltas_bobina()
  96. {
  97. lcd.setCursor(0, 0);
  98. lcd.print("VOLTAS : ");
  99. // Teclado
  100.  
  101. }
  102. void bitola_bobina()
  103. {
  104. lcd.setCursor(0, 0);
  105. lcd.print("BITOLA : ");
  106. // Teclado
  107.  
  108. }
  109.  
  110. void dispMenu() {
  111.  
  112. switch (menu)
  113. {
  114.  
  115. case 0:
  116. raio_bobina();
  117. break;
  118.  
  119. case 1:
  120. largura_bobina();
  121. break;
  122.  
  123. case 2:
  124. voltas_bobina();
  125. break;
  126.  
  127. case 3:
  128. bitola_bobina();
  129. break;
  130.  
  131.  
  132. }
  133. }
  134.  
  135. int getvalue() {
  136. int value = 0;
  137. long number = 0;
  138. int i = 0;
  139. lcd.clear();
  140. lcd.setCursor(0, line[0]);
  141. lcd.print("Diametro:");
  142. lcd.setCursor(17, line[1]);
  143. lcd.print("mm");
  144. lcd.setCursor(0, line[2]);
  145. lcd.print("Largura:");
  146. lcd.setCursor(17, line[3]);
  147. lcd.print("mm");
  148.  
  149. while (value != -13) {
  150. value = (meuteclado.waitForKey() - '0');
  151. if (value == -13)break;
  152. if (i <= 3) {
  153. number += value * pow(10, i);
  154. vector[i] = value;
  155. Serial.println(vector[i]);
  156. i++;
  157. lcd.setCursor(12 + i, line[1]);
  158. lcd.print(value);
  159. }
  160. }
  161. number = 0;
  162. for (int j = i - 1; j >= 0 ; j-- ) {
  163. value = vector[j];
  164. number += value * pow(10, i - j - 1);
  165. }
  166. Serial.println(number);//trocar por return
  167.  
  168.  
  169. }
Add Comment
Please, Sign In to add comment