Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp@10:8d86e59fb408, 2020-12-01 (annotated)
- Committer:
- bky
- Date:
- Tue Dec 01 02:05:33 2020 +0000
- Revision:
- 10:8d86e59fb408
- Parent:
- 9:b7e8d0372f53
- Child:
- 11:dd860c2e12ec
implemented timer and velocity calculations
Who changed what in which revision?
| User | Revision | Line number | New contents of line | 
|---|---|---|---|
| bky | 10:8d86e59fb408 | 1 | # include "mbed.h" | 
| bky | 10:8d86e59fb408 | 2 | # include "Timer.h" | 
| bky | 9:b7e8d0372f53 | 3 | |
| bky | 10:8d86e59fb408 | 4 | # include <stdlib.h> | 
| bky | 10:8d86e59fb408 | 5 | # include <time.h> | 
| bky | 10:8d86e59fb408 | 6 | |
| bky | 10:8d86e59fb408 | 7 | # define NUM_HOLES 32 | 
| bky | 10:8d86e59fb408 | 8 | # define CIRCUMFRENCE_CM 48.6946861 | 
| bky | 9:b7e8d0372f53 | 9 | |
| bky | 9:b7e8d0372f53 | 10 | # define LIGHT_SENSOR_PIN p15 | 
| bky | 10:8d86e59fb408 | 11 | # define FLASH_THRESHOLD 0.93 | 
| bky | 9:b7e8d0372f53 | 12 | |
| bky | 9:b7e8d0372f53 | 13 | |
| bky | 9:b7e8d0372f53 | 14 | AnalogIn lightSensorVoltage(LIGHT_SENSOR_PIN); | 
| bky | 9:b7e8d0372f53 | 15 | Serial pc(USBTX, USBRX); | 
| bky | 0:d724bf9c4031 | 16 | |
| bky | 0:d724bf9c4031 | 17 | DigitalOut myled(LED1); | 
| bky | 0:d724bf9c4031 | 18 | |
| bky | 10:8d86e59fb408 | 19 | int lastFlash = 0; | 
| bky | 10:8d86e59fb408 | 20 | float prevVoltReading = 0.0; | 
| bky | 10:8d86e59fb408 | 21 | float currVoltReading = 0.0; | 
| bky | 10:8d86e59fb408 | 22 | float rotationsPerMili = 0.0; | 
| bky | 9:b7e8d0372f53 | 23 | |
| bky | 9:b7e8d0372f53 | 24 | void sendFloat(float value) { | 
| bky | 9:b7e8d0372f53 | 25 | for (int i=0; i<4; i++) | 
| bky | 9:b7e8d0372f53 | 26 | pc.putc(*(((char*) &value)+i)); | 
| bky | 9:b7e8d0372f53 | 27 | } | 
| bky | 9:b7e8d0372f53 | 28 | |
| bky | 0:d724bf9c4031 | 29 | int main() { | 
| bky | 10:8d86e59fb408 | 30 | Timer timer; | 
| bky | 10:8d86e59fb408 | 31 | timer.start(); | 
| bky | 10:8d86e59fb408 | 32 | int currTime = 0; | 
| bky | 10:8d86e59fb408 | 33 | int prevTime = 0; | 
| bky | 10:8d86e59fb408 | 34 | |
| bky | 10:8d86e59fb408 | 35 | float velocity = 0; | 
| bky | 10:8d86e59fb408 | 36 | |
| bky | 7:12eed49f95fc | 37 | while(1) { | 
| bky | 10:8d86e59fb408 | 38 | currVoltReading = lightSensorVoltage.read(); | 
| bky | 10:8d86e59fb408 | 39 | if(prevVoltReading < FLASH_THRESHOLD && currVoltReading >= FLASH_THRESHOLD) { | 
| bky | 10:8d86e59fb408 | 40 | currTime = timer.read_ms(); | 
| bky | 10:8d86e59fb408 | 41 | rotationsPerMili = (currTime - prevTime) / NUM_HOLES; | 
| bky | 10:8d86e59fb408 | 42 | |
| bky | 10:8d86e59fb408 | 43 | prevTime = currTime; | 
| bky | 10:8d86e59fb408 | 44 | velocity = CIRCUMFRENCE_CM * rotationsPerMili * 1000; | 
| bky | 10:8d86e59fb408 | 45 | } | 
| bky | 10:8d86e59fb408 | 46 | |
| bky | 10:8d86e59fb408 | 47 | prevVoltReading = currVoltReading; | 
| bky | 10:8d86e59fb408 | 48 | |
| bky | 10:8d86e59fb408 | 49 | sendFloat(velocity); | 
| bky | 10:8d86e59fb408 | 50 | wait(0.05); | 
| bky | 7:12eed49f95fc | 51 | } | 
| bky | 10:8d86e59fb408 | 52 | } | 
