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 = 12; // botão no pino 12
- //------------------(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 = 10000; // determina tempo resfriamento
- byte Flag = 0;
- byte Flag2 = 0;
- //-------------------(variáveis para botão ligar e desligar)---------------
- int var = 0; // valor instantaneo enviado pelo botão
- 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
- }
- //----------------------------------------------
- void loop()
- {
- var = digitalRead(botao); // ler o valor enviado pelo botão: "HIGH" ou "LOW"
- if (var == HIGH)
- {
- estado = 1 - estado;
- delay(300); // de-bouncing
- tempoa = millis();
- tempor = millis();
- Flag = 1;
- Flag2 = 1;
- }
- if (estado == 1)
- {
- while (Flag2 == 1)
- {
- if ( (millis() - tempoa) < intervaloa )
- {
- 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
- {
- digitalWrite(led2, LOW); // apaga led de tempo de aquecimento
- digitalWrite(led3, HIGH); // acende led indicativo de lampada aquecida e pronto para o uso
- Flag2 = 0;
- }
- }
- myStepper.step(passos); // liga motor para não danificar o rolo
- }
- if ((estado == 0) && (Flag == 1)) // ao primir novamente o botão
- {
- while (Flag2 == 1)
- {
- if ( (millis() - tempor) < intervalor )
- {
- digitalWrite(rele1, LOW); // desliga rele da lampada
- digitalWrite(led3, LOW); // desliga indicação de aquecimento
- digitalWrite(rele2, HIGH); // liga rele para resfriamento cooler
- digitalWrite(led4, HIGH); // liga led indicativo do sistema de resfriamento
- }
- myStepper.step(passos); // mantem motor ligado
- if ( (millis() - tempor) >= intervalor ) // Após tempo de resfriamento da lampada, desliga motor e,
- {
- digitalWrite(rele2, LOW); // desliga rele de resfriamento
- digitalWrite(led4, LOW); // desliga led indicativo de resfriamento
- digitalWrite(led1, LOW); // desliga led do sistema ligado
- Flag2 = 0;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement