Buggy bois / Mbed 2 deprecated sensorTest

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 #include "lineSensor.h"
00003 /*
00004 lineSensor* sensorArray[6] = {new lineSensor(D11,A0),new lineSensor(D7,A1),new lineSensor(D6,A2),new lineSensor(D5,A3),new lineSensor(D4,A4),new lineSensor(D3,A5)};
00005     
00006 Ticker t;
00007 int i = 0;
00008 float lineV;
00009 Serial pc(USBTX, USBRX);
00010 void tick(void)
00011 {
00012     sensorArray[i]->sample();
00013     if (i < 3){
00014         lineV=lineV - sensorArray[i]->calcLineVoltage();
00015         }
00016         else 
00017         {
00018         lineV=lineV + sensorArray[i]->calcLineVoltage();    
00019         }
00020     
00021     i++;
00022 
00023     if (i >= 6){i=0;
00024     printf("V: %f \r \n", lineV);
00025     lineV = 0.0f;
00026     }
00027 }
00028 
00029 int main() {
00030     
00031     t.attach(callback(tick),0.1f);
00032     while(1){}
00033 }
00034 */
00035 int const numberOfSamples = 100;
00036 
00037     
00038 float lineVoltages[numberOfSamples];
00039 int lvIndex;
00040 int sensorNumber;
00041 int endOfLineDetection;
00042 float Reflec;
00043 
00044 Ticker t;
00045 
00046 lineSensor* sensorArray[6] = {new lineSensor(PB_9,A5),new lineSensor(PC_11,A4),new lineSensor(PD_2,A3),new lineSensor(PC_10,A2),new lineSensor(PB_8,A1),new lineSensor(PC_12,A0)};
00047  
00048 Serial pc(USBTX, USBRX);
00049 void tick(void)
00050 {
00051                 float ambientLight;
00052                 float reading;
00053                 ambientLight = sensorArray[sensorNumber]->calcLineVoltage();  
00054                 sensorArray[sensorNumber]->sample();
00055                 sensorArray[sensorNumber]->calcLineVoltage();
00056                 reading = (sensorArray[sensorNumber]->returnLineVoltage()-ambientLight);
00057                 switch (sensorNumber)
00058                 {
00059                 case 0:
00060                     lineVoltages[lvIndex%numberOfSamples] = reading * -192.31f;
00061                     pc.printf("R1 , %f\r\n",reading);
00062                     break;
00063                 case 1:
00064                     lineVoltages[lvIndex%numberOfSamples] += (reading * -77.72f);
00065                     pc.printf("R2 , %f\r\n",reading);
00066                     break;
00067                 case 2:
00068                     lineVoltages[lvIndex%numberOfSamples] += (reading * -39.47f);
00069                     pc.printf("R3 , %f\r\n",reading);
00070                     break;
00071                 case 3:
00072                     lineVoltages[lvIndex%numberOfSamples] += (reading * 31.25f);
00073                     pc.printf("R4 , %f\r\n",reading);
00074                     break;
00075                 case 4: 
00076                     lineVoltages[lvIndex%numberOfSamples] += (reading * 74.26f);
00077                     pc.printf("R5 , %f\r\n",reading);
00078                     break;
00079                 case 5:
00080                     lineVoltages[lvIndex%numberOfSamples] += (reading * 144.23f);
00081                     pc.printf("R6 , %f\r\n",reading);
00082                     break;
00083                 }
00084                 sensorNumber ++;
00085                 if (reading <= Reflec*14) {endOfLineDetection++;}
00086                    
00087                 if (sensorNumber >= 6)
00088                 {
00089                     sensorNumber = 0;
00090                     //pc.printf("LV , %f\r\n",lineVoltages[lvIndex%numberOfSamples]);
00091                     pc.printf("EOLD , %d \r\n",endOfLineDetection);
00092                     pc.printf("REF , %f \r\n",Reflec);
00093                     pc.printf("LV , %f \r\n",lineVoltages[lvIndex%numberOfSamples]);
00094                     lvIndex++;
00095                     endOfLineDetection = 0;
00096                 }
00097 }
00098 
00099 void rbtInit()
00100     {
00101     sensorArray[0]->sample();
00102     sensorArray[0]->calcLineVoltage();   
00103     Reflec = sensorArray[0]->returnLineVoltage(); 
00104     }
00105 
00106 int main() {
00107     rbtInit();
00108     t.attach(callback(tick), 0.5f);
00109     while(1){}
00110 }
00111 //PB_8 A4
00112 //PC_11 A1
00113 //PD_2 A2
00114 //PC_12 A5
00115 //PC_10 A3
00116 
00117 /* 
00118     sensorNumber = 0;
00119     if (endOfLineDetection <= 4) 
00120         {
00121         adjustAngularVelocity(lineVoltages[lvIndex%numberOfSamples]);
00122         lvIndex++;
00123         } else {
00124           lvIndex--;
00125           adjustAngularVelocity(lineVoltages[lvIndex%numberOfSamples]);
00126           lvIndex++;
00127           }
00128     endOfLineDetection = 0;
00129     */