Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // 2 motores juntos
- #define botao_manual_1 4 // Liga manual o motor:
- #define botao_manual_2 5 // Liga manual motor do mordente:
- #define botao_automatico 6 // Inicia o funcionamento da maquina:
- #define Motor_2_mordente 13 // Morente de selamento do plastico
- #define Motor1_1_tracao 12 // Puxa o platico
- #define sensor_contador 2 // conta voltas do motor
- #define sensor_mordente 3 // Sensor do mordente motor2
- int home1 = 100; // Posicao onde deve chegar motor1
- unsigned int pulsos = 0; // Pulsos vindo do sensor do motor1
- bool motor1OK = LOW; // Indicativo que motor1 chegou onde devia
- bool motor2OK = LOW; // Motor2 foi acionado
- //----------------------------------------------------
- void setup()
- {
- Serial.begin(9600);
- pinMode(botao_manual_1, INPUT_PULLUP); // Botão liga motor1
- pinMode(botao_manual_2, INPUT_PULLUP); // Botão liga motor2
- pinMode(botao_automatico, INPUT_PULLUP); // Botão inicia processo
- pinMode(Motor_2_mordente, OUTPUT); // saida para o funcionamento do mordente:
- pinMode(Motor1_1_tracao, OUTPUT); // liga motor da tração do plastico:
- pinMode(sensor_contador, INPUT); // conta as voltas do motor obs; sensor magnetico:
- pinMode(sensor_mordente, INPUT); //
- digitalWrite(Motor1_1_tracao, HIGH); //
- digitalWrite(Motor_2_mordente, HIGH); //
- attachInterrupt(digitalPinToInterrupt(2), routinaContadora, RISING);
- }
- //-----------------------------------------------------
- void routinaContadora()
- {
- pulsos++;
- }
- //--------------------------------------------------
- void loop()
- {
- if (digitalRead( botao_automatico) == LOW) // Se botao automatico foi pressionado
- {
- delay(30); // Debouncing
- if (digitalRead( botao_automatico) == LOW) // Se botao automatico continua pressionado
- {
- if (pulsos < home1) // Se nao chegou onde precisa
- {
- digitalWrite(Motor1_1_tracao, LOW); // Liga motor1
- }
- }
- }
- Serial.print("pulsos : "); Serial.println(pulsos);
- Serial.print("modente : "); Serial.println(digitalRead(sensor_mordente));
- Serial.print("motor1OK : "); Serial.println(motor1OK);
- Serial.print("motor2OK : "); Serial.println(motor2OK);
- if (pulsos >= home1) // Se chegou onde precisa
- {
- digitalWrite(Motor1_1_tracao, HIGH); // Desliga motor1
- motor1OK = HIGH; // Informa que chegou
- if ((digitalRead(sensor_mordente) == 1) and (motor1OK == HIGH) and (motor2OK == LOW) ) // Se sensor = 1 motor1 chegou e motor2 esta desligado
- {
- digitalWrite(Motor_2_mordente, LOW); // Liga motor2
- }
- if ((digitalRead(sensor_mordente) == 0) and (motor1OK == HIGH) and (motor2OK == LOW) ) // Se sensor = 1 motor1 chegou e motor2 esta desligado
- {
- motor2OK = HIGH; // Informa motor2 ligado
- }
- if ((digitalRead(sensor_mordente) == 1) and (motor1OK == HIGH) and (motor2OK == HIGH) ) // Se sensor = 1 motor1 chegou e motor2 esta ligado
- {
- digitalWrite(Motor_2_mordente, HIGH); // Desliga motor2
- motor2OK = LOW; // Informa motor2 desligado
- pulsos = 0; // Zera contador do motor1
- motor1OK = LOW; // Informa novo ciclo
- }
- }
- // delay(200);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement