Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Contador Linear de Filamento
- #include <EEPROM.h> //Bibioteca EEPROM
- #include <LiquidCrystal.h> //Biblioteca do LCD
- LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //Portas do lcd
- #define M1 A0 //Polia que quando da uma volta completa conta 1 pulso
- #define ABS A4 //Determina a linha 0 do LCD para a marcacao da metragem do ABS
- #define PLA A5 //Determina a linha 0 do LCD para a marcacao da metragem do PLA
- #define Restart 8 //Zera a Metragem de ambos os materiais
- #define salva 9 // Botao para salvar metragem
- unsigned int count = 0; //número inteiro de 16 bits sem sinal "-" (0 a 65535)
- unsigned int count1 = 0; //Marca a Metragem do ABS
- unsigned int count2 = 0; //Marca a Metragem do PLA
- int getCont(); //Contagem da Metragem
- int endereco = 10;
- // Setup --------------------------------------------------------------
- void setup()
- {
- Serial.begin(9600);
- lcd.begin(16, 2); // iniciando o lcd
- lcd.setCursor(0, 0);
- lcd.print("Fila-ABS:");
- lcd.setCursor(0, 1);
- lcd.print("Fila-PLA:");
- // Estas 2 linhas servem para zerar a EEPROM 10 e 12
- // Comentar depois do primeiro uso.
- //EEPROM.put(endereco, 0); // Salva 0 em EEPROM 10
- //EEPROM.put(endereco + 2, 02); // Salva 0 em EEPROM 12
- pinMode(M1, INPUT_PULLUP);
- pinMode(Restart, INPUT_PULLUP);
- pinMode(salva, INPUT_PULLUP); // Port salva INPUT e Pullup
- EEPROM.get( endereco, count1 ); // Recupera count1
- EEPROM.get( endereco + 2, count2 ); // Recupera count2
- }
- // Loop ---------------------------------------------------------------
- void loop()
- {
- if (digitalRead(salva) == LOW) // Se salva foi pressionado
- {
- delay(30); // Debouncing
- if (digitalRead(salva) == LOW) // Se salva continua pressionado
- {
- EEPROM.put(endereco, count1); // Salva count1 em EEPROM 10
- EEPROM.put(endereco + 2, count2); // Salva count1 em EEPROM 12
- }
- }
- if (digitalRead(ABS) == HIGH)
- {
- count1 += getCont();
- } else if (digitalRead(PLA) == HIGH)
- {
- count2 += getCont();
- }
- if (digitalRead(Restart) == LOW ) { // Atribui nível lógico baixo ao pino Zerando o Contador
- count = 0;
- count1 = 0;
- count2 = 0;
- lcd.setCursor(10, 0);
- lcd.print(" ");
- lcd.setCursor(10, 0);
- lcd.print(count1);
- lcd.setCursor(10, 1);
- lcd.print(" ");
- lcd.setCursor(10, 1);
- lcd.print(count2);
- }
- // Metragem Filamento ABS
- lcd.setCursor(13, 0);
- lcd.print("Mts");
- lcd.setCursor(10, 0);
- lcd.print(count1);
- // Metragem Filamento PLA
- lcd.setCursor(13, 1);
- lcd.print("Mts");
- lcd.setCursor(10, 1);
- lcd.print(count2);
- }
- // -----------------------Funcao para a contagem da Metragem
- int getCont()
- {
- count = 0;
- if (digitalRead(M1) == LOW)
- {
- count = + 1;
- while (digitalRead(M1) == LOW) {};
- delay(50);
- }
- return count;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement