Ok
Dependencies: mbed_rtos_types Mutex mbed_rtos_storage mbed Semaphore
TCS34725.cpp
00001 #include "TCS34725.h" 00002 #include "mbed.h" 00003 00004 extern Serial pc; 00005 extern DigitalOut ledR; 00006 extern DigitalOut ledG; 00007 extern DigitalOut ledB; 00008 uint8_t dominant_color[3]={0}; //Array that keeps count of how many times each color was dominant in the reading 00009 extern char colour_max; 00010 00011 //Get max value (r,g,b) function 00012 char getMax(int r, int g, int b) 00013 { 00014 char result; 00015 int max_color; 00016 if (r < g) { 00017 max_color = g; 00018 result = 'g'; 00019 } else { 00020 max_color= r; 00021 result = 'r'; 00022 } 00023 if (max_color < b) { 00024 result = 'b'; 00025 } 00026 return result; 00027 } 00028 00029 00030 00031 //Switchs the color of the greatest value. 00032 void setLedColour(){ 00033 //Switch off all of them. 00034 ledR.write(1); 00035 ledG.write(1); 00036 ledB.write(1); 00037 if (colour_max == 'r') { 00038 ledR.write(0); 00039 pc.printf("Dominant Colour: RED\r\n"); 00040 } else if(colour_max == 'g') { 00041 pc.printf("Dominant Colour: GREEN\r\n"); 00042 ledG.write(0); 00043 } else { 00044 pc.printf("Dominant Colour: BLUE\r\n"); 00045 ledB.write(0); 00046 } 00047 } 00048 //Prints the latest dominant color and adds it to the array. 00049 void addDominantColor(){ 00050 switch ( colour_max ){ 00051 case 'r': 00052 dominant_color[0]++; 00053 pc.printf("Dominant Colour: RED\r\n"); 00054 break; 00055 case 'g': 00056 dominant_color[1]++; 00057 pc.printf("Dominant Colour: GREEN\r\n"); 00058 break; 00059 case 'b': 00060 dominant_color[2]++; 00061 pc.printf("Dominant Colour: BLUE\r\n"); 00062 } 00063 } 00064 00065 //Prints the dominant color over a period of time, it considers cases of ties. 00066 00067 void dominantColor(){ 00068 if (dominant_color[0]>=dominant_color[1]){ 00069 if (dominant_color[0]==dominant_color[1]){ 00070 if (dominant_color[0]==dominant_color[2]){ 00071 pc.printf("\n\rDOMINANT COLOR: RED, GREEN, BLUE\n\r"); 00072 } 00073 else if (dominant_color[0]>dominant_color[2]){ 00074 pc.printf("\n\rDOMINANT COLOR: RED, GREEN\n\r"); 00075 } 00076 else { 00077 pc.printf("\n\rDOMINANT COLOR: BLUE\n\r"); 00078 } 00079 } 00080 else if (dominant_color[0]==dominant_color[2]){ 00081 pc.printf("DOMINANT COLOR: RED, BLUE\n\r"); 00082 } 00083 else if (dominant_color[0]>dominant_color[2]){ 00084 pc.printf("DOMINANT COLOR: RED\n\r"); 00085 } 00086 else { 00087 pc.printf("DOMINANT COLOR: BLUE\n\r"); 00088 } 00089 } 00090 else if (dominant_color[1]==dominant_color[2]) { 00091 pc.printf("DOMINANT COLOR: GREEN BLUE\n\r"); 00092 } 00093 else if (dominant_color[1]>dominant_color[2]){ 00094 pc.printf("DOMINANT COLOR: GREEN\n\r"); 00095 } 00096 else { 00097 pc.printf("DOMINANT COLOR: BLUE\n\r"); 00098 } 00099 dominant_color[0]=0; 00100 dominant_color[1]=0; 00101 dominant_color[2]=0; 00102 } 00103
Generated on Tue Jul 12 2022 22:06:19 by
1.7.2