/*
Nome do projeto: Contador de peças
Segundo estágio- Princípio de Funcionamento de Sensor
Sensor de proximidade trabalhando na lógica inversa
Cliente: Senai- Timbó-SC
Programador: Eduarda Jasper
Data: 09-12-2023 Versão:1.0
*/
// Definição das constantes
#define Sensor 8 // Define a porta do Sensor
#define Led1 6 // Defina a porta do Led1 responsável por indicar as peças
#define Tempo 50 // Define o tempo de equalização do Sinal
#define Quantidade_Maxima 13 // Define a quantidade máxima de peças a serem contadas
#define Led_Aceso 5000 // Define o tempo que o Led fica aceso
// Definição das variáveis
int Contador = 0; // Defino a variável que irá o valor do meu sensor
bool Valor_Sensor = LOW; // Variável que irá armazenar o valor lido do sensor
bool Seta_Sensor = LOW; // Variável que indentifica a passagem da peça
void setup() // Inicialização do sistema
{
pinMode(Sensor, INPUT); // Define o Sensor como entrada
pinMode(Led1, OUTPUT); // Define Led de indicação de peça como saída
Serial.begin(9600); // Inicializa o monitor serial com 9600 bps
}
void loop() // Modo de programação em Loop
{
if(Contador >= Quantidade_Maxima) // Compara o contador com o número máximo de peças
{
digitalWrite(Led1,HIGH); // Acende o Led indicador
delay(Led_Aceso); // Deixa um tempo o Led aceso
digitalWrite(Led1, LOW); // Apaga o Led1
Contador = 0;
}
Valor_Sensor = digitalRead(Sensor); // Carrega o valor lido do Sensor
delay(Tempo); // Espera equalizar o sinal
digitalWrite(Led1,!Valor_Sensor); // Inverte o sinal do sensor (!) e envia para o Led
if(Valor_Sensor == LOW) // Testa se tem alguma peça no sensor
{
Seta_Sensor = HIGH; // Sim, então identifica a peça
}
if (Valor_Sensor == HIGH && Seta_Sensor == HIGH)
{
Contador = Contador + 1; // Ativa acrescimo do contador
Seta_Sensor = LOW; // Indentifica que a peça saiu
Serial.print("Quantidade de produtos = "); // Escreve o texto
Serial.println(Contador); // Escreve o valor contido em contador
}
}
// Fim da programação