Sz_Insper / Mbed 2 deprecated Line_follow

Dependencies:   mbed

Committer:
Marcelocostanzo
Date:
Fri Oct 05 18:11:37 2018 +0000
Revision:
0:0d443d0229c9
Child:
1:fe4f6f2d9ca6
logica funcionando, sem pwm

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Marcelocostanzo 0:0d443d0229c9 1 #include "mbed.h"
Marcelocostanzo 0:0d443d0229c9 2 #define corte 2800
Marcelocostanzo 0:0d443d0229c9 3
Marcelocostanzo 0:0d443d0229c9 4 AnalogIn S0(A3);
Marcelocostanzo 0:0d443d0229c9 5 AnalogIn S1(A5);
Marcelocostanzo 0:0d443d0229c9 6 DigitalIn BT(BUTTON1);
Marcelocostanzo 0:0d443d0229c9 7 DigitalOut led(LED1);
Marcelocostanzo 0:0d443d0229c9 8 DigitalOut IN1B(PA_0);
Marcelocostanzo 0:0d443d0229c9 9 DigitalOut IN2B(PA_1);
Marcelocostanzo 0:0d443d0229c9 10 DigitalOut IN1A(PB_4);
Marcelocostanzo 0:0d443d0229c9 11 DigitalOut IN2A(PB_5);
Marcelocostanzo 0:0d443d0229c9 12 DigitalOut ENA(PA_10);
Marcelocostanzo 0:0d443d0229c9 13 DigitalOut ENB(PC_1);
Marcelocostanzo 0:0d443d0229c9 14 Serial pc(USBTX, USBRX); // tx, rx
Marcelocostanzo 0:0d443d0229c9 15
Marcelocostanzo 0:0d443d0229c9 16
Marcelocostanzo 0:0d443d0229c9 17 int main()
Marcelocostanzo 0:0d443d0229c9 18 {
Marcelocostanzo 0:0d443d0229c9 19 float S0_val = 0;
Marcelocostanzo 0:0d443d0229c9 20 float S1_val = 0;
Marcelocostanzo 0:0d443d0229c9 21 bool flag = 0;
Marcelocostanzo 0:0d443d0229c9 22
Marcelocostanzo 0:0d443d0229c9 23 ENA = 1;
Marcelocostanzo 0:0d443d0229c9 24 ENB = 1;
Marcelocostanzo 0:0d443d0229c9 25
Marcelocostanzo 0:0d443d0229c9 26 while(1)
Marcelocostanzo 0:0d443d0229c9 27 {
Marcelocostanzo 0:0d443d0229c9 28
Marcelocostanzo 0:0d443d0229c9 29
Marcelocostanzo 0:0d443d0229c9 30 S0_val = S0.read();
Marcelocostanzo 0:0d443d0229c9 31 S1_val = S1.read();
Marcelocostanzo 0:0d443d0229c9 32
Marcelocostanzo 0:0d443d0229c9 33 S0_val = S0_val * 3300; // Converts value in the 0V-3.3V range
Marcelocostanzo 0:0d443d0229c9 34 S1_val = S1_val * 3300; // Converts value in the 0V-3.3V range
Marcelocostanzo 0:0d443d0229c9 35
Marcelocostanzo 0:0d443d0229c9 36 // Display values
Marcelocostanzo 0:0d443d0229c9 37 printf("measure S0 = %.0f mV\n", S0_val);
Marcelocostanzo 0:0d443d0229c9 38 printf("measure S1 = %.0f mV\n", S1_val);
Marcelocostanzo 0:0d443d0229c9 39
Marcelocostanzo 0:0d443d0229c9 40 if(BT == 0)
Marcelocostanzo 0:0d443d0229c9 41 {
Marcelocostanzo 0:0d443d0229c9 42 wait(0.1);
Marcelocostanzo 0:0d443d0229c9 43 if(BT == 0 && flag == 0)
Marcelocostanzo 0:0d443d0229c9 44 {
Marcelocostanzo 0:0d443d0229c9 45 flag = 1;
Marcelocostanzo 0:0d443d0229c9 46 led = 1;
Marcelocostanzo 0:0d443d0229c9 47 wait(0.5);
Marcelocostanzo 0:0d443d0229c9 48 }
Marcelocostanzo 0:0d443d0229c9 49 }
Marcelocostanzo 0:0d443d0229c9 50
Marcelocostanzo 0:0d443d0229c9 51 if(flag == 0)
Marcelocostanzo 0:0d443d0229c9 52 led = 0;
Marcelocostanzo 0:0d443d0229c9 53
Marcelocostanzo 0:0d443d0229c9 54 if(flag == 1)
Marcelocostanzo 0:0d443d0229c9 55 {
Marcelocostanzo 0:0d443d0229c9 56 printf("ACIONADO\n");
Marcelocostanzo 0:0d443d0229c9 57 if((S0_val > corte) && (S1_val > corte))
Marcelocostanzo 0:0d443d0229c9 58 {
Marcelocostanzo 0:0d443d0229c9 59 IN2A = 0;
Marcelocostanzo 0:0d443d0229c9 60 IN2B = 0;
Marcelocostanzo 0:0d443d0229c9 61 IN1A = 0;
Marcelocostanzo 0:0d443d0229c9 62 IN1B = 0;
Marcelocostanzo 0:0d443d0229c9 63 }
Marcelocostanzo 0:0d443d0229c9 64
Marcelocostanzo 0:0d443d0229c9 65 if((S0_val < corte) && (S1_val < corte))
Marcelocostanzo 0:0d443d0229c9 66 {
Marcelocostanzo 0:0d443d0229c9 67 IN2A = 1;
Marcelocostanzo 0:0d443d0229c9 68 IN2B = 0;
Marcelocostanzo 0:0d443d0229c9 69 IN1A = 0;
Marcelocostanzo 0:0d443d0229c9 70 IN1B = 1;
Marcelocostanzo 0:0d443d0229c9 71 }
Marcelocostanzo 0:0d443d0229c9 72
Marcelocostanzo 0:0d443d0229c9 73 if((S0_val < corte) && (S1_val > corte))
Marcelocostanzo 0:0d443d0229c9 74 {
Marcelocostanzo 0:0d443d0229c9 75 IN2A = 0;
Marcelocostanzo 0:0d443d0229c9 76 IN2B = 0;
Marcelocostanzo 0:0d443d0229c9 77 IN1A = 0;
Marcelocostanzo 0:0d443d0229c9 78 IN1B = 1;
Marcelocostanzo 0:0d443d0229c9 79 }
Marcelocostanzo 0:0d443d0229c9 80
Marcelocostanzo 0:0d443d0229c9 81 if((S0_val > corte) && (S1_val < corte))
Marcelocostanzo 0:0d443d0229c9 82 {
Marcelocostanzo 0:0d443d0229c9 83 IN2A = 1;
Marcelocostanzo 0:0d443d0229c9 84 IN2B = 0;
Marcelocostanzo 0:0d443d0229c9 85 IN1A = 0;
Marcelocostanzo 0:0d443d0229c9 86 IN1B = 0;
Marcelocostanzo 0:0d443d0229c9 87 }
Marcelocostanzo 0:0d443d0229c9 88 }
Marcelocostanzo 0:0d443d0229c9 89
Marcelocostanzo 0:0d443d0229c9 90 if(BT == 0)
Marcelocostanzo 0:0d443d0229c9 91 {
Marcelocostanzo 0:0d443d0229c9 92 wait(0.1);
Marcelocostanzo 0:0d443d0229c9 93 if(BT == 0 && flag == 1)
Marcelocostanzo 0:0d443d0229c9 94 {
Marcelocostanzo 0:0d443d0229c9 95 flag = 0;
Marcelocostanzo 0:0d443d0229c9 96 printf("DESACIONADO\n");
Marcelocostanzo 0:0d443d0229c9 97 ENA = 0;
Marcelocostanzo 0:0d443d0229c9 98 ENB = 0;
Marcelocostanzo 0:0d443d0229c9 99 wait(0.5);
Marcelocostanzo 0:0d443d0229c9 100 }
Marcelocostanzo 0:0d443d0229c9 101 }
Marcelocostanzo 0:0d443d0229c9 102
Marcelocostanzo 0:0d443d0229c9 103 //wait(0.2); // 1 second
Marcelocostanzo 0:0d443d0229c9 104 }
Marcelocostanzo 0:0d443d0229c9 105 }