Isabelle Murollo
/
Projeto_CCM_Maquinas_MotorPasso
Centro de Controle de Motores
gabs.txt
- Committer:
- isabellemm
- Date:
- 16 months ago
- Revision:
- 4:3bc68a7b299d
File content as of revision 4:3bc68a7b299d:
/******************************************* Motor de Passo *******************************************/ #include "mbed.h" // motor de passo DigitalOut EN_A(D2); DigitalOut IN1_A(D5); DigitalOut IN2_A(D4); DigitalOut EN_B(A4); DigitalOut IN1_B(A0); DigitalOut IN2_B(A1); DigitalOut led(LED1); InterruptIn enable(PB_6); int estado = 0; Timer debounce; // botões retentivos DigitalIn dir(D9); AnalogIn POT(A5); float tempo; void muda_en(){ if (debounce.read_ms()>200){ estado=!estado; } debounce.reset(); } void queda(){ debounce.reset(); } int main(){ enable.rise(&muda_en); debounce.start(); // configurações iniciais EN_A = 0; EN_B = 0; IN1_A = 0; IN2_A = 0; IN1_A = 0; IN1_B = 0; while(1) { if (estado == 1){ tempo = 0.005+(0.05*POT.read()); //SENTIDO HORÁRIO if (dir.read() == 0){ // passo 0 EN_A = 1; IN1_A = 1; IN2_A = 0; EN_B = 0; IN1_B = 1; IN2_B = 0; wait(tempo); // passo 1 EN_A = 0; IN1_A = 0; IN2_A = 1; EN_B = 1; IN1_B = 1; IN2_B = 0; wait(tempo); // passo 2 EN_A = 1; IN1_A = 0; IN2_A = 1; EN_B = 0; IN1_B = 0; IN2_B = 1; wait(tempo); // passo 3 EN_A = 0; IN1_A = 1; IN2_A = 0; EN_B = 1; IN1_B = 0; IN2_B = 1; wait(tempo); } //SENTIDO ANTI-HORÁRIO else if (dir.read() == 1){ // passo 0 EN_A = 1; IN1_A = 1; IN2_A = 0; EN_B = 0; IN1_B = 1; IN2_B = 0; wait(tempo); // passo 1 ("passo 3") EN_A = 0; IN1_A = 1; IN2_A = 0; EN_B = 1; IN1_B = 0; IN2_B = 1; wait(tempo); // passo 2 EN_A = 1; IN1_A = 0; IN2_A = 1; EN_B = 0; IN1_B = 0; IN2_B = 1; wait(tempo); // passo 3 ("passo 1") EN_A = 0; IN1_A = 0; IN2_A = 1; EN_B = 1; IN1_B = 1; IN2_B = 0; wait(tempo); } } else{ EN_A = 0; EN_B = 0; IN1_A = 0; IN2_A = 0; IN1_A = 0; IN1_B = 0; } } }