RuiViana

Testa_Contagem.ino

May 9th, 2020
194
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //#define debug
  2. #include <LiquidCrystal.h>
  3.  
  4. #include <Stepper.h>                                        // Biblioteca para uso do step motor
  5. Stepper stepper(200, PA12, PA11);                           // Portas do step e steps por volta
  6.  
  7. LiquidCrystal lcd(PA5, PA4, PA3, PA2, PA1, PA0);
  8.  
  9. #define brk PB9                                              // Controle do break
  10. //Botoes para controle do menu
  11. #define BT1 PB8                                              //Enter                  
  12. #define BT2 PB7                                              //down
  13. #define BT3 PB6                                              //Left
  14. #define BT4 PB5                                              //Right
  15. #define BT5 PB4                                              //Up
  16. #define BT6 R                                                //Reset
  17.  
  18. #define encoder PA15                                          // Entrada do encoder do motor principal
  19.  
  20. int     numEsp         = 903;                               // Numero de espiras previstas
  21. float   bitFio         = 0.5;                                // Bitola do fio em mm
  22. float   carrLeng       = 26;                                // Comprimento do carretel
  23. int     numEspAtual    =  0;                                // Numero de espirar atuais
  24. bool    incrementou = false;                                // Controle de incremento de espiras
  25. int     espFase        =  1;                                // N de espiras por etapa
  26. int     espCam         =  0;                                // Calcula o numero de espira por camada
  27. int     camf           =  0;                                // Numero de camada feita
  28. float   dln            =  0;                                // Fator de correção de largura
  29. float   dciclos        =  0;                                // Fator de correção passo
  30. bool    isolador    = false;                                // Contrele de isolador de camada
  31. int     menu           =  0;                                // Telas do sistema
  32. int     cstep          =  0;                                // Contador de passos
  33. int     ciclos         =  0;                                // Calcula o numero de ciclos da guia linear para cada passo
  34. bool    direct         =  1;                                // Sentido da guia
  35. float   incrementa     =  1;                                // Offset de incremento
  36. bool    pause       = false;                                // Contrele de pause
  37. int contaStep = 0;
  38. // Controle do motor da bobina
  39.  
  40. #define  EnaA PA6                                             // Habilita motor
  41. #define  IN1 PB13                                             // Fase1 do motor
  42. #define  IN2 PB14                                             // Fase2 do motor
  43. #define  cntl PA7                                             // Central do pot
  44. int velocidade = 0;                                           // Velocidade do motor
  45. //---------------------------------------------------------
  46. void ligaMotor()
  47. {
  48.   digitalWrite(IN1, HIGH);
  49.   digitalWrite(IN2, LOW);
  50.   analogWrite(EnaA, velocidade);                            // PWM com o valor de velocidase calculado
  51. }
  52. //---------------------------------------------------------
  53. void desligaMotor()
  54. {
  55.   velocidade = 0;                                           // Zera velocidade
  56.   digitalWrite(IN1, HIGH);                                  //
  57.   digitalWrite(IN2, HIGH);                                  //
  58.   analogWrite(EnaA, velocidade);                            //
  59. }
  60. //---------------------------------------------------------
  61. void setup()
  62. {
  63.   Serial.begin(115200);
  64.   stepper.setSpeed(600);                                    // Define velocidade do step
  65.   lcd.begin(16, 2);                                         // Inicializa LCD
  66.   pinMode(encoder, INPUT);                                  // Encoder como INPUT
  67.   pinMode(brk, INPUT_PULLUP);                               // Break como INPUT
  68. #ifdef  debug
  69.   pinMode(encoder, INPUT_PULLUP);                           // Debug
  70. #endif
  71.   pinMode(BT1, INPUT_PULLUP);                               // Botoes como INPUT
  72.   pinMode(BT2, INPUT_PULLUP);
  73.   pinMode(BT3, INPUT_PULLUP);
  74.   pinMode(BT4, INPUT_PULLUP);
  75.   pinMode(BT5, INPUT_PULLUP);
  76.   desligaMotor();
  77.   // Controle do motor
  78.   pinMode(IN1, OUTPUT);                                     // Fase1 do motor
  79.   pinMode(IN2, OUTPUT);                                     // Fase2 do motor
  80.   pinMode(EnaA, OUTPUT);                                    // Habilita motor
  81.   pinMode(cntl, INPUT);                                     // Central do pot
  82.   digitalWrite(EnaA, HIGH);                                 // Habilita motor em HIGH
  83.   attachInterrupt(digitalPinToInterrupt(PA15), contagem, RISING);
  84.   Serial.println("Iniciando......");
  85. }
  86. //--------------------------------------------------------
  87. void contagem()
  88. {
  89.   numEspAtual++;
  90.   incrementou = true;                                     // Informa incremento de espiras
  91. }
  92. //---------------------------- LOOP -----------------------------
  93. void loop()
  94. {
  95.   lcd.setCursor(0, 0);                                // Cursor LCD em 0,0
  96.   lcd.print("Contagem");                     // Print
  97.   lcd.setCursor(0, 1);                                // Cursor LCD em 0,1
  98.   lcd.print(numEspAtual);                     // Print
  99. }
RAW Paste Data