Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //#define debug
- #include <LiquidCrystal.h>
- #include <Stepper.h> // Biblioteca para uso do step motor
- Stepper stepper(200, PA12, PA11); // Portas do step e steps por volta
- LiquidCrystal lcd(PA5, PA4, PA3, PA2, PA1, PA0);
- #define brk PB9 // Controle do break
- //Botoes para controle do menu
- #define BT1 PB8 //Enter
- #define BT2 PB7 //down
- #define BT3 PB6 //Left
- #define BT4 PB5 //Right
- #define BT5 PB4 //Up
- #define BT6 R //Reset
- #define encoder PA15 // Entrada do encoder do motor principal
- int numEsp = 903; // Numero de espiras previstas
- float bitFio = 0.5; // Bitola do fio em mm
- float carrLeng = 26; // Comprimento do carretel
- int numEspAtual = 0; // Numero de espirar atuais
- bool incrementou = false; // Controle de incremento de espiras
- int espFase = 1; // N de espiras por etapa
- int espCam = 0; // Calcula o numero de espira por camada
- int camf = 0; // Numero de camada feita
- float dln = 0; // Fator de correção de largura
- float dciclos = 0; // Fator de correção passo
- bool isolador = false; // Contrele de isolador de camada
- int menu = 0; // Telas do sistema
- int cstep = 0; // Contador de passos
- int ciclos = 0; // Calcula o numero de ciclos da guia linear para cada passo
- bool direct = 1; // Sentido da guia
- float incrementa = 1; // Offset de incremento
- bool pause = false; // Contrele de pause
- int contaStep = 0;
- // Controle do motor da bobina
- #define EnaA PA6 // Habilita motor
- #define IN1 PB13 // Fase1 do motor
- #define IN2 PB14 // Fase2 do motor
- #define cntl PA7 // Central do pot
- int velocidade = 0; // Velocidade do motor
- //---------------------------------------------------------
- void ligaMotor()
- {
- digitalWrite(IN1, HIGH);
- digitalWrite(IN2, LOW);
- analogWrite(EnaA, velocidade); // PWM com o valor de velocidase calculado
- }
- //---------------------------------------------------------
- void desligaMotor()
- {
- velocidade = 0; // Zera velocidade
- digitalWrite(IN1, HIGH); //
- digitalWrite(IN2, HIGH); //
- analogWrite(EnaA, velocidade); //
- }
- //---------------------------------------------------------
- void setup()
- {
- Serial.begin(115200);
- stepper.setSpeed(600); // Define velocidade do step
- lcd.begin(16, 2); // Inicializa LCD
- pinMode(encoder, INPUT); // Encoder como INPUT
- pinMode(brk, INPUT_PULLUP); // Break como INPUT
- #ifdef debug
- pinMode(encoder, INPUT_PULLUP); // Debug
- #endif
- pinMode(BT1, INPUT_PULLUP); // Botoes como INPUT
- pinMode(BT2, INPUT_PULLUP);
- pinMode(BT3, INPUT_PULLUP);
- pinMode(BT4, INPUT_PULLUP);
- pinMode(BT5, INPUT_PULLUP);
- desligaMotor();
- // Controle do motor
- pinMode(IN1, OUTPUT); // Fase1 do motor
- pinMode(IN2, OUTPUT); // Fase2 do motor
- pinMode(EnaA, OUTPUT); // Habilita motor
- pinMode(cntl, INPUT); // Central do pot
- digitalWrite(EnaA, HIGH); // Habilita motor em HIGH
- attachInterrupt(digitalPinToInterrupt(PA15), contagem, RISING);
- Serial.println("Iniciando......");
- }
- //--------------------------------------------------------
- void contagem()
- {
- numEspAtual++;
- incrementou = true; // Informa incremento de espiras
- }
- //---------------------------- LOOP -----------------------------
- void loop()
- {
- lcd.setCursor(0, 0); // Cursor LCD em 0,0
- lcd.print("Contagem"); // Print
- lcd.setCursor(0, 1); // Cursor LCD em 0,1
- lcd.print(numEspAtual); // Print
- }
Add Comment
Please, Sign In to add comment