// Contador Linear de Filamento // // Made by Adriano Manzano #include #include //Biblioteca do LCD LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //Portas do lcd #define M1 A0 #define ABS A4 #define PLA A5 #define Restart 8 unsigned int count = 0; //número inteiro de 16 bits sem sinal "-" (0 a 65535) unsigned int count1 = 0; unsigned int count2 = 0; int getCont(); //Numero a ser armazenado int numero = count1; int endereco = 0; // 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:"); pinMode(M1, INPUT_PULLUP); pinMode(Restart, INPUT_PULLUP); Serial.begin(9600); } // Loop --------------------------------------------------------------- void loop() { 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); Serial.print("Gravando numero na memoria EEPROM : "); Serial.println(numero); EEPROM.write(endereco, numero); delay(2000); //Leitura Serial.print("Lendo numero da memoria EEPROM : "); Serial.println(EEPROM.read(endereco)); while(1) {} } // Metragem Filamento ABS lcd.setCursor(14,0); lcd.print("Mts"); lcd.setCursor(10,0); lcd.print(count1); // Metragem Filamento PLA lcd.setCursor(14,1); lcd.print("Mts"); lcd.setCursor(10,1); lcd.print(count2); } // Funcao para a contagem dos pontos int getCont(){ count = 0; if (digitalRead(M1) == LOW) { count =+ 1; while(digitalRead(M1) == LOW){}; delay(50); } return count; }