![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Servo
Dependencies: mbed MODSERIAL Servo FastPWM
main.cpp@11:bb036c288cd7, 2019-10-29 (annotated)
- Committer:
- s1923196
- Date:
- Tue Oct 29 09:50:16 2019 +0000
- Revision:
- 11:bb036c288cd7
- Parent:
- 10:1754b6220c7a
- Child:
- 12:515bacd56d07
servoscript
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
s1923196 | 10:1754b6220c7a | 1 | |
s1923196 | 10:1754b6220c7a | 2 | #include "Servo.h" |
AnkePost | 0:60a8a60074a7 | 3 | #include "mbed.h" |
s1923196 | 10:1754b6220c7a | 4 | #include "FastPWM.h" |
AnkePost | 3:91b8945b659d | 5 | |
AnkePost | 0:60a8a60074a7 | 6 | Serial pc(USBTX, USBRX); |
s1923196 | 10:1754b6220c7a | 7 | Servo mijnServo(D7); |
s1923196 | 11:bb036c288cd7 | 8 | DigitalIn servo_button_pressed(D1); |
s1923196 | 11:bb036c288cd7 | 9 | //int Position= mijnServo.read(); |
s1923196 | 11:bb036c288cd7 | 10 | |
s1923196 | 11:bb036c288cd7 | 11 | |
s1923196 | 11:bb036c288cd7 | 12 | void servo() |
s1923196 | 11:bb036c288cd7 | 13 | { |
s1923196 | 11:bb036c288cd7 | 14 | double theta_s= 1450; // dit zijn allemaal waarden tussen de 500-2400 |
s1923196 | 11:bb036c288cd7 | 15 | double theta_sout; // dit zijn allemaal waarden tussen de 500-2400 |
s1923196 | 11:bb036c288cd7 | 16 | double q1; // dit is in rad uit I.K |
s1923196 | 11:bb036c288cd7 | 17 | double q2; // dit is in rad uit I.K |
s1923196 | 11:bb036c288cd7 | 18 | double q1_ser; // dit is 500-2400 |
s1923196 | 11:bb036c288cd7 | 19 | double q2_ser; // dit is 500-2400 |
s1923196 | 11:bb036c288cd7 | 20 | |
s1923196 | 11:bb036c288cd7 | 21 | q1_ser= q1*604.7887837; |
s1923196 | 11:bb036c288cd7 | 22 | q2_ser= q2*604.7887837; |
s1923196 | 11:bb036c288cd7 | 23 | |
s1923196 | 11:bb036c288cd7 | 24 | if (servo_button_pressed.read() == false) |
s1923196 | 11:bb036c288cd7 | 25 | { |
s1923196 | 11:bb036c288cd7 | 26 | theta_sout=theta_s-q1_ser+q2_ser+400; |
s1923196 | 11:bb036c288cd7 | 27 | mijnServo.SetPosition(theta_sout); |
s1923196 | 11:bb036c288cd7 | 28 | pc.printf("De servo staat op %f graden.\n\r", theta_sout); |
s1923196 | 11:bb036c288cd7 | 29 | } |
s1923196 | 11:bb036c288cd7 | 30 | else |
s1923196 | 11:bb036c288cd7 | 31 | { |
s1923196 | 11:bb036c288cd7 | 32 | theta_sout=theta_s-q1_ser+q2_ser; |
s1923196 | 11:bb036c288cd7 | 33 | mijnServo.SetPosition(theta_sout); |
s1923196 | 11:bb036c288cd7 | 34 | pc.printf("De servo staat op %f graden.\n\r", theta_sout); |
s1923196 | 11:bb036c288cd7 | 35 | } |
s1923196 | 11:bb036c288cd7 | 36 | } |
s1923196 | 10:1754b6220c7a | 37 | int main(void) |
s1923196 | 11:bb036c288cd7 | 38 | { servo(); |
s1923196 | 11:bb036c288cd7 | 39 | mijnServo.Enable(1500,20000); |
s1923196 | 11:bb036c288cd7 | 40 | } |