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.
Dependencies: HIDScope MODSERIAL mbed
main.cpp
- Committer:
- CasperK
- Date:
- 2018-09-28
- Revision:
- 2:735ca8577f31
- Parent:
- 1:aa505856416d
- Child:
- 3:f00ddd66fe39
File content as of revision 2:735ca8577f31:
#include "mbed.h" #include "MODSERIAL.h" #include "HIDScope.h" PwmOut pwmpin(D6); PwmOut led(D10); AnalogIn potmeter(A5); DigitalIn button(D2); DigitalOut directionpin(D5); HIDScope scope(2); Ticker ticker; enum states{forward, stop, backwards}; states CurrentState; volatile float x; volatile float y; volatile float p = potmeter; void sendData() { scope.set(0,potmeter); //set the potmeter data to the first scope scope.set(1,x); scope.send(); //send the datapoints of the 2 motors } int main() { // float u = -0.3f; //determineusefulvalue, -0.3f is justanexample // directionpin = u > 0; //if bigger than 0, gives true, otherwise gives false x = 1; //placeholder value for potmeter of second motor float scaled_potmeter = (p*2)-1; //scale potmeter from 0-1 to (-1 to 1) float c; //value to be used in negative scaled potmeter value bool forward = scaled_potmeter > 0; bool stop = scaled_potmeter == 0; bool backwards = scaled_potmeter < 0; pwmpin.period_us(60); //60 microseconds PWM period, 16.7 kHz led.period_us(60); //60 microseconds ticker.attach(&sendData, 0.005f); //send data to hidscope at 200Hz while (true) { switch (CurrentState){ case forward: directionpin = true; pwmpin.write(scaled_potmeter); //pwm of motor is potmeter value led.write(scaled_potmeter); //led is potmeter value break; case stop: // do nothing break; case backwards: directionpin = false; c = scaled_potmeter*-1; pwmpin.write(c); //pwm of motor is potmeter value led.write(c); //led is potmeter value break; } wait(1.0f); } }