Centro de Controle de Motores

Dependencies:   TextLCD mbed

Committer:
isabellemm
Date:
Thu Dec 01 19:39:01 2022 +0000
Revision:
4:3bc68a7b299d
SIMPLES

Who changed what in which revision?

UserRevisionLine numberNew contents of line
isabellemm 4:3bc68a7b299d 1 /*******************************************
isabellemm 4:3bc68a7b299d 2 Motor de Passo
isabellemm 4:3bc68a7b299d 3 *******************************************/
isabellemm 4:3bc68a7b299d 4 #include "mbed.h"
isabellemm 4:3bc68a7b299d 5
isabellemm 4:3bc68a7b299d 6 // motor de passo
isabellemm 4:3bc68a7b299d 7 DigitalOut EN_A(D2);
isabellemm 4:3bc68a7b299d 8 DigitalOut IN1_A(D5);
isabellemm 4:3bc68a7b299d 9 DigitalOut IN2_A(D4);
isabellemm 4:3bc68a7b299d 10 DigitalOut EN_B(A4);
isabellemm 4:3bc68a7b299d 11 DigitalOut IN1_B(A0);
isabellemm 4:3bc68a7b299d 12 DigitalOut IN2_B(A1);
isabellemm 4:3bc68a7b299d 13
isabellemm 4:3bc68a7b299d 14 DigitalOut led(LED1);
isabellemm 4:3bc68a7b299d 15
isabellemm 4:3bc68a7b299d 16 InterruptIn enable(PB_6);
isabellemm 4:3bc68a7b299d 17 int estado = 0;
isabellemm 4:3bc68a7b299d 18 Timer debounce;
isabellemm 4:3bc68a7b299d 19
isabellemm 4:3bc68a7b299d 20 // botões retentivos
isabellemm 4:3bc68a7b299d 21 DigitalIn dir(D9);
isabellemm 4:3bc68a7b299d 22
isabellemm 4:3bc68a7b299d 23 AnalogIn POT(A5);
isabellemm 4:3bc68a7b299d 24 float tempo;
isabellemm 4:3bc68a7b299d 25
isabellemm 4:3bc68a7b299d 26 void muda_en(){
isabellemm 4:3bc68a7b299d 27 if (debounce.read_ms()>200){
isabellemm 4:3bc68a7b299d 28 estado=!estado;
isabellemm 4:3bc68a7b299d 29 }
isabellemm 4:3bc68a7b299d 30 debounce.reset();
isabellemm 4:3bc68a7b299d 31 }
isabellemm 4:3bc68a7b299d 32
isabellemm 4:3bc68a7b299d 33 void queda(){
isabellemm 4:3bc68a7b299d 34 debounce.reset();
isabellemm 4:3bc68a7b299d 35 }
isabellemm 4:3bc68a7b299d 36
isabellemm 4:3bc68a7b299d 37 int main(){
isabellemm 4:3bc68a7b299d 38 enable.rise(&muda_en);
isabellemm 4:3bc68a7b299d 39 debounce.start();
isabellemm 4:3bc68a7b299d 40
isabellemm 4:3bc68a7b299d 41 // configurações iniciais
isabellemm 4:3bc68a7b299d 42 EN_A = 0;
isabellemm 4:3bc68a7b299d 43 EN_B = 0;
isabellemm 4:3bc68a7b299d 44 IN1_A = 0;
isabellemm 4:3bc68a7b299d 45 IN2_A = 0;
isabellemm 4:3bc68a7b299d 46 IN1_A = 0;
isabellemm 4:3bc68a7b299d 47 IN1_B = 0;
isabellemm 4:3bc68a7b299d 48
isabellemm 4:3bc68a7b299d 49 while(1) {
isabellemm 4:3bc68a7b299d 50
isabellemm 4:3bc68a7b299d 51 if (estado == 1){
isabellemm 4:3bc68a7b299d 52 tempo = 0.005+(0.05*POT.read());
isabellemm 4:3bc68a7b299d 53
isabellemm 4:3bc68a7b299d 54 //SENTIDO HORÁRIO
isabellemm 4:3bc68a7b299d 55 if (dir.read() == 0){
isabellemm 4:3bc68a7b299d 56
isabellemm 4:3bc68a7b299d 57 // passo 0
isabellemm 4:3bc68a7b299d 58 EN_A = 1;
isabellemm 4:3bc68a7b299d 59 IN1_A = 1;
isabellemm 4:3bc68a7b299d 60 IN2_A = 0;
isabellemm 4:3bc68a7b299d 61 EN_B = 0;
isabellemm 4:3bc68a7b299d 62 IN1_B = 1;
isabellemm 4:3bc68a7b299d 63 IN2_B = 0;
isabellemm 4:3bc68a7b299d 64 wait(tempo);
isabellemm 4:3bc68a7b299d 65
isabellemm 4:3bc68a7b299d 66 // passo 1
isabellemm 4:3bc68a7b299d 67 EN_A = 0;
isabellemm 4:3bc68a7b299d 68 IN1_A = 0;
isabellemm 4:3bc68a7b299d 69 IN2_A = 1;
isabellemm 4:3bc68a7b299d 70 EN_B = 1;
isabellemm 4:3bc68a7b299d 71 IN1_B = 1;
isabellemm 4:3bc68a7b299d 72 IN2_B = 0;
isabellemm 4:3bc68a7b299d 73 wait(tempo);
isabellemm 4:3bc68a7b299d 74
isabellemm 4:3bc68a7b299d 75 // passo 2
isabellemm 4:3bc68a7b299d 76 EN_A = 1;
isabellemm 4:3bc68a7b299d 77 IN1_A = 0;
isabellemm 4:3bc68a7b299d 78 IN2_A = 1;
isabellemm 4:3bc68a7b299d 79 EN_B = 0;
isabellemm 4:3bc68a7b299d 80 IN1_B = 0;
isabellemm 4:3bc68a7b299d 81 IN2_B = 1;
isabellemm 4:3bc68a7b299d 82 wait(tempo);
isabellemm 4:3bc68a7b299d 83
isabellemm 4:3bc68a7b299d 84 // passo 3
isabellemm 4:3bc68a7b299d 85 EN_A = 0;
isabellemm 4:3bc68a7b299d 86 IN1_A = 1;
isabellemm 4:3bc68a7b299d 87 IN2_A = 0;
isabellemm 4:3bc68a7b299d 88 EN_B = 1;
isabellemm 4:3bc68a7b299d 89 IN1_B = 0;
isabellemm 4:3bc68a7b299d 90 IN2_B = 1;
isabellemm 4:3bc68a7b299d 91 wait(tempo);
isabellemm 4:3bc68a7b299d 92 }
isabellemm 4:3bc68a7b299d 93
isabellemm 4:3bc68a7b299d 94 //SENTIDO ANTI-HORÁRIO
isabellemm 4:3bc68a7b299d 95 else if (dir.read() == 1){
isabellemm 4:3bc68a7b299d 96
isabellemm 4:3bc68a7b299d 97 // passo 0
isabellemm 4:3bc68a7b299d 98 EN_A = 1;
isabellemm 4:3bc68a7b299d 99 IN1_A = 1;
isabellemm 4:3bc68a7b299d 100 IN2_A = 0;
isabellemm 4:3bc68a7b299d 101 EN_B = 0;
isabellemm 4:3bc68a7b299d 102 IN1_B = 1;
isabellemm 4:3bc68a7b299d 103 IN2_B = 0;
isabellemm 4:3bc68a7b299d 104 wait(tempo);
isabellemm 4:3bc68a7b299d 105
isabellemm 4:3bc68a7b299d 106 // passo 1 ("passo 3")
isabellemm 4:3bc68a7b299d 107 EN_A = 0;
isabellemm 4:3bc68a7b299d 108 IN1_A = 1;
isabellemm 4:3bc68a7b299d 109 IN2_A = 0;
isabellemm 4:3bc68a7b299d 110 EN_B = 1;
isabellemm 4:3bc68a7b299d 111 IN1_B = 0;
isabellemm 4:3bc68a7b299d 112 IN2_B = 1;
isabellemm 4:3bc68a7b299d 113 wait(tempo);
isabellemm 4:3bc68a7b299d 114
isabellemm 4:3bc68a7b299d 115 // passo 2
isabellemm 4:3bc68a7b299d 116 EN_A = 1;
isabellemm 4:3bc68a7b299d 117 IN1_A = 0;
isabellemm 4:3bc68a7b299d 118 IN2_A = 1;
isabellemm 4:3bc68a7b299d 119 EN_B = 0;
isabellemm 4:3bc68a7b299d 120 IN1_B = 0;
isabellemm 4:3bc68a7b299d 121 IN2_B = 1;
isabellemm 4:3bc68a7b299d 122 wait(tempo);
isabellemm 4:3bc68a7b299d 123
isabellemm 4:3bc68a7b299d 124 // passo 3 ("passo 1")
isabellemm 4:3bc68a7b299d 125 EN_A = 0;
isabellemm 4:3bc68a7b299d 126 IN1_A = 0;
isabellemm 4:3bc68a7b299d 127 IN2_A = 1;
isabellemm 4:3bc68a7b299d 128 EN_B = 1;
isabellemm 4:3bc68a7b299d 129 IN1_B = 1;
isabellemm 4:3bc68a7b299d 130 IN2_B = 0;
isabellemm 4:3bc68a7b299d 131 wait(tempo);
isabellemm 4:3bc68a7b299d 132 }
isabellemm 4:3bc68a7b299d 133 }
isabellemm 4:3bc68a7b299d 134
isabellemm 4:3bc68a7b299d 135 else{
isabellemm 4:3bc68a7b299d 136 EN_A = 0;
isabellemm 4:3bc68a7b299d 137 EN_B = 0;
isabellemm 4:3bc68a7b299d 138 IN1_A = 0;
isabellemm 4:3bc68a7b299d 139 IN2_A = 0;
isabellemm 4:3bc68a7b299d 140 IN1_A = 0;
isabellemm 4:3bc68a7b299d 141 IN1_B = 0;
isabellemm 4:3bc68a7b299d 142 }
isabellemm 4:3bc68a7b299d 143 }
isabellemm 4:3bc68a7b299d 144 }
isabellemm 4:3bc68a7b299d 145
isabellemm 4:3bc68a7b299d 146
isabellemm 4:3bc68a7b299d 147
isabellemm 4:3bc68a7b299d 148