Mapeamento de pista

Dependencies:   mbed

Committer:
raylaneleite
Date:
Sun Sep 06 01:04:42 2020 +0000
Revision:
0:c6afbc8aadcb
encoder

Who changed what in which revision?

UserRevisionLine numberNew contents of line
raylaneleite 0:c6afbc8aadcb 1 #include "mbed.h"
raylaneleite 0:c6afbc8aadcb 2
raylaneleite 0:c6afbc8aadcb 3 InterruptIn interrupt_right(p9);
raylaneleite 0:c6afbc8aadcb 4 InterruptIn interrupt_left(p10);
raylaneleite 0:c6afbc8aadcb 5
raylaneleite 0:c6afbc8aadcb 6 DigitalIn line_right(p13);
raylaneleite 0:c6afbc8aadcb 7 DigitalIn line_left(p14);
raylaneleite 0:c6afbc8aadcb 8
raylaneleite 0:c6afbc8aadcb 9
raylaneleite 0:c6afbc8aadcb 10 int i = 0;
raylaneleite 0:c6afbc8aadcb 11 int LL;
raylaneleite 0:c6afbc8aadcb 12 int LR;
raylaneleite 0:c6afbc8aadcb 13 float perimetro_roda_tick = (2*3.14*16)/(12*10);
raylaneleite 0:c6afbc8aadcb 14 int giro_right = 0;
raylaneleite 0:c6afbc8aadcb 15 int giro_left = 0;
raylaneleite 0:c6afbc8aadcb 16 float mapa[50][2];
raylaneleite 0:c6afbc8aadcb 17
raylaneleite 0:c6afbc8aadcb 18 void conta_giro_right()
raylaneleite 0:c6afbc8aadcb 19 {
raylaneleite 0:c6afbc8aadcb 20 giro_right++;
raylaneleite 0:c6afbc8aadcb 21 }
raylaneleite 0:c6afbc8aadcb 22
raylaneleite 0:c6afbc8aadcb 23 void conta_giro_left()
raylaneleite 0:c6afbc8aadcb 24 {
raylaneleite 0:c6afbc8aadcb 25 giro_left++;
raylaneleite 0:c6afbc8aadcb 26 }
raylaneleite 0:c6afbc8aadcb 27
raylaneleite 0:c6afbc8aadcb 28 void mapeamento()
raylaneleite 0:c6afbc8aadcb 29 {
raylaneleite 0:c6afbc8aadcb 30 mapa[i][0] = giro_left*perimetro_roda_tick;
raylaneleite 0:c6afbc8aadcb 31 mapa[i][1] = giro_right*perimetro_roda_tick;
raylaneleite 0:c6afbc8aadcb 32 if (LL == 1)
raylaneleite 0:c6afbc8aadcb 33 i++;
raylaneleite 0:c6afbc8aadcb 34 giro_right = 0;
raylaneleite 0:c6afbc8aadcb 35 giro_left = 0;
raylaneleite 0:c6afbc8aadcb 36 }
raylaneleite 0:c6afbc8aadcb 37
raylaneleite 0:c6afbc8aadcb 38
raylaneleite 0:c6afbc8aadcb 39 int main()
raylaneleite 0:c6afbc8aadcb 40 {
raylaneleite 0:c6afbc8aadcb 41 interrupt_right.rise(&conta_giro_right);
raylaneleite 0:c6afbc8aadcb 42 interrupt_left.rise(&conta_giro_left);
raylaneleite 0:c6afbc8aadcb 43 while(1)
raylaneleite 0:c6afbc8aadcb 44 {
raylaneleite 0:c6afbc8aadcb 45 LR = line_right.read();
raylaneleite 0:c6afbc8aadcb 46 LL = line_left.read();
raylaneleite 0:c6afbc8aadcb 47 if (LR == 1 || LL == 1)
raylaneleite 0:c6afbc8aadcb 48 mapeamento();
raylaneleite 0:c6afbc8aadcb 49 }
raylaneleite 0:c6afbc8aadcb 50 }