Projeto Mecatrônico - 2020 - G3 / Mbed 2 deprecated Pipetagem

Dependencies:   mbed Pipetagem_automatica

Revision:
2:bce78210ffb1
Parent:
1:3dbb9b66b990
--- a/joystick.h	Mon Jun 29 13:41:37 2020 +0000
+++ b/joystick.h	Mon Jun 29 15:07:42 2020 +0000
@@ -1,8 +1,10 @@
 #include "mbed.h"
 
+//Declaração das portas utilizadas
 AnalogIn XAxis(PA_0);
 AnalogIn YAxis(PA_1);
-InterruptIn PARA_CARAI(PC_9);
+InterruptIn Parada(PC_9);
+InterruptIn Reset(PB_2);
 InterruptIn butao(PC_13);
 DigitalIn ZAxis_UP(PA_8);
 DigitalIn ZAxis_DOWN(PB_10);
@@ -19,14 +21,15 @@
 DigitalOut Fase_M3_C(PC_6);
 DigitalOut Fase_M3_D(PC_8);
 DigitalOut Emergencia(PB_9);
-Serial pc(USBTX, USBRX);
 Timer debounce;
 
-float tempo = 0.01;
-
+//Declaração das funções a serem chamadas posteriormente
 void Botao_Emergencia(void);    
 void PAROU(void);
+void reset(void);
 
+//Declaração das variáveis utilizadas no decorrer do programa
+float tempo = 0.01;
 int ZUP = ZAxis_UP;
 int ZDOWN = ZAxis_DOWN;
 int limite1 = 0;
@@ -38,6 +41,7 @@
 int PosicaoUsuario[] = {0,0,0};
 int estado = 1;
 
+//Função de acionamento do motor do eixo Z para subir a pipeta
 void SubindoZ() {
     if (debounce.read_ms()>200) {
         Fase_M3_D = 1;
@@ -62,11 +66,12 @@
         wait(tempo);
         limite1 = limite1 + 1;
         if (limite1 == 50) {
-            PosicaoUsuario[2] = PosicaoUsuario[2] - 5;
+            PosicaoUsuario[2] = PosicaoUsuario[2] - 5; //Incremento da posição conforme passo do motor
             }
         }
     }
 
+//Função de acionamento do motor do eixo Z para descer a pipeta
 void DescendoZ() {
     if (debounce.read_ms()>200) {
         Fase_M3_A = 1;
@@ -91,13 +96,15 @@
         wait(tempo);
         limite2 = limite2 + 1;
         if (limite2 == 50) {
-            PosicaoUsuario[2] = PosicaoUsuario[2] + 5;
+            PosicaoUsuario[2] = PosicaoUsuario[2] + 5; //Incremento da posição conforme passo do motor
             }
         }
     }   
 
+//Função principal do programa, onde as demais funções são chamadas
 void joystick(){
-
+    
+    //Declaração de algumas variáveis para funcionamento da função
     int X,Y;
     Emergencia = 0;
     Fase_M1_A = 0;
@@ -113,15 +120,18 @@
     Fase_M3_C = 0;
     Fase_M3_D = 0;
     
+    //Inicio do debounce
     debounce.start();
+    
+    //Declaração dos botões necessários para o bom funcionamento do programa
     butao.rise(&Botao_Emergencia);
-    PARA_CARAI.rise(&PAROU);
+    Parada.rise(&PAROU);
     
-    while (estado == 1) {
+    while (estado == 1) { //Inicio do loop do código principal
         
+        //Leitura dos eixos do joystick
         X = XAxis.read() * 1000;
         Y = YAxis.read() * 1000;
-        float tempo = 0.01;
                         
         if (ZAxis_UP != 0 && ZAxis_DOWN == 0) { // Quando o botão UP estiver pressionado e o botão DOWN não - Suba a pipeta - inverte o sentido de rotação do motor
             SubindoZ();
@@ -185,7 +195,7 @@
             wait(tempo);
             limite3 = limite3 + 1;
             if (limite3 == 50) {
-                PosicaoUsuario[0] = PosicaoUsuario[0] - 5;
+                PosicaoUsuario[0] = PosicaoUsuario[0] - 5; //Incremento do valor posição com base no passo do motor
                 }
             }
         
@@ -213,7 +223,7 @@
             wait(tempo);
             limite4 = limite4 + 1;
             if (limite4 == 50) {
-                PosicaoUsuario[0] = PosicaoUsuario[0] + 5;
+                PosicaoUsuario[0] = PosicaoUsuario[0] + 5; //Incremento do valor posição com base no passo do motor
                 }
             } 
         
@@ -241,7 +251,7 @@
             wait(tempo);
             limite5 = limite5 + 1;
             if (limite5 == 50) {
-                PosicaoUsuario[1] = PosicaoUsuario[1] - 5;
+                PosicaoUsuario[1] = PosicaoUsuario[1] - 5; //Incremento do valor posição com base no passo do motor
                 }
             }
         
@@ -269,21 +279,26 @@
             wait(tempo);
             limite6 = limite6 + 1;
             if (limite6 == 50) {
-                PosicaoUsuario[1] = PosicaoUsuario[1] + 5;
+                PosicaoUsuario[1] = PosicaoUsuario[1] + 5; //Incremento do valor posição com base no passo do motor
                 }
             }
         }
     }
 
+//Função de ativação do botão de emergência
 void Botao_Emergencia() {
     if (debounce.read_ms()>200) {
-        Emergencia = 1;
+        Emergencia = 1; //Ao atualizar esta variável desligamos o módulo relê, impossibilitando a execução de qualquer movimento por parte do usuário
         debounce.reset();
         }
-    }
-    
-void PAROU() {
-    estado = 0;
+    Reset.rise(reset);
     }
 
+//Função para saída do loop da função do joystick
+void PAROU() {
+    estado = 0; //Atualiza o valor da variável "estado" de forma a sair do while
+    }
 
+void reset() { //Função de reset para saída do estado de emergência iniciado ao se ativar o botão de emergência
+    Emergencia = 0; //Atualização do valor da variável Emergência para que ele retorne a atividade que estava executando
+    }