Code for Longboard
Dependencies: mbed
main2.cpp
- Committer:
- OliviaR
- Date:
- 2018-04-26
- Revision:
- 2:b150c439e583
File content as of revision 2:b150c439e583:
#include "mbed.h" #include "uLCD_4DGL.h" #include "rtos.h" Serial pc(USBTX, USBRX); Ticker t; InterruptIn risingEdge(p8); //halleffect sensor uLCD_4DGL uLCD(p9,p10,p11); // serial tx, serial rx, reset pin; AnalogIn batt(p19); volatile int count = 0.0; volatile float vel = 0.0; float pbatt = 0.0; void pulses() //hall effect triggers { count++; } void halleffect() //calculates velocity { float temp = count; count = 0; temp = temp/4; // four magnets in trigger - gives rps vel = temp * 3.14159 * 0.035 * 2 *60 * 60 * 0.000621371 ; // radius of .035m } void display(void const *argument) //update battery voltage display and velocity { while(1) { float battAdj = float(batt * 3.3 * 3.968); uLCD.color(WHITE); uLCD.locate(2,2); uLCD.printf("%3.1f", vel*0.67); uLCD.locate(2,3); uLCD.printf("MPH"); //if (battAdj == pbatt) break; if (battAdj >= 11) { uLCD.filled_rectangle(6,99,29,16,GREEN); pbatt = battAdj; } else if ((battAdj >= 9)&&(battAdj < 11)) { uLCD.filled_rectangle(6,99,29,16,WHITE); uLCD.filled_rectangle(6,99,29,45,(GREEN+RED)); pbatt = battAdj; } else if (battAdj < 9) { uLCD.filled_rectangle(6,99,29,16,WHITE); uLCD.filled_rectangle(6,99,29,70,RED); pbatt = battAdj; } Thread::wait(1000); } } int main() { uLCD.cls(); uLCD.baudrate(3000000); //jack up baud rate to max uLCD.background_color(BLACK); uLCD.cls(); uLCD.text_width(3.5); uLCD.text_height(3.5); uLCD.filled_rectangle(5,100,30,15,WHITE); uLCD.filled_rectangle(12,15,22,10,WHITE); risingEdge.rise(&pulses); //interrupt routine t.attach(&halleffect, 1.0); //calculate velocity every second Thread displaythread(display); //update display while(1) { } }