Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // -------------------(para controlar motor stepper)---------------------
- #include <Stepper.h> // biblioteca para o stepper motor
- int passos = 30; // número de passos motor
- const int stepsPerRevolution = 500;
- Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11); //declaração dos pinos para ligação do ULN2003
- //----------------------(declaração dos pinos)----------------------------
- int led1 = 2; // led1 no pino 2 (sistema em funcionamento led vermelho)
- int led2 = 3; // led2 no pino 3 (lampada em aquecimento amarelo)
- int led3 = 4; // led3 no pino 4 (lampada aquecida verde)
- int led4 = 5; // led4 no pino 5 (em processo de resfriamento azul)
- int rele1 = 6; // rele1 no pino 6 (liga lampada)
- int rele2 = 7; // rele2 no pino 7 (resfriamento cooler)
- int botao = 13; // botão no pino 13
- //------------------(variáveis de tempo de aquecimento e resfriamento)----
- unsigned long tempoa = 0; // variável do aquecimento
- unsigned long tempor = 0; // variável do resfriamento
- int intervaloa = 10000; // determina tempo aquecimento
- int intervalor = 2000; // determina tempo resfriamento
- //-------------------(variáveis para botão ligar e desligar)---------------
- int var = 0; // valor instantaneo enviado pelo botão
- int var2 = 0; // valor guardado
- int estado = 0; // guarda o valor 0 ou 1 (HIGH ou LOW)
- //-------------------------------(executa uma vez)-------------------------
- void setup(){
- pinMode(led1, OUTPUT); // pino do led1 do tipo saída
- pinMode(led2, OUTPUT); // pino do led2 do tipo saída
- pinMode(led3, OUTPUT); // pino do led3 do tipo saída
- pinMode(led4, OUTPUT); // pino do led4 do tipo saída
- pinMode(rele1, OUTPUT); // pino do rele1 do tipo saída
- pinMode(rele2, OUTPUT); // pino do rele2 do tipo saída
- pinMode(botao, INPUT); // pino botao do tipo entrada
- myStepper.setSpeed(60); // velocidade do motor 60rpm
- }
- // A SEQUENCIA DE OPERAÇÃO DEVERÁ SEGUIR O SEGUINTE ROTEIRO:
- // ao primir o botão,
- // o led1 deverá acender, indicando que o sistema está em funcionamento;
- // deverá ligar o motor (para não danificar o rolo);
- // deverá ligar o rele1 para aquecimento da lampada;
- // deverá ligar led2 indicando que a lampada em processo de aquecimento;
- // passado um tempo (determinei tempoa - tempo de aquecimento), deverá acontecer o seguinte:
- // permanece ligado o led1 (indicando que o sistema esta em funcionamento);
- // permanece ligado o rele1 aquecimento da lampada (agora aquecida e em uso);
- // permanece ligado o motor;
- // desligado o led2 de aquecimento;
- // ligado o led3 indicando que a lampada esta aquecida e pronto para o uso;
- // ao primir novamente o botao o sistema entrará na fase de resfriamento e desligamento,
- // devendo seguir a seguinte ordem:
- // permanece ligado led1 (sistema em funcionamento);
- // permanece ligado o motor; (para não danificar o rolo);
- // desliga rele1 (desligando a alimentação da lampada);
- // apaga o led3 (indicativo de sistema pronto para o uso);
- // liga rele2 (sistema de resfriamento);
- // liga led4 (indicativo do sistema em resfriamento);
- // após um tempo determinado (determinei tempor - tempo de resfriamento, deverá acontecer o seguinte:
- // desliga rele2;
- // desliga led4;
- // desliga motor;
- // desliga led1;
- // Caso seja primido novamente o botao, inicia-se novamente o processo;
- void loop()
- {
- var = digitalRead(botao); // ler o valor enviado pelo botão: "HIGH" ou "LOW"
- if ((var == HIGH) && (var2 == LOW))
- {
- estado = 1 - estado;
- delay(20); // de-bouncing
- }
- if (estado == 1)
- {
- digitalWrite(led1, HIGH); // sistema em funcionamento
- digitalWrite(rele1, HIGH); // liga rele da lampada para aquecimento
- digitalWrite(led2, HIGH); // indicação de aquecimento
- myStepper.step(passos); // liga motor para não danificar o rolo
- if( (millis() - tempoa) >= intervaloa ) // Após tempo de aquecimento da lampada, acende led de aquecido
- {
- tempoa = millis();
- digitalWrite(led2, LOW); // apaga led de tempo de aquecimento
- digitalWrite(led3, HIGH); // acende led indicativo de lampada aquecida e pronto para o uso
- }
- if (estado == 0) // ao primir novamente o botão
- {
- digitalWrite(rele1, LOW); // desliga rele da lampada
- digitalWrite(led3, LOW); // desliga indicação de aquecimento
- digitalWrite(rele1, LOW); // desliga lampada
- digitalWrite(rele2, HIGH); // inicia cooler para resfriamento
- digitalWrite(led4, HIGH); // liga led indicativo do sistema de resfriamento
- if( (millis() - tempor) >= intervalor ) // Após tempo de resfriamento da lampada, acende led de aquecido
- {
- tempor = millis();
- digitalWrite(rele2, LOW); // desliga rele de resfriamento
- digitalWrite(led4, LOW); // desliga led indicativo de resfriamento
- digitalWrite(led1, LOW); // desliga led do sistema ligado
- // deverá desligar motor
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement