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.
Fork of Minor_test_serial by
Revision 6:f4bbb73f3989, committed 2018-10-01
- Comitter:
- MarijkeZondag
- Date:
- Mon Oct 01 11:42:25 2018 +0000
- Parent:
- 5:107eb09fb095
- Commit message:
- Milestone 1 making 2 motors turn;
Changed in this revision
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Sun Sep 16 13:50:44 2018 +0000 +++ b/main.cpp Mon Oct 01 11:42:25 2018 +0000 @@ -1,24 +1,71 @@ #include "mbed.h" #include "MODSERIAL.h" -DigitalOut gpo(D0); -DigitalOut myled(LED_GREEN); +DigitalOut directionpin1(D4); +PwmOut pwmpin1(D5); +AnalogIn potmetervalue1(A1); +DigitalIn button2(D9); //klopt dit? + +DigitalOut directionpin2(D7); +PwmOut pwmpin2(D6); +AnalogIn potmetervalue2(A2); +DigitalIn button1(D10); //klopt dit? + MODSERIAL pc(USBTX, USBRX); -DigitalIn button(PTA4); int main() { pc.baud(115200); - pc.printf("Hello World!\r\n"); - char c; - c = pc.getc(); - pc.printf(" %c \n",c); + pc.printf("hello\n\r"); + pwmpin1.period_us(60); //60 microseconds PWM period, 16.7 kHz + while (true) { - gpo = !gpo; - myled = !myled; // toggle a led - wait (0.5f); + + float u1 = potmetervalue1; + float u2 = potmetervalue2; + + float m1 = ((u1*2.0f)-1.0f); + float m2 = ((u2*2.0f)-1.0f); + + // pc.printf("Motor value is %f\n\r",m); + + /*if (m <= -0.005) + { + directionpin.write(0); + pwmpin = fabs(m); //pwm duty cycle can only be positive, floating + pwmpin.period_us(60); //60 microseconds PWM period, 16.7 kHz + pc.printf("Motor draait naar A\n\r"); + } + + else if (m >= 0.005) + { + directionpin.write(1); + pwmpin = fabs(m); + pwmpin.period_us(60); //60 microseconds PWM period, 16.7 kHz + pc.printf("Motor draait naar B\n\r"); + + } + + else if (-0.4 < m && m < 0.) + { + //pwmpin = 0.0; + pwmpin.period_us(60); //60 microseconds PWM period, 16.7 kHz + pc.printf("Motor zou moeten stoppen.\n\r"); + } + + Met deze code kunnen we serial communication gebruiken. Als we dit niet nodig hebben en alleen de motor willen aansturen, dan gebruiken we de code hieronder. + */ + + pwmpin1 = fabs(m1*0.6f)+0.4f; //pwm duty cycle can only be positive, floating, 0.4f is "inefficiënt", dit tellen we erbij op, en keer 0.6 om te corrigeren voor de helling. + directionpin1.write(m1>0); //Indien waar, motor draait rechtsom. Indien niet waar, motor draait linksom. + wait(0.001f); //zodat de code niet oneindig doorgaat. + + pwmpin2 = fabs(m2*0.6f)+0.4f; + directionpin2.write(m2>0); + wait(0.001f); + } }