Advertisement
RuiViana

Liga esteira c botao e por 30 seg

Dec 6th, 2015
271
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.38 KB | None | 0 0
  1. // http://pastebin.com/65uCNxqz
  2. /*
  3. * Estou com uma duvida eu estou tentando fazer tipo uma esteira
  4. * automatizada que funciona da seguinte forma quando ligada por
  5. * um botão externo a esteira gire quando alguma coisa cortar o
  6. * feixe de luz do sensor emissor e receptor a esteira tem que
  7. * parar de girar ate este ponto eu consegui fazer , Porem eu
  8. * gostaria de fazer um temporizador da seguinte maneira quando
  9. * a esteira ligada ela gire mas gire por 30 segundos e desliga
  10. * ate que o botão novamente seja ligado e desligado fazendo
  11. * com que ela rode novamente ate que algo corte o feixe de luz.
  12. */
  13.  
  14. #define sensorPin A0 // Entrada do sensor receptor
  15. #define relemotor 3 // pino 3 rele
  16. #define bot1 4 // pino 4 botão
  17. unsigned int sensorValue = 0; // variavel do sensor
  18. unsigned long Count = 0; // variavel do sensor
  19. byte BotOn = 0; // variavel do botão
  20. //-----------------------------------------------------------------
  21. void setup()
  22. {
  23. pinMode(relemotor,OUTPUT); // Define pino como saída
  24. pinMode(bot1,INPUT_PULLUP); // Define pino como entrada e liga pullup resistor
  25. Serial.begin(9600); // Inicializa serial monitor
  26. }
  27. //-----------------------------------------------------------------
  28. void loop()
  29. {
  30. sensorValue = analogRead(sensorPin);
  31. Serial.println(sensorValue);
  32. if (digitalRead(bot1) == LOW) // Se botão foi apertado
  33. {
  34. while(digitalRead(bot1) == LOW) // Enquanto tiver apertado
  35. {
  36. delay(20); // Evita debouncing
  37. BotOn = 1; // Identifica com botão foi apertado
  38. }
  39. }
  40. while((sensorValue>940)&&(BotOn == 1)&&(Count <30000))
  41. { // Enquanto sensor livre, Botão apertado e tempo menos que 30 seg
  42. digitalWrite(relemotor, HIGH); // Ligue o motor
  43. delay(1); // Delay de 1 milisegundo
  44. Count++; // Incrementa contador
  45. }
  46. digitalWrite(relemotor, LOW); // Desliga o motor
  47. Count = 0; // Zera contador
  48. BotOn = 0; // Desliga identificador de botão apertado
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement