Isabelle Murollo
/
Projeto_CCM_Maquinas_MotorPasso
Centro de Controle de Motores
Diff: gabs.txt
- Revision:
- 4:3bc68a7b299d
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gabs.txt Thu Dec 01 19:39:01 2022 +0000 @@ -0,0 +1,148 @@ +/******************************************* +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; + } + } +} + + + +