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: QEI RemoteIR mbed
Fork of encoder_v2 by
Revision 12:e44dd0d4f1ee, committed 2017-12-03
- Comitter:
- Joshua_Cheung
- Date:
- Sun Dec 03 00:03:43 2017 +0000
- Parent:
- 11:e647b14ff4ef
- Commit message:
- Still wouldn't go straight, but will stop near wall
Changed in this revision
| PID_control.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/PID_control.cpp Fri Dec 01 03:25:53 2017 +0000
+++ b/PID_control.cpp Sun Dec 03 00:03:43 2017 +0000
@@ -24,7 +24,7 @@
PwmOut m_Left_F(PA_7);
PwmOut m_Left_B(PB_6);
double i_speed = 0.15;
-double C_speed(0);
+double C_speed = 0;
int integrator = 0;
int decayFactor = 1;
double Error = 0;
@@ -301,23 +301,25 @@
void testStop() //rev1
{
//printf("\nAnalogIn example\n");
- LF_IRE.write(1);
- RF_IRE.write(1);
- forward();
- while(1) {
- if (RF_IRR.read() > turnThreshold && LF_IRR.read() > turnThreshold)
+ LF_IRE.write(1); //turn on Left Front IR LED
+ RF_IRE.write(1); //turn on Right Front IR LED
+ forward(); //move forward slowly
+ while(1) { //loop
+
+ if (RF_IRR.read() > threshold && LF_IRR.read() > threshold) //IR Receivers will read higher analog values than Threshold if wall is near
{
- stop();
+ stop(); //stop the rat
forwardSlow();
if (RF_IRR.read() > threshold && LF_IRR.read() > threshold)
{
stop();
break;
}
+
}
float value1 = LF_IRR.read();
float value2 = RF_IRR.read();
- printf("LF Led: %f\n", value1);
+ printf("LF Led: %f\n", value1); //output the read values from IR Receiver
wait(0.25);
printf("RF Led: %f\n\r", value2);
}
@@ -379,19 +381,20 @@
int main()
{
systicker.attach_us(&systick, 1000); //rev1
-
testStop();
}
+
+
/*while(RF_IRR.read() * 100000 < 175 && LF_IRR.read() * 100000 < 175) {
- /*meas = LS_IRR.read(); // Converts and read the analog input value (value from 0.0 to 1.0)
+ meas = LS_IRR.read(); // Converts and read the analog input value (value from 0.0 to 1.0)
meas = meas * 100000; // Change the value to be in the 0 to 3300 range
printf("measure = %.0f mV\n", meas);
- */
+
/*if (meas > 2000) { // If the value is greater than 2V then switch the LED on
LS_IRE = 1;
}
