Projeto Mecatrônico / Mbed 2 deprecated JOG_EIXO_Z

Dependencies:   mbed

Committer:
diogonac
Date:
Fri May 14 19:46:31 2021 +0000
Revision:
14:2b72dd426da1
Parent:
13:9ee128577854
Child:
15:a0927f239a4c
Diogo

Who changed what in which revision?

UserRevisionLine numberNew contents of line
diogonac 3:ce5c55c100b1 1 #include "mbed.h"
diogonac 13:9ee128577854 2
diogonac 3:ce5c55c100b1 3 Serial pc (USBTX, USBRX);
diogonac 3:ce5c55c100b1 4
diogonac 6:c344e6b93f34 5
diogonac 13:9ee128577854 6 AnalogIn eixo_Z(A0);
diogonac 4:c3007ca446ec 7 InterruptIn posicao_salva(PA_8);
diogonac 13:9ee128577854 8 InterruptIn botao_emergencia(PB_10);
diogonac 3:ce5c55c100b1 9
diogonac 4:c3007ca446ec 10 BusOut motor_z(PB_1, PB_15, PB_14, PB_13);
diogonac 3:ce5c55c100b1 11
diogonac 3:ce5c55c100b1 12 double tempo; //Segundos
diogonac 3:ce5c55c100b1 13 int i;
diogonac 13:9ee128577854 14 int Z;
diogonac 13:9ee128577854 15 int pegaZ;
diogonac 4:c3007ca446ec 16 int posicao_salva_estado, botao_emergencia_estado;
diogonac 3:ce5c55c100b1 17
diogonac 4:c3007ca446ec 18 void rotina_posicao_salva(void);
diogonac 4:c3007ca446ec 19 void rotina_emergencia(void);
diogonac 13:9ee128577854 20 void rotida_velocidade_eixo_Z(void);
diogonac 3:ce5c55c100b1 21
diogonac 3:ce5c55c100b1 22
diogonac 3:ce5c55c100b1 23 int main()
diogonac 3:ce5c55c100b1 24 {
diogonac 13:9ee128577854 25
diogonac 13:9ee128577854 26 pc.baud(115200);
diogonac 4:c3007ca446ec 27 motor_z = 0x00;
diogonac 4:c3007ca446ec 28 posicao_salva.rise(&rotina_posicao_salva);
diogonac 4:c3007ca446ec 29 botao_emergencia.rise(&rotina_emergencia);
diogonac 3:ce5c55c100b1 30
diogonac 3:ce5c55c100b1 31 while(1) {
diogonac 3:ce5c55c100b1 32
diogonac 4:c3007ca446ec 33 Z = eixo_Z.read_u16();
diogonac 4:c3007ca446ec 34 posicao_salva_estado = posicao_salva.read();
diogonac 4:c3007ca446ec 35 botao_emergencia_estado = botao_emergencia.read();
diogonac 13:9ee128577854 36 rotida_velocidade_eixo_Z();
diogonac 13:9ee128577854 37 pc.printf("Z=%4d, PegaZ=%4d, Posicao_salva_estado=%d, Botao_emergencia_estado=%d \r\n", Z, pegaZ, posicao_salva_estado, botao_emergencia_estado);
diogonac 3:ce5c55c100b1 38
diogonac 13:9ee128577854 39 if(31000 <= Z & Z <= 35000) {
diogonac 4:c3007ca446ec 40
diogonac 4:c3007ca446ec 41 motor_z = 0x00;
diogonac 13:9ee128577854 42
diogonac 4:c3007ca446ec 43 } else {
diogonac 13:9ee128577854 44 if (Z > 31000) {
diogonac 4:c3007ca446ec 45 for(i = 0; i < 4; i++) {
diogonac 4:c3007ca446ec 46 motor_z = 1 << i;
diogonac 4:c3007ca446ec 47 wait(tempo);
diogonac 4:c3007ca446ec 48 }
diogonac 4:c3007ca446ec 49 }
diogonac 4:c3007ca446ec 50
diogonac 13:9ee128577854 51 if(Z < 35000) {
diogonac 4:c3007ca446ec 52 for(i = 3; i > -1; i--) {
diogonac 4:c3007ca446ec 53 motor_z = 1 << i;
diogonac 4:c3007ca446ec 54 wait(tempo);
diogonac 4:c3007ca446ec 55 }
diogonac 4:c3007ca446ec 56 }
diogonac 4:c3007ca446ec 57 }
diogonac 4:c3007ca446ec 58
diogonac 3:ce5c55c100b1 59 }
diogonac 3:ce5c55c100b1 60 }
diogonac 3:ce5c55c100b1 61
diogonac 3:ce5c55c100b1 62
diogonac 4:c3007ca446ec 63 void rotina_posicao_salva()
diogonac 3:ce5c55c100b1 64 {
diogonac 14:2b72dd426da1 65 if(posicao_salva_estado == 0) pegaZ = Z;
diogonac 13:9ee128577854 66 else pegaZ = 0;
diogonac 4:c3007ca446ec 67 }
diogonac 4:c3007ca446ec 68
diogonac 4:c3007ca446ec 69 void rotina_emergencia()
diogonac 4:c3007ca446ec 70 {
diogonac 13:9ee128577854 71 if(botao_emergencia_estado == 0) motor_z = 0x00;
diogonac 13:9ee128577854 72 }
diogonac 4:c3007ca446ec 73
diogonac 13:9ee128577854 74 void rotida_velocidade_eixo_Z()
diogonac 13:9ee128577854 75 {
diogonac 13:9ee128577854 76 tempo = (Z/65535)*(1/512);
diogonac 3:ce5c55c100b1 77 }