ver.1
Dependencies: ColorSensor mbed
main.cpp
- Committer:
- ryuna
- Date:
- 2013-09-19
- Revision:
- 0:f07bfab0732b
File content as of revision 0:f07bfab0732b:
#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; } }