Nao consegui fazer ele contar

#define liga 3
#define des 2
#define motor 4

int contar=0 ;

void setup(){

pinMode (liga,INPUT_PULLUP);
pinMode (des,INPUT_PULLUP);
pinMode (motor,OUTPUT);
Serial.begin(9600);
}

void loop(){

if (!digitalRead(liga)){

digitalWrite(motor,HIGH);  

}
if(!digitalRead(des)){
contar=contar+1;

if(contar==5)
  digitalWrite(motor,LOW);
delay(100);

Serial.println(contar);
 contar=0;

}
while (!digitalRead(des)){
}

}

Olá Nilton! Explica melhor pra gente o que você quer!
Outra coisa, sempre que for colocar um código, coloque dentro das palavras [CODE] e [/CODE], pois fica bem mais legível!

Abraços, fique com Deus!

Pelo que entendi, você precisa de algo que conte o numero de partidas do motor e depois de um determinado numero ele de um tempo de descanso, para perceber eu tive que deixar um tempo razoável, senão fica imperceptível, eu recomendaria também que você assisti-se as aulas abaixo, acredito que vai te ajudar no aprendizado:

https://www.youtube.com/watch?v=9LuIXz4Outk

Acredito que esse código faça isso, não esta muito elegante, mas estou aprendendo ainda:

#define liga 2
#define des 3
#define motor 4
int estado = 0;
int contador = 0;

void setup(){
  
  pinMode (liga, INPUT);
  pinMode (des, INPUT);
  pinMode(motor, OUTPUT);
  
  Serial.begin(9600);
}
  

  void loop(){
   if (contador >= 5){
    delay(10000);
    contador = 0; 
   }
   
    if ((digitalRead(liga)== 1)){
    estado = 1;
    }
     if ((digitalRead(des)==1)){
    estado = 0;
    }
    if (estado == 1){
      digitalWrite(motor, HIGH);
    }else if (estado == 0){
      digitalWrite(motor, LOW);
    }

     if (digitalRead(des)){
     contador++;
      delay(300);
      }
       
      
    
    Serial.print("Contador: ");
    Serial.println(contador);
    Serial.print("Estado: ");
    Serial.println(estado);
  }
1 curtida

Interessante Leandro, pode ser que seja isso que ele quer. Nesse caso, seu código funcionaria. Fiz algumas modificações nele pra deixar o código um pouco menor, mas com o mesmo funcionamento. Veja como ficou:

#define liga 2
#define des 3
#define motor 4
int contador = 0;

void setup(){
  
  pinMode (liga, INPUT);
  pinMode (des, INPUT);
  pinMode(motor, OUTPUT);
  
  Serial.begin(9600);
}
  

  void loop(){
   
    if ((digitalRead(liga)== 1 && digitalRead(des)==0)){ //só liga se o botão de desliga estiver solto
    digitalWrite(motor, HIGH);  //pode ligar aqui mesmo
    }

     if ((digitalRead(des)==1)){
    digitalWrite(motor, LOW);  //pode desligar aqui mesmo
    contador++;
    delay(300);
    }


   if (contador >= 5){
    Serial.print("Pausa de 10s...");
    delay(10000);
    contador = 0; 
   }    
    
    Serial.print("Contador: ");
    Serial.println(contador);
    Serial.print("Estado: ");
    Serial.println(estado);
  }

Abraços!

muito obrigado!
na verdade este projeto e de uma esteira.
vc liga a esteira conforme o numero de peças que possar nela ela parava

1 curtida

muito obrigado o todos que tiraram um tempo pra olho o meu projeto!

mais tarde e mais calmo kkkk eu conseguir fazer ele funcionar.
sou novo com arduino. estou assistindo os videos gv ensino e estou muito contende com as aulas.
assistir muitos videos de aulas de arduino tava ate largando mao. nao conseguia entender nada.
depois que descobri o canal estou voltando a mexer !!

1 curtida

ahh esqueci de mostrar o que eu fiz pra resolver

#define liga 3
#define des  2
#define motor 4

int contar=0 ;

void setup(){
 
  pinMode (liga,INPUT_PULLUP);
  pinMode (des,INPUT_PULLUP);
  pinMode (motor,OUTPUT);
  Serial.begin(9600);
}

void loop(){

  if (!digitalRead(liga)){
    
    digitalWrite(motor,HIGH);  
  }
  if(!digitalRead(des)){
     contar++;
    
   
    if(contar==5)
      digitalWrite(motor,LOW);
    delay(100);
  
    Serial.println(contar);
     
  }
  while (!digitalRead(des)){
  }
  if (!digitalRead(liga)){
    contar=0;
   
  }
}

Bem, nesse caso acho que o melhor seria você colocar outra entrada com um sensor verificando as peças passando, poderia ser um LDR com um laser, que quando a peça ficasse entre ele e o laser a luz sumiria e ele contaria 1, e acredito que ficaria até mais facil, LDR foi só um exemplo, mas acho que poderia usar outro tipo de sensor ou até mesmo um fim de curso.

Daria pra fazer assim também. Nesse caso, o ideal seria um sensor óptico por barreira, embora dependendo do caso, um por reflexão ou mesmo por difusão já serviria.