Projeto_Mecatronico_Team / Mbed 2 deprecated Projeto_Mecatronico

Dependencies:   mbed filesystem TextLCD

Fork of Projeto_Mecatronico by Fernando Sakabe

Committer:
ricardoparanhos
Date:
Sun Jun 19 20:51:53 2022 +0000
Revision:
36:6e46a3e4df6c
Parent:
35:c91cd38f7197
19/06/22 - 17h52m

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ricardoparanhos 18:6631cd661227 1 #include "JOG.h"
ricardoparanhos 19:370efb0ce814 2 #include "home.h"
ricardoparanhos 25:7c7567ae64ed 3 #include "LCD.h"
ricardoparanhos 25:7c7567ae64ed 4 #include "tempo_de_ciclo.h"
ricardoparanhos 26:6be302ad0278 5 #include <iostream>
ricardoparanhos 26:6be302ad0278 6 #include "posicao.h"
ricardoparanhos 26:6be302ad0278 7 #include "SD.h"
ricardoparanhos 28:84a60377564e 8 #include "perifericos.h"
ricardoparanhos 30:9e9c06431b3b 9 bool emerg = 0;
ricardoparanhos 28:84a60377564e 10 char mensagem_emergencia[80];
ricardoparanhos 28:84a60377564e 11 bool flag=0;
ricardoparanhos 28:84a60377564e 12 bool flag_main=0;
ricardoparanhos 30:9e9c06431b3b 13 bool flag_lcd=0;
ricardoparanhos 30:9e9c06431b3b 14 bool flag_perifericos = 0;
ricardoparanhos 30:9e9c06431b3b 15 int apitou = 0;
ricardoparanhos 28:84a60377564e 16 InterruptIn velocidade(PB_11);
ricardoparanhos 28:84a60377564e 17 DigitalIn vel_inicial(PB_11);
ricardoparanhos 27:cb310c1d2353 18 InterruptIn emergencia (PC_13);
ricardoparanhos 28:84a60377564e 19
ricardoparanhos 28:84a60377564e 20 void abaixar_velocidade()
ricardoparanhos 28:84a60377564e 21 {
ricardoparanhos 36:6e46a3e4df6c 22 tempo=0.0026;
ricardoparanhos 36:6e46a3e4df6c 23 tempo_z = 0.0026;
ricardoparanhos 36:6e46a3e4df6c 24 // printf("vel abaixar \n");
ricardoparanhos 36:6e46a3e4df6c 25
ricardoparanhos 28:84a60377564e 26 }
ricardoparanhos 28:84a60377564e 27
ricardoparanhos 28:84a60377564e 28 void aumentar_velocidade()
ricardoparanhos 28:84a60377564e 29 {
ricardoparanhos 36:6e46a3e4df6c 30 tempo=0.0021;
ricardoparanhos 36:6e46a3e4df6c 31 tempo_z = 0.0021;
ricardoparanhos 36:6e46a3e4df6c 32 // printf("vel aumentar \n");
ricardoparanhos 36:6e46a3e4df6c 33
ricardoparanhos 28:84a60377564e 34 }
ricardoparanhos 28:84a60377564e 35
ricardoparanhos 36:6e46a3e4df6c 36 void estado_emergencia_funcao () //O botão de emergência, ao ser apertado, reseta o programa.
ricardoparanhos 28:84a60377564e 37 {
ricardoparanhos 36:6e46a3e4df6c 38 NVIC_SystemReset();
ricardoparanhos 28:84a60377564e 39 }
ricardoparanhos 28:84a60377564e 40
ricardoparanhos 28:84a60377564e 41
ricardoparanhos 28:84a60377564e 42
ricardoparanhos 28:84a60377564e 43 int main()
ricardoparanhos 36:6e46a3e4df6c 44
ricardoparanhos 26:6be302ad0278 45 {
ricardoparanhos 36:6e46a3e4df6c 46 velocidade.rise(&abaixar_velocidade);
ricardoparanhos 36:6e46a3e4df6c 47 velocidade.fall(&aumentar_velocidade);
ricardoparanhos 36:6e46a3e4df6c 48 emergencia.rise(&estado_emergencia_funcao);
ricardoparanhos 36:6e46a3e4df6c 49 if(vel_inicial==1) { //identifica em qual velocidade a chave seletora está
ricardoparanhos 36:6e46a3e4df6c 50 tempo=0.0026;
ricardoparanhos 36:6e46a3e4df6c 51 tempo_z = 0.0026;
ricardoparanhos 36:6e46a3e4df6c 52 // printf("vel inicial devagar \n");
ricardoparanhos 27:cb310c1d2353 53 } else {
ricardoparanhos 36:6e46a3e4df6c 54 tempo=0.0021;
ricardoparanhos 36:6e46a3e4df6c 55 tempo_z = 0.0021;
ricardoparanhos 36:6e46a3e4df6c 56 // printf("vel inicial rapido \n");
ricardoparanhos 28:84a60377564e 57 }
ricardoparanhos 36:6e46a3e4df6c 58
ricardoparanhos 28:84a60377564e 59 while(1) {
ricardoparanhos 36:6e46a3e4df6c 60
ricardoparanhos 36:6e46a3e4df6c 61
ricardoparanhos 36:6e46a3e4df6c 62 while (emergencia == 1) { //rotina de emergência
ricardoparanhos 35:c91cd38f7197 63 laser = 0;
ricardoparanhos 30:9e9c06431b3b 64 if(flag_lcd==0) {
ricardoparanhos 30:9e9c06431b3b 65 wait(1);
ricardoparanhos 36:6e46a3e4df6c 66 mostrar_no_lcd("ESTADO DE EMERGENCIA\nDestrave o botao para reiniciar");
ricardoparanhos 30:9e9c06431b3b 67 flag_lcd=1;
ricardoparanhos 30:9e9c06431b3b 68 }
ricardoparanhos 30:9e9c06431b3b 69 if (apitou == 0) {
ricardoparanhos 30:9e9c06431b3b 70 acionar_perifericos (2, 2);
ricardoparanhos 30:9e9c06431b3b 71 apitou = 1;
ricardoparanhos 30:9e9c06431b3b 72 }
ricardoparanhos 30:9e9c06431b3b 73 acionar_perifericos(2, 3);
ricardoparanhos 30:9e9c06431b3b 74 }
ricardoparanhos 36:6e46a3e4df6c 75
ricardoparanhos 28:84a60377564e 76 if(flag==0) {
ricardoparanhos 36:6e46a3e4df6c 77 mostrar_no_lcd("Bem-Vindo!\nAperte Sim para comecar");
ricardoparanhos 28:84a60377564e 78 acionar_perifericos (0, 0);
ricardoparanhos 28:84a60377564e 79 flag=1;
ricardoparanhos 28:84a60377564e 80 }
ricardoparanhos 28:84a60377564e 81 if(arrow_right_button==0) {
ricardoparanhos 28:84a60377564e 82 wait(0.5);
ricardoparanhos 28:84a60377564e 83 while(flag_main==0) {
ricardoparanhos 28:84a60377564e 84 if(flag==1) {
ricardoparanhos 33:74bf0462ad96 85 mostrar_no_lcd("Ir para home?");
ricardoparanhos 28:84a60377564e 86 acionar_perifericos (0, 0);
ricardoparanhos 28:84a60377564e 87 flag=0;
ricardoparanhos 28:84a60377564e 88
ricardoparanhos 28:84a60377564e 89 }
ricardoparanhos 28:84a60377564e 90 wait(0.5);
ricardoparanhos 28:84a60377564e 91 if(arrow_right_button==0) {
ricardoparanhos 28:84a60377564e 92 mostrar_no_lcd("Indo para home...");
ricardoparanhos 30:9e9c06431b3b 93 home();
ricardoparanhos 28:84a60377564e 94 wait(0.5);
ricardoparanhos 28:84a60377564e 95 flag_main=1;
ricardoparanhos 28:84a60377564e 96 }
ricardoparanhos 28:84a60377564e 97 }
ricardoparanhos 28:84a60377564e 98 wait(0.5);
ricardoparanhos 28:84a60377564e 99 while(flag_main==1) {
ricardoparanhos 28:84a60377564e 100 if(flag==0) {
ricardoparanhos 28:84a60377564e 101 acionar_perifericos (0, 0);
ricardoparanhos 36:6e46a3e4df6c 102 mostrar_no_lcd("Utilizar posicoes salvas no SD?");
ricardoparanhos 28:84a60377564e 103 flag=1;
ricardoparanhos 28:84a60377564e 104 }
ricardoparanhos 33:74bf0462ad96 105 if(enter_button==0) {
ricardoparanhos 28:84a60377564e 106 setar_posicoes();
ricardoparanhos 28:84a60377564e 107 flag_main=0;
ricardoparanhos 33:74bf0462ad96 108 mostrar_no_lcd("Indo para home...");
ricardoparanhos 28:84a60377564e 109
ricardoparanhos 33:74bf0462ad96 110 } else if(arrow_right_button==0) {
ricardoparanhos 33:74bf0462ad96 111
ricardoparanhos 33:74bf0462ad96 112 acionar_perifericos (0, 0);
ricardoparanhos 33:74bf0462ad96 113 mostrar_no_lcd("Lendo SD...");
ricardoparanhos 33:74bf0462ad96 114
ricardoparanhos 28:84a60377564e 115
ricardoparanhos 28:84a60377564e 116 ler_SD();
ricardoparanhos 28:84a60377564e 117 flag_main=0;
ricardoparanhos 28:84a60377564e 118 }
ricardoparanhos 28:84a60377564e 119
ricardoparanhos 28:84a60377564e 120 }
ricardoparanhos 28:84a60377564e 121 wait(0.5);
ricardoparanhos 28:84a60377564e 122 while(flag_main==0) {
ricardoparanhos 28:84a60377564e 123
ricardoparanhos 28:84a60377564e 124 if(flag==1) {
ricardoparanhos 28:84a60377564e 125 acionar_perifericos (0, 0);
ricardoparanhos 28:84a60377564e 126 mostrar_tempo_jog_preview();
ricardoparanhos 28:84a60377564e 127 flag=0;
ricardoparanhos 28:84a60377564e 128 }
ricardoparanhos 28:84a60377564e 129 wait(1);
ricardoparanhos 28:84a60377564e 130 if(arrow_right_button==0) {
ricardoparanhos 28:84a60377564e 131 acionar_perifericos (1, 0);
ricardoparanhos 36:6e46a3e4df6c 132 mostrar_no_lcd("Executando JOG PREVIEW...");
ricardoparanhos 28:84a60377564e 133 jog_preview_completo ();
ricardoparanhos 28:84a60377564e 134 flag_main=1;
ricardoparanhos 28:84a60377564e 135 } else if(enter_button==0) {
ricardoparanhos 28:84a60377564e 136 flag_main=1;
ricardoparanhos 28:84a60377564e 137 }
ricardoparanhos 28:84a60377564e 138 }
ricardoparanhos 28:84a60377564e 139 wait(0.5);
ricardoparanhos 28:84a60377564e 140 while(flag_main==1) {
ricardoparanhos 28:84a60377564e 141 if(flag==0) {
ricardoparanhos 28:84a60377564e 142 acionar_perifericos (0, 0);
ricardoparanhos 28:84a60377564e 143 mostrar_tempo_jog();
ricardoparanhos 28:84a60377564e 144 flag=1;
ricardoparanhos 28:84a60377564e 145 }
ricardoparanhos 28:84a60377564e 146
ricardoparanhos 28:84a60377564e 147 if(arrow_right_button==0) {
ricardoparanhos 28:84a60377564e 148 acionar_perifericos (1, 0);
ricardoparanhos 28:84a60377564e 149 mostrar_no_lcd("Executando JOG...");
ricardoparanhos 28:84a60377564e 150
ricardoparanhos 28:84a60377564e 151 jog_completo();
ricardoparanhos 36:6e46a3e4df6c 152 mostrar_no_lcd("JOG finalizado. Para voltar ao inicio aperte sim.");
ricardoparanhos 28:84a60377564e 153 flag_main=0;
ricardoparanhos 30:9e9c06431b3b 154 } else if(enter_button==0) {
ricardoparanhos 30:9e9c06431b3b 155 flag_main=0;
ricardoparanhos 36:6e46a3e4df6c 156 mostrar_no_lcd("Processo finalizado!\nAperte Sim para recomecar.");
ricardoparanhos 28:84a60377564e 157 }
ricardoparanhos 28:84a60377564e 158 }
ricardoparanhos 28:84a60377564e 159 }
ricardoparanhos 26:6be302ad0278 160 }
ricardoparanhos 26:6be302ad0278 161 }
fernandosakabe 0:ecc1b15ec2a9 162