Test
Dependencies: SRF02 SRF05 mbed
Fork of Prosjekt_2 by
main.cpp
- Committer:
- leonardene
- Date:
- 2016-03-11
- Revision:
- 1:f3c6c8f735a5
- Parent:
- 0:bf27900bdc22
- Child:
- 2:d8543bd496a0
File content as of revision 1:f3c6c8f735a5:
#include "mbed.h" #include "SRF05.h" Serial pc(USBTX, USBRX); Serial bt(p13, p14); DigitalOut led (LED1); DigitalIn imp (p12); SRF05 srf(p9, p10); DigitalOut bar[] = {NC, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30}; Timer t; void avstand(float); void detektor(float); void hastighet(float); int main() { float y; while(1) { pc.printf("\nValg Meny\n"); switch (getchar()) { case('1'): { while (1) { y = srf.read(); avstand (y); if (pc.readable()) { if(getchar() == 'p') break; } wait_ms (50); } break; } case('2'): { y = srf.read(); while (1) { detektor(y); if (pc.readable()) { if(getchar() == 'p') break; } wait_ms(50); } break; } case('3'): { hastighet(y); break; } default: pc.printf("\n ERROR \n"); } } } void avstand(float y) { for(int x = 1; x <= 10; x++) { (x*40 < y) ? bar[x] = 1 : bar[x] = 0; } pc.printf("\nAvstand er:\t%.2fcm\n", y); } void detektor(float y) { float x; x = srf.read(); (y+2 < x || y-2 > x ) ? (led = !led) : (led = 0); } void hastighet (float y) { int z; float start, stopp, bolle; pc.printf("y = %.2fcm\n", y); while(1) { if (y+2 < srf.read() || y-2 > srf.read() ) { z = 1; start = srf.read(); t.start(); pc.printf("Starter maaling\n"); } else z = 0; while (z == 1) { if (t.read() > 2) { stopp = srf.read(); bolle = start - stopp; pc.printf("Farten er %.02fm/s\n", bolle/200); pc.printf("Neste maaling klar om 3sek\n"); wait(3); t.reset(); break; } else if (srf.read() < 10) { t.stop(); stopp = srf.read(); bolle = start - stopp; pc.printf("Farten er %fm/s\n", bolle/(100*t.read())); pc.printf("Neste maaling klar om 3sek\n"); wait(3); t.reset(); break; } } } }