![](/media/cache/group/Logo_RioBotz.png.50x50_q85.jpg)
Mapeamento de pista
Dependencies: mbed
main.cpp@0:c6afbc8aadcb, 2020-09-06 (annotated)
- Committer:
- raylaneleite
- Date:
- Sun Sep 06 01:04:42 2020 +0000
- Revision:
- 0:c6afbc8aadcb
encoder
Who changed what in which revision?
User | Revision | Line number | New 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 | } |