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: mbed-rtos mbed PinDetect
Fork of FinalMotorControl by
Revision 24:24c91a6ae6ba, committed 2016-05-11
- Comitter:
- mjhaugsdal
- Date:
- Wed May 11 19:39:46 2016 +0000
- Parent:
- 23:ad08a8eabc24
- Child:
- 25:321b970eb3ff
- Commit message:
- Added boot-up routine and step-counters.
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Wed May 11 18:44:06 2016 +0000
+++ b/main.cpp Wed May 11 19:39:46 2016 +0000
@@ -23,12 +23,17 @@
DigitalOut IN12(D11);
-static int fart = 1500;
+static int speed = 1500;
static char m_cmd = 'x';
static bool e1 = true;
static bool e2 = true;
static bool e3 = true;
+static int steps1 = 0;
+static int steps2 = 0;
+static int steps3 = 0;
+
+
//Methods to set pins to control direction.
void stepAllRight()
{
@@ -47,7 +52,7 @@
IN10=1;
IN11=0;
IN12=1;
- wait_us(fart); //legg som global variabel "fart"
+ wait_us(speed); //legg som global variabel "fart"
//engine 1
IN1=0;
IN2=1;
@@ -63,7 +68,7 @@
IN10=1;
IN11=1;
IN12=0;
- wait_us(fart);
+ wait_us(speed);
//engine 1
IN1=1;
IN2=0;
@@ -79,7 +84,7 @@
IN10=0;
IN11=1;
IN12=0;
- wait_us(fart);
+ wait_us(speed);
//engine 1
IN1=1;
IN2=0;
@@ -95,7 +100,7 @@
IN10=0;
IN11=0;
IN12=1;
- wait_us(fart);
+ wait_us(speed);
}
void stepAllLeft()
{
@@ -114,7 +119,7 @@
IN10=0;
IN11=0;
IN12=1;
- wait_us(fart);
+ wait_us(speed);
//engine 1
IN1=1;
IN2=0;
@@ -130,7 +135,7 @@
IN10=0;
IN11=1;
IN12=0;
- wait_us(fart);
+ wait_us(speed);
//engine 1
IN1=0;
IN2=1;
@@ -146,7 +151,7 @@
IN10=1;
IN11=1;
IN12=0;
- wait_us(fart);
+ wait_us(speed);
//engine 1
IN1=0;
IN2=1;
@@ -162,7 +167,7 @@
IN10=1;
IN11=0;
IN12=1;
- wait_us(fart);
+ wait_us(speed);
}
void stepEngine1Left()
@@ -172,22 +177,22 @@
IN2=0;
IN3=0;
IN4=1;
- wait_us(fart);
+ wait_us(speed);
IN1=1;
IN2=0;
IN3=1;
IN4=0;
- wait_us(fart);
+ wait_us(speed);
IN1=0;
IN2=1;
IN3=1;
IN4=0;
- wait_us(fart);
+ wait_us(speed);
IN1=0;
IN2=1;
IN3=0;
IN4=1;
- wait_us(fart);
+ wait_us(speed);
}
void stepEngine1Right()
@@ -197,22 +202,22 @@
IN2=1;
IN3=0;
IN4=1;
- wait_us(fart);
+ wait_us(speed);
IN1=0;
IN2=1;
IN3=1;
IN4=0;
- wait_us(fart);
+ wait_us(speed);
IN1=1;
IN2=0;
IN3=1;
IN4=0;
- wait_us(fart);
+ wait_us(speed);
IN1=1;
IN2=0;
IN3=0;
IN4=1;
- wait_us(fart);
+ wait_us(speed);
}
void stepEngine2Right()
@@ -222,22 +227,22 @@
IN6=1;
IN7=0;
IN8=1;
- wait_us(fart);
+ wait_us(speed);
IN5=0;
IN6=1;
IN7=1;
IN8=0;
- wait_us(fart);
+ wait_us(speed);
IN5=1;
IN6=0;
IN7=1;
IN8=0;
- wait_us(fart);
+ wait_us(speed);
IN5=1;
IN6=0;
IN7=0;
IN8=1;
- wait_us(fart);
+ wait_us(speed);
}
void stepEngine2Left()
@@ -247,22 +252,22 @@
IN6=0;
IN7=0;
IN8=1;
- wait_us(fart);
+ wait_us(speed);
IN5=1;
IN6=0;
IN7=1;
IN8=0;
- wait_us(fart);
+ wait_us(speed);
IN5=0;
IN6=1;
IN7=1;
IN8=0;
- wait_us(fart);
+ wait_us(speed);
IN5=0;
IN6=1;
IN7=0;
IN8=1;
- wait_us(fart);
+ wait_us(speed);
}
void stepEngine3Right()
@@ -272,22 +277,22 @@
IN10=1;
IN11=0;
IN12=1;
- wait_us(fart);
+ wait_us(speed);
IN9=0;
IN10=1;
IN11=1;
IN12=0;
- wait_us(fart);
+ wait_us(speed);
IN9=1;
IN10=0;
IN11=1;
IN12=0;
- wait_us(fart);
+ wait_us(speed);
IN9=1;
IN10=0;
IN11=0;
IN12=1;
- wait_us(fart);
+ wait_us(speed);
}
void stepEngine3Left()
@@ -297,22 +302,22 @@
IN10=0;
IN11=0;
IN12=1;
- wait_us(fart);
+ wait_us(speed);
IN9=1;
IN10=0;
IN11=1;
IN12=0;
- wait_us(fart);
+ wait_us(speed);
IN9=0;
IN10=1;
IN11=1;
IN12=0;
- wait_us(fart);
+ wait_us(speed);
IN9=0;
IN10=1;
IN11=0;
IN12=1;
- wait_us(fart);
+ wait_us(speed);
}
@@ -336,7 +341,7 @@
void wait()
{
- wait_us(fart);
+ wait_us(speed);
}
@@ -408,7 +413,8 @@
//SPECIFY WHICH BUTTON IS PRESSED. NEED ONE CALLBACK FOR EACH BUTTON.
void pb_hit_callback (void)
{
- m_cmd = 'x';
+ e1 = false;
+ //m_cmd = 'x';
/*
@@ -420,6 +426,7 @@
int main()
{
+
pb.mode(PullUp);
pb.attach_deasserted(&pb_hit_callback);
pb.setSampleFrequency();
@@ -459,24 +466,66 @@
*/
-
-
+ // Move motor in one direction
+ while (true)
+ {
+ speed = 2000;
+ stepEngine1Left();
+ if (e1 == false)
+ {
+ Thread::wait(1000);
+ int stepsToCenter = 242;
+
+ while (stepsToCenter >= 0)
+ {
+ stepEngine1Right();
+ stepsToCenter --;
+ }
+ break;
+ }//end if
+
+ }//end while
+ /*
+ while (true)
+ {
+ stepEngine2Right();
+ if (e2 == false)
+ {
+ Thread::wait(1000);
+ int stepsToCenter = 242;
+
+ while (stepsToCenter >= 0)
+ {
+ stepEngine2Left();
+ stepsToCenter --;
+ }
+ break;
+ }//end if
+ }
+ while (true)
+ {
+ stepEngine2Left();
+ if (e3 == false)
+ {
+ Thread::wait(1000);
+ int stepsToCenter = 242;
+
+ while (stepsToCenter >= 0)
+ {
+ stepEngine3Right();
+ stepsToCenter --;
+ }
+ break;
+ }//end if
+ }
+
+ */
+
while (true)
{
-
- if (m_cmd == 't')
- {
- int steps = 50;
- while (steps <= 50)
- {
- step1();
- wait();
- }
-
- }
-
-
-
+ speed = 1500;
+
+
if(m_cmd == 'a')
{
stepAllRight();
@@ -501,19 +550,8 @@
steps--;
}
m_cmd = 'x';
- }
- else if (m_cmd == 'l')
- {
- int steps = 242;
- //Steps = 242 gives a 60' rotation to the right.
- while (steps >= 0)
- {
- stepAllRight();
- steps--;
- }
- m_cmd = 'x';
-
- }*/
+ } */
+
//Release all motors / Set all pins to 0
if (m_cmd == 'z')
@@ -527,42 +565,37 @@
//Controlling each motor seperately.
//ENGINE 1
- if(m_cmd == '7')
- {
-
-
- stepEngine3Left();
- }
- else if (m_cmd == '9')
+ if(m_cmd == '7' && steps3 > -242)
{
-
+ steps3 --;
+ stepEngine3Left();
+ }
+ else if (m_cmd == '9' && steps3 < 242)
+ {
stepEngine3Right();
+ steps3 ++;
}
//ENGINE 2
- else if (m_cmd == '4')
+ else if (m_cmd == '4' && steps2 > -242)
{
-
-
+ steps2 --;
stepEngine2Left();
}
- else if (m_cmd == '6')
+ else if (m_cmd == '6' && steps2 < 242)
{
-
-
+ steps2 ++;
stepEngine2Right();
}
//ENGINE 3
- else if (m_cmd == '1')
+ else if (m_cmd == '1' && steps1 > -242)
{
-
-
+ steps1--;
stepEngine1Left();
}
- else if (m_cmd == '3')
+ else if (m_cmd == '3' && steps1 < 242)
{
-
-
+ steps1++;
stepEngine1Right();
}
@@ -598,9 +631,10 @@
m_cmd ='x';
}
*/
-
+ //Thread::wait(100);
+ //pc.printf("%d", steps3);
- }
+ } //END WHILE TRUE
} //END Main
