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
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 */
Generated on Mon Sep 16 2024 08:40:24 by
1.7.2