ver.1
Dependencies: ColorSensor mbed
Diff: main.cpp
- Revision:
- 0:f07bfab0732b
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Thu Sep 19 05:32:01 2013 +0000 @@ -0,0 +1,99 @@ +#include "mbed.h" +#include "ColorSensor.h" + +void rivisedate (); +void colordate (); +void ptm(unsigned sum ); + + +unsigned short RGB[3],time1 = 20 ; +unsigned rgb[3]; +double R,G,B,colorsum; +double rir,rib ; + +DigitalOut led1(p21); +DigitalOut led2(p22); +DigitalOut led3(p23); +ColorSensor color(p20,p17,p18,p19,time1); +//ColorSensor color = ColorSensor(); +Serial pc(USBTX, USBRX); //tx,rx + + + +int main() { + short act = 0 , i = 0; + while(1) { + i++; + led1 = 1; + if(act == 0){ + rivisedate(); + act = 1 ; + }else if(act == 1){ + colordate(); + + pc.printf(" R %d G %d B %d ||| %lf %lf %lf %d\n",rgb[0],rgb[1],rgb[2],R,G,B,time1); + } + + /*if(i<=50){ + led1 = 1; + led2 =0 ,led3 =0 ; + }else if((i>50)&&(i<=100)){ + led2 = 1; + led1 =0 ,led3 =0 ; + }else if((i>100)&&(i<=150)) { + led3 = 1; + led1 =0 ,led2 =0 ; + }else{ + i=0; + }*/ + } +} + +void rivisedate (){ + unsigned long red = 0,green = 0,blue =0; + unsigned short i ; + unsigned sum ; + for (i=0;i<=20;i++){ + color.timenow(time1); + color.getRGB(RGB); + sum = RGB[0]+RGB[1]+RGB[2]; + ptm(sum); + red += RGB[0] ; + green += RGB[1] ; + blue += RGB[2] ; + pc.printf(" %d %d\n",time1,sum); + } + rir = (double)green/ red ; + rib = (double)green/ blue ; + +} +void colordate (){ + color.getRGB(RGB) ; + colorsum = RGB[0]*rir + RGB[1] + RGB[2]*rib ; + R = RGB[0]*rir*100 / colorsum ; + G = RGB[1]*100 /colorsum ; + B = RGB[2]*rib*100 / colorsum ; + color.checkRGB(rgb[0],rgb[1],rgb[2]); +} + + + void ptm(unsigned sum){ + //光の強度によって時間を決める + if( sum <=500){ + time1+= 8 ; + }else if((sum>500)&&(sum<=800)){ + time1+= 5 ; + }else if((sum>800)&&(sum<=1300)){ + time1+= 1 ; + }else if((sum>3000)&&(sum<=5000)){ + time1-= 5 ; + }else if((sum>5000)&&(sum<=8000)){ + time1-= 10 ; + }else if((sum>8000)&&(sum<=15000)){ + time1-= 15 ; + }if(time1>=40){ + time1-=20; + }else if(time1<=5){ + time1+=5; + } + } \ No newline at end of file