Script voor het aansturen van de motor met behulp van twee potmeters. Potmeter 1 wordt gebruikt om de draairichting te bepalen en potmeter 2 wordt gebruikt om de snelheid te bepalen. Het script werkt en heeft een snellere reactie op de potmeters dan bij het vorige script.
Dependencies: HIDScope mbed Encoder MODSERIAL
Fork of motor_met_potmeters_en_aanuit by
Revision 9:9a356a676a7c, committed 2017-10-09
- Comitter:
- paulineoonk
- Date:
- Mon Oct 09 15:04:23 2017 +0000
- Parent:
- 8:432f6d4669e1
- Commit message:
- rotzooitje, P controller probeersel;
Changed in this revision
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Mon Oct 09 14:33:20 2017 +0000 +++ b/main.cpp Mon Oct 09 15:04:23 2017 +0000 @@ -64,20 +64,24 @@ { //Deze functie neemt de potmeter positie waar, leidt hier een referentie snelheid vanaf en controleert de motor //met een eenvoudige feed-forward controller. Deze functie wordt aangeroepen met behulp van de ticker Treecko - float B = motor1.getPosition(); - float Potmeterwaarde = potMeter1.read(); - int positie = B%4096; - if(B <= 4096) + float Huidigepositie = motor1.getPosition(); + float Potmeterwaarde = potMeter2.read(); + + if(Huidigepositie <= 4096) { - - float refV = GetReferenceVelocity(); - float motorValue = FeedForwardControl(refV); + int maxwaarde = 4096; + float Potrefposition = Potmeterwaarde*maxwaarde; + float kp = 50; + float motorValue = kp*(Potrefposition - Huidigepositie); + //float refV = GetReferenceVelocity(); + //float motorValue = FeedForwardControl(refV); SetMotor1(motorValue); } - else + /* else { SetMotor1(0); } + */ } int main () @@ -88,7 +92,9 @@ while(1) { wait(0.2); pc.baud(115200); - - pc.printf("pos: %d, speed %f, potmeter = %f V, p=%i \r\n",motor1.getPosition(), motor1.getSpeed(),potMeter2.read()*3.3,positie); //potmeter uitlezen. tussen 0-1. voltage, dus *3.3V + float B = motor1.getPosition(); + float Potmeterwaarde = potMeter2.read(); +// float positie = B%4096; + pc.printf("pos: %d, speed %f, potmeter = %f V, \r\n",motor1.getPosition(), motor1.getSpeed(),(potMeter2.read()*3.3)); //potmeter uitlezen. tussen 0-1. voltage, dus *3.3V } } \ No newline at end of file