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: Encoder HIDScope MODSERIAL mbed
Fork of Cases_homepos_picontrol_EMG_2 by
main.cpp
- Committer:
- riannebulthuis
- Date:
- 2015-10-19
- Revision:
- 1:7d5e6bc2b314
- Parent:
- 0:65ab9f79a4cc
- Child:
- 2:866a8a9f2b93
File content as of revision 1:7d5e6bc2b314:
#include "mbed.h"
#include "encoder.h"
#include "HIDScope.h"
#include "QEI.h"
#include "MODSERIAL.h"
DigitalOut motor1_direction(D4);
PwmOut motor1_speed(D5);
PwmOut led(D9);
DigitalIn button_1(PTC6); //counterclockwise
DigitalIn button_2(PTA4); //clockwise
Encoder motor1(D12,D13);
HIDScope scope(1);
const int pressed = 0;
double H;
double P;
double D;
void sethome(){
motor1.setPosition(0);
H = motor1.getPosition();
}
void move_motor1_ccw (){
motor1_direction = 0;
motor1_speed = 0.8;
}
void move_motor1_cw (){
motor1_direction = 1;
motor1_speed = 0.8;
}
void movetohome(){
P = motor1.getPosition();
D = (P - H);
if (D == 0){
motor1_speed = 0;
}
else if (D > 0){
move_motor1_cw();
}
else if (D < 0){
move_motor1_ccw();
}
}
void move_motor1()
{
if (button_1 == pressed) {
move_motor1_cw ();
} else if (button_2 == pressed) {
move_motor1_ccw ();
} else {
motor1_speed = 0;
}
}
void read_encoder1 () // aflezen van encoder via hidscope??
{
scope.set(0,motor1.getPosition());
led.write(motor1.getPosition()/100.0);
scope.send();
wait(0.2f);
}
int main()
{
while (true) {
pc.baud(9600); //pc baud rate van de computer
switch (state) { //zorgt voor het in goede volgorde uitvoeren van de cases
case gotohomeposition: //positie op 0 zetten voor arm 1
{
read_encoder1();
sethome();
state = move_motor;
break;
}
case move_motor: //motor kan cw en ccw bewegen a.d.h.v. buttons
{
move_motor1 ();
state = homeposition;
break;
}
case backtohomeposition: //motor gaat terug naar homeposition
{
movetohome();
break;
}
}
