Advertisement
adriano2018

Untitled

Dec 19th, 2017
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.20 KB | None | 0 0
  1. // Contador Linear de Filamento
  2. #include <EEPROM.h> //Bibioteca EEPROM
  3. #include <LiquidCrystal.h> //Biblioteca do LCD
  4. LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //Portas do lcd
  5. #define M1 A0 //Polia que quando da uma volta completa conta 1 pulso
  6. #define ABS A4 //Determina a linha 0 do LCD para a marcacao da metragem do ABS
  7. #define PLA A5 //Determina a linha 0 do LCD para a marcacao da metragem do PLA
  8. #define Restart 8 //Zera a Metragem de ambos os materiais
  9. #define salva 9 // Botao para salvar metragem
  10. unsigned int count = 0; //número inteiro de 16 bits sem sinal "-" (0 a 65535)
  11. unsigned int count1 = 0; //Marca a Metragem do ABS
  12. unsigned int count2 = 0; //Marca a Metragem do PLA
  13. int getCont(); //Contagem da Metragem
  14. int endereco = 10;
  15. // Setup --------------------------------------------------------------
  16. void setup()
  17. {
  18. Serial.begin(9600);
  19. lcd.begin(16, 2); // iniciando o lcd
  20. lcd.setCursor(0, 0);
  21. lcd.print("Fila-ABS:");
  22. lcd.setCursor(0, 1);
  23. lcd.print("Fila-PLA:");
  24. // Estas 2 linhas servem para zerar a EEPROM 10 e 12
  25. // Comentar depois do primeiro uso.
  26. //EEPROM.put(endereco, 0); // Salva 0 em EEPROM 10
  27. //EEPROM.put(endereco + 2, 02); // Salva 0 em EEPROM 12
  28.  
  29. pinMode(M1, INPUT_PULLUP);
  30. pinMode(Restart, INPUT_PULLUP);
  31. pinMode(salva, INPUT_PULLUP); // Port salva INPUT e Pullup
  32. EEPROM.get( endereco, count1 ); // Recupera count1
  33. EEPROM.get( endereco + 2, count2 ); // Recupera count2
  34. }
  35. // Loop ---------------------------------------------------------------
  36. void loop()
  37. {
  38. if (digitalRead(salva) == LOW) // Se salva foi pressionado
  39. {
  40. delay(30); // Debouncing
  41. if (digitalRead(salva) == LOW) // Se salva continua pressionado
  42. {
  43. EEPROM.put(endereco, count1); // Salva count1 em EEPROM 10
  44. EEPROM.put(endereco + 2, count2); // Salva count1 em EEPROM 12
  45. }
  46. }
  47. if (digitalRead(ABS) == HIGH)
  48. {
  49. count1 += getCont();
  50. } else if (digitalRead(PLA) == HIGH)
  51. {
  52. count2 += getCont();
  53. }
  54. if (digitalRead(Restart) == LOW ) { // Atribui nível lógico baixo ao pino Zerando o Contador
  55. count = 0;
  56. count1 = 0;
  57. count2 = 0;
  58. lcd.setCursor(10, 0);
  59. lcd.print(" ");
  60. lcd.setCursor(10, 0);
  61. lcd.print(count1);
  62. lcd.setCursor(10, 1);
  63. lcd.print(" ");
  64. lcd.setCursor(10, 1);
  65. lcd.print(count2);
  66. }
  67. // Metragem Filamento ABS
  68. lcd.setCursor(13, 0);
  69. lcd.print("Mts");
  70. lcd.setCursor(10, 0);
  71. lcd.print(count1);
  72.  
  73. // Metragem Filamento PLA
  74. lcd.setCursor(13, 1);
  75. lcd.print("Mts");
  76. lcd.setCursor(10, 1);
  77. lcd.print(count2);
  78. }
  79. // -----------------------Funcao para a contagem da Metragem
  80. int getCont()
  81. {
  82. count = 0;
  83. if (digitalRead(M1) == LOW)
  84. {
  85. count = + 1;
  86. while (digitalRead(M1) == LOW) {};
  87. delay(50);
  88. }
  89. return count;
  90. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement