RioBotz / Mbed 2 deprecated TesteSensoresLFBeta

Dependencies:   mbed

Revision:
1:d45444439ccb
Parent:
0:3af2fc20e7c1
Child:
2:e66266d2c51f
--- a/main.cpp	Wed Feb 19 15:20:58 2020 +0000
+++ b/main.cpp	Wed Feb 19 21:17:35 2020 +0000
@@ -1,70 +1,90 @@
 #include "mbed.h"
 
 // Código para testar os sensores de linha,lendo através do tempo de decaimento do sensor e utilizando o multiplexador
-#define threshold 500 // parametro que diferencia a leitura do branco pro preto
-Serial bt (p28,p27);
+#define threshold 3000 // parametro que diferencia a leitura do branco pro preto
+Serial bt (USBTX,USBRX);
 
+PwmOut pwm(p25);
+DigitalOut dir (p26);
+PwmOut pwm1(p24);
+DigitalOut dir1 (p23);
 DigitalOut multiplexador1(p5); // portas do multiplexador que selecionam o sensor de linha
 DigitalOut multiplexador2(p6);
 DigitalOut multiplexador3(p7); // PRECISA AJUSTAR OS PINOS
 DigitalOut multiplexador4(p8);
-DigitalOut multiplexador5(p9);// Enable do multiplexador
-DigitalInOut multiplexadorInOut(p10); // In/Out do multiplexador 
-/*
+//DigitalOut multiplexador5(p9);// Enable do multiplexador
+DigitalInOut multiplexadorInOut(p9); // In/Out do multiplexador 
+
 int tabelaVerdade1[16] = {0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1}; // Arrays para selecionar o sensor de linha na função sensorCheck
 int tabelaVerdade2[16] = {0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1};
 int tabelaVerdade3[16] = {0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,1};
 int tabelaVerdade4[16] = {0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1};
-*/
+
 Timer tempoDoSensor; // timer para leitura do sensor de linha
 
+void Setup_Sensores (void){ //Define o modo de cada sensor como PullUp
+    
+    multiplexadorInOut.mode(PullDown);
+    
+}
+
+
+
 bool sensorCheck(int sensor){// int sensor é qual sensor se deseja ler,entre 0 a 15
     // função para ler os motores,retorna true se for branco e false se for preto
-    /*
+   
     multiplexador1.write(tabelaVerdade1[sensor]); // selecionando o sensor
     multiplexador2.write(tabelaVerdade2[sensor]);
     multiplexador3.write(tabelaVerdade3[sensor]);
     multiplexador4.write(tabelaVerdade4[sensor]);
-    */
+   
     multiplexadorInOut.output(); // colocando o InOut como Out
     multiplexadorInOut.write(1); // levando ele a high por pelo menos 10 microssegundos
     
-    wait_ms(11); // tempo para o output ir para high
-    
+    wait_us(11); // tempo para o output ir para high
+
     tempoDoSensor.start(); // iniciando o contador
     multiplexadorInOut.input(); // colocando o InOut como In
     while(multiplexadorInOut.read() == 1){// enrolando enquanto o sensor esta lendo
-        if (tempoDoSensor.read_ms() >= threshold){// termina o while se o tempo for maior que o threshold,agilizando o processo de leitura
+       /* if (tempoDoSensor.read_ms() >= threshold){// termina o while se o tempo for maior que o threshold,agilizando o processo de leitura
             tempoDoSensor.stop();
-            tempoDoSensor.reset();
+            
             float tempoDeLeitura = tempoDoSensor.read_ms();
-            bt.printf ("Tempo de leitura :%f /n ",tempoDeLeitura); // debug
+            bt.printf ("Tempo de leitura :%f \n\r ",tempoDeLeitura); // debug
+            tempoDoSensor.reset();
             return false; // retorna quando for preto
-            }
+            }*/
+            bt.printf("To no loop \n\r");
     }
     tempoDoSensor.stop();
+    float tempoDeLeitura = tempoDoSensor.read_us();
+    bt.printf ("Tempo de leitura :%f \n\r ",tempoDeLeitura); // debug
     tempoDoSensor.reset();
-    float tempoDeLeitura = tempoDoSensor.read_ms();
-    bt.printf ("Tempo de leitura :%f /n ",tempoDeLeitura); // debug
     return true;// retorna quando for branco
     }
+void Final_Stop(){ dir = 0; dir1 = 0; pwm.write(0); pwm1.write(0);  } //Função de parada do LF depois do percurso
 
 int main() {
-    bt.printf("Iniciando a leitura de sensores: ");
-    bool tempoSensor4 = sensorCheck(4); // le e printa sensor 4
-    bt.printf("Sensor 4:%d\n",tempoSensor4);
-    bool tempoSensor5 = sensorCheck(5); // le e printa sensor 5
-    bt.printf("Sensor 5:%d\n",tempoSensor5);
-    bool tempoSensor6 = sensorCheck(6); // le e printa sensor 6
-    bt.printf("Sensor 6:%d\n",tempoSensor6);
-    bool tempoSensor7 = sensorCheck(7); // le e printa sensor 7
-    bt.printf("Sensor 7:%d\n",tempoSensor7);
-    bool tempoSensor8 = sensorCheck(8); // le e printa sensor 8
-    bt.printf("Sensor 8:%d\n",tempoSensor8);
-    bool tempoSensor9 = sensorCheck(9); // le e printa sensor 9
-    bt.printf("Sensor 9:%d\n",tempoSensor9);
-    bool tempoSensor10 = sensorCheck(10); // le e printa sensor 10
-    bt.printf("Sensor 10:%d\n",tempoSensor10);
-    bool tempoSensor11 = sensorCheck(11); // le e printa sensor 11
-    bt.printf("Sensor 11:%d\n",tempoSensor11);
+    Setup_Sensores();
+    while(1){
+        Final_Stop();
+        /*bt.printf("Iniciando a leitura de sensores: ");
+        bool tempoSensor4 = sensorCheck(4); // le e printa sensor 4
+        bt.printf("Sensor 4:%d\n\r",tempoSensor4);
+        bool tempoSensor5 = sensorCheck(5); // le e printa sensor 5
+        bt.printf("Sensor 5:%d\n\r",tempoSensor5);
+        bool tempoSensor6 = sensorCheck(6); // le e printa sensor 6
+        bt.printf("Sensor 6:%d\n\r",tempoSensor6);
+        bool tempoSensor7 = sensorCheck(7); // le e printa sensor 7
+        bt.printf("Sensor 7:%d\n\r",tempoSensor7);
+        bool tempoSensor8 = sensorCheck(8); // le e printa sensor 8
+        bt.printf("Sensor 8:%d\n\r",tempoSensor8);
+        bool tempoSensor9 = sensorCheck(9); // le e printa sensor 9
+        bt.printf("Sensor 9:%d\n\r",tempoSensor9);
+        bool tempoSensor10 = sensorCheck(10); // le e printa sensor 10
+        bt.printf("Sensor 10:%d\n\r",tempoSensor10);
+       */ bool tempoSensor11 = sensorCheck(11); // le e printa sensor 11
+        bt.printf("Sensor 11:%d\n\r",tempoSensor11);
+        }
+    
 }