Centro de Controle de Motores parte 2

Dependencies:   TextLCD mbed

Committer:
isabellemm
Date:
Fri Dec 02 15:58:02 2022 +0000
Revision:
5:6f3ae0856d64
Parent:
4:1dcc28a7a849
Serial

Who changed what in which revision?

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