Advertisement
RuiViana

Seladora9.ino

Sep 23rd, 2018
402
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.10 KB | None | 0 0
  1. // 2 motores juntos
  2. #define botao_manual_1 4                  // Liga manual o motor:
  3. #define botao_manual_2 5                  // Liga manual motor do mordente:
  4. #define botao_automatico 6                // Inicia o funcionamento da maquina:
  5. #define Motor_2_mordente 13               // Morente de selamento do plastico
  6. #define Motor1_1_tracao 12                // Puxa o platico
  7. #define sensor_contador 2                 // conta voltas do motor
  8. #define sensor_mordente 3                 // Sensor do mordente motor2
  9.  
  10. int home1 = 100;                           // Posicao onde deve chegar motor1
  11. unsigned int pulsos = 0;                  // Pulsos vindo do sensor do motor1
  12. bool motor1OK = LOW;                      // Indicativo que motor1 chegou onde devia
  13. bool motor2OK = LOW;                      // Motor2 foi acionado
  14.  
  15. //----------------------------------------------------
  16. void setup()
  17. {
  18.   Serial.begin(9600);
  19.   pinMode(botao_manual_1, INPUT_PULLUP);      // Botão liga motor1
  20.   pinMode(botao_manual_2, INPUT_PULLUP);      // Botão liga motor2
  21.   pinMode(botao_automatico, INPUT_PULLUP);    // Botão inicia processo
  22.  
  23.   pinMode(Motor_2_mordente, OUTPUT);          // saida para o funcionamento do mordente:
  24.   pinMode(Motor1_1_tracao, OUTPUT);           // liga motor da tração do plastico:
  25.   pinMode(sensor_contador, INPUT);            // conta as voltas do motor obs; sensor magnetico:
  26.   pinMode(sensor_mordente, INPUT);            //
  27.   digitalWrite(Motor1_1_tracao, HIGH);        //
  28.   digitalWrite(Motor_2_mordente, HIGH);       //
  29.   attachInterrupt(digitalPinToInterrupt(2), routinaContadora, RISING);
  30. }
  31. //-----------------------------------------------------
  32. void routinaContadora()
  33. {
  34.   pulsos++;
  35. }
  36. //--------------------------------------------------
  37. void loop()
  38. {
  39.   if (digitalRead( botao_automatico) == LOW)                                          // Se botao automatico foi pressionado
  40.   {
  41.     delay(30);                                                                        // Debouncing
  42.     if (digitalRead( botao_automatico) == LOW)                                        // Se botao automatico continua pressionado
  43.     {
  44.       if (pulsos < home1)                                                             // Se nao chegou onde precisa
  45.       {
  46.         digitalWrite(Motor1_1_tracao, LOW);                                          // Liga motor1
  47.       }
  48.     }
  49.   }
  50.   Serial.print("pulsos : "); Serial.println(pulsos);
  51.   Serial.print("modente : "); Serial.println(digitalRead(sensor_mordente));
  52.   Serial.print("motor1OK : "); Serial.println(motor1OK);
  53.   Serial.print("motor2OK : "); Serial.println(motor2OK);
  54.  
  55.   if (pulsos >= home1)                                                                // Se chegou onde precisa
  56.   {
  57.     digitalWrite(Motor1_1_tracao, HIGH);                                               // Desliga motor1
  58.     motor1OK = HIGH;                                                                  // Informa que chegou
  59.     if ((digitalRead(sensor_mordente) == 1) and (motor1OK == HIGH) and (motor2OK == LOW) )      // Se sensor = 1 motor1 chegou e motor2 esta desligado
  60.     {
  61.       digitalWrite(Motor_2_mordente, LOW);                                            // Liga motor2
  62.     }
  63.     if ((digitalRead(sensor_mordente) == 0) and (motor1OK == HIGH) and (motor2OK == LOW) )      // Se sensor = 1 motor1 chegou e motor2 esta desligado
  64.     {
  65.       motor2OK = HIGH;                                                                // Informa motor2 ligado
  66.     }
  67.     if ((digitalRead(sensor_mordente) == 1) and (motor1OK == HIGH) and (motor2OK == HIGH) )     // Se sensor = 1 motor1 chegou e motor2 esta ligado
  68.     {
  69.       digitalWrite(Motor_2_mordente, HIGH);                                           // Desliga motor2
  70.       motor2OK = LOW;                                                                 // Informa motor2 desligado
  71.       pulsos = 0;                                                                     // Zera contador do motor1
  72.       motor1OK = LOW;                                                                 // Informa novo ciclo
  73.     }
  74.   }
  75. //  delay(200);
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement