Samenwerking Groep 12
Dependencies: Encoder MODSERIAL HIDScope mbed
Foo
main.cpp
- Committer:
- ThomasBNL
- Date:
- 2015-09-21
- Revision:
- 16:8975d6c900f0
- Parent:
- 15:80af7a7671d4
- Child:
- 19:269f19917d80
File content as of revision 16:8975d6c900f0:
#include "mbed.h" #include "HIDScope.h" #include "encoder.h" #include "MODSERIAL.h" //Motor 2 DigitalOut motor2direction(D4); //D4 en D5 zijn motor 2 (op het motorshield) PwmOut motor2speed(D5); DigitalIn button(PTA4); Encoder motor2(D13,D12); MODSERIAL pc(USBTX,USBRX); Ticker myControllerTicker; //AnalogIn potmeter2(A0); /NIEUW // constantes definieren double counts_per_revolution=4200; double degrees_per_turn=360; double counts_per_degree=counts_per_revolution/degrees_per_turn; //11.67 counts/degree const double motor2_Kp = 2.5; //constante motor //functies double P(double error, const double Kp) { return Kp*error; } int main() { pc.baud(9600); motor2.setPosition(0); while(true) { if (button.read() < 0.5) { //if button pressed motor2direction = 0; // zero is clockwise (front view) motor2speed = 0.5f; pc.printf("positie = %d \r\n", motor2.getPosition()); } else { // If button is not pressed motor2direction = 0; motor2speed = 0; //while (motor2_Controller /// WHILE MOTOR > ... <... HIER BEZIG double reference=400; double position=motor2.getPosition(); double Error_position=(reference-position)*motor2_Kp; pc.printf("positie = %d en Error_positie =%d \r\n", motor2.getPosition(), Error_position); //myControllerTicker.attach(&motor2_Controller,0.01f); while (Error_position > 0) { motor2direction = 0; motor2speed=0.3f;} while (Error_position < 0) { motor2direction = 1; motor2speed=0.3f;} } while ((motor2.getPosition()>counts_per_revolution) || (motor2.getPosition()<-counts_per_revolution)) // If value is outside -4200 and 4200 (number of counts equal to one revolution) reset to zero { motor2.setPosition(0); pc.printf(" HE \r\n LLO \r\n WO \r\n RLD \r\n !!! \r\n FOO! \r\n"); break; } } }