Advertisement
Guest User

Untitled

a guest
Dec 4th, 2016
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.98 KB | None | 0 0
  1. // -------------------(para controlar motor stepper)---------------------
  2. #include <Stepper.h> // biblioteca para o stepper motor
  3. int passos = 30; // número de passos motor
  4. const int stepsPerRevolution = 500;
  5. Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11); //declaração dos pinos para ligação do ULN2003
  6. //----------------------(declaração dos pinos)----------------------------
  7. int led1 = 2; // led1 no pino 2 (sistema em funcionamento led vermelho)
  8. int led2 = 3; // led2 no pino 3 (lampada em aquecimento amarelo)
  9. int led3 = 4; // led3 no pino 4 (lampada aquecida verde)
  10. int led4 = 5; // led4 no pino 5 (em processo de resfriamento azul)
  11. int rele1 = 6; // rele1 no pino 6 (liga lampada)
  12. int rele2 = 7; // rele2 no pino 7 (resfriamento cooler)
  13. int botao = 13; // botão no pino 13
  14. //------------------(variáveis de tempo de aquecimento e resfriamento)----
  15. unsigned long tempoa = 0; // variável do aquecimento
  16. unsigned long tempor = 0; // variável do resfriamento
  17. int intervaloa = 10000; // determina tempo aquecimento
  18. int intervalor = 2000; // determina tempo resfriamento
  19. //-------------------(variáveis para botão ligar e desligar)---------------
  20. int var = 0; // valor instantaneo enviado pelo botão
  21. int var2 = 0; // valor guardado
  22. int estado = 0; // guarda o valor 0 ou 1 (HIGH ou LOW)
  23. //-------------------------------(executa uma vez)-------------------------
  24. void setup(){
  25. pinMode(led1, OUTPUT); // pino do led1 do tipo saída
  26. pinMode(led2, OUTPUT); // pino do led2 do tipo saída
  27. pinMode(led3, OUTPUT); // pino do led3 do tipo saída
  28. pinMode(led4, OUTPUT); // pino do led4 do tipo saída
  29. pinMode(rele1, OUTPUT); // pino do rele1 do tipo saída
  30. pinMode(rele2, OUTPUT); // pino do rele2 do tipo saída
  31. pinMode(botao, INPUT); // pino botao do tipo entrada
  32. myStepper.setSpeed(60); // velocidade do motor 60rpm
  33. }
  34.  
  35. // A SEQUENCIA DE OPERAÇÃO DEVERÁ SEGUIR O SEGUINTE ROTEIRO:
  36.  
  37. // ao primir o botão,
  38. // o led1 deverá acender, indicando que o sistema está em funcionamento;
  39. // deverá ligar o motor (para não danificar o rolo);
  40. // deverá ligar o rele1 para aquecimento da lampada;
  41. // deverá ligar led2 indicando que a lampada em processo de aquecimento;
  42.  
  43. // passado um tempo (determinei tempoa - tempo de aquecimento), deverá acontecer o seguinte:
  44.  
  45. // permanece ligado o led1 (indicando que o sistema esta em funcionamento);
  46. // permanece ligado o rele1 aquecimento da lampada (agora aquecida e em uso);
  47. // permanece ligado o motor;
  48. // desligado o led2 de aquecimento;
  49. // ligado o led3 indicando que a lampada esta aquecida e pronto para o uso;
  50.  
  51.  
  52. // ao primir novamente o botao o sistema entrará na fase de resfriamento e desligamento,
  53. // devendo seguir a seguinte ordem:
  54.  
  55. // permanece ligado led1 (sistema em funcionamento);
  56. // permanece ligado o motor; (para não danificar o rolo);
  57. // desliga rele1 (desligando a alimentação da lampada);
  58. // apaga o led3 (indicativo de sistema pronto para o uso);
  59. // liga rele2 (sistema de resfriamento);
  60. // liga led4 (indicativo do sistema em resfriamento);
  61.  
  62. // após um tempo determinado (determinei tempor - tempo de resfriamento, deverá acontecer o seguinte:
  63.  
  64. // desliga rele2;
  65. // desliga led4;
  66. // desliga motor;
  67. // desliga led1;
  68.  
  69. // Caso seja primido novamente o botao, inicia-se novamente o processo;
  70.  
  71. void loop()
  72. {
  73. var = digitalRead(botao); // ler o valor enviado pelo botão: "HIGH" ou "LOW"
  74.  
  75. if ((var == HIGH) && (var2 == LOW))
  76. {
  77. estado = 1 - estado;
  78. delay(20); // de-bouncing
  79. }
  80.  
  81. if (estado == 1)
  82. {
  83. digitalWrite(led1, HIGH); // sistema em funcionamento
  84. digitalWrite(rele1, HIGH); // liga rele da lampada para aquecimento
  85. digitalWrite(led2, HIGH); // indicação de aquecimento
  86. myStepper.step(passos); // liga motor para não danificar o rolo
  87.  
  88. if( (millis() - tempoa) >= intervaloa ) // Após tempo de aquecimento da lampada, acende led de aquecido
  89. {
  90. tempoa = millis();
  91. digitalWrite(led2, LOW); // apaga led de tempo de aquecimento
  92. digitalWrite(led3, HIGH); // acende led indicativo de lampada aquecida e pronto para o uso
  93. }
  94.  
  95. if (estado == 0) // ao primir novamente o botão
  96. {
  97. digitalWrite(rele1, LOW); // desliga rele da lampada
  98. digitalWrite(led3, LOW); // desliga indicação de aquecimento
  99. digitalWrite(rele1, LOW); // desliga lampada
  100. digitalWrite(rele2, HIGH); // inicia cooler para resfriamento
  101. digitalWrite(led4, HIGH); // liga led indicativo do sistema de resfriamento
  102.  
  103. if( (millis() - tempor) >= intervalor ) // Após tempo de resfriamento da lampada, acende led de aquecido
  104. {
  105. tempor = millis();
  106.  
  107. digitalWrite(rele2, LOW); // desliga rele de resfriamento
  108. digitalWrite(led4, LOW); // desliga led indicativo de resfriamento
  109. digitalWrite(led1, LOW); // desliga led do sistema ligado
  110. // deverá desligar motor
  111.  
  112.  
  113. }
  114.  
  115. }
  116. }
  117.  
  118. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement