Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
JOG_EIXO_Z.cpp@14:2b72dd426da1, 2021-05-14 (annotated)
- 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?
| User | Revision | Line number | New 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 | } |