hh

Dependencies:   DISCO_L475VG_IOT01A_wifi

LEDcontrol.cpp

Committer:
ascension2
Date:
2019-08-20
Revision:
0:db42952db1a5

File content as of revision 0:db42952db1a5:

#include "mbed.h"
#include "init_Pin.h"
//void setRGB(float Red,float Blue,float Green,int led_info);
void pwmLed(); 

float const variation = 0.00392; // 1/255
float red_value = 0;
float green_value = 0;
float blue_value = 0;
int automode=0;

void setRGB(float Red,float Green,float Blue,int led_info)
{
    red_value = Red;
    blue_value = Blue;
    green_value = Green;
    if (led_info ==0) // led off
    {
        red_value =0;
        blue_value =0;
        green_value =0;
    }
    else if(led_info ==1) // led on
    {
        red_value =255;
        blue_value =255;
        green_value =255;
        automode =1;
    }
    else if(led_info ==2) //user input value
    {
        red_value = Red;
        blue_value = Blue;
        green_value = Green;
        automode = 0;
    }
    
    pwmLed();
    
}


void pwmLed()
{   
////////////////////////RGB값 자동제어////////////////////////////////////////////        
    if (automode==1)
    {
        //pwmRed.write(0); pwmGreen.write(0); pwmBlue.write(0);       
        float cdsData;
        cdsData = CDS.read();               //조도에 읽기 
        if(cdsData<0.7f)
        {
             pwmRed.write(0);
             pwmGreen.write(0);
             pwmBlue.write(0);
        }
       else 
        {   
            pwmRed.write(red_value);     
            pwmGreen.write(green_value);  
            pwmBlue.write(blue_value); 
            
        }
        //printf("CDS Analog = %f \n", cdsData);
        
 
    }
////////////////////////RGB값 수동제어////////////////////////////////////////////
    else 
    { 
      //  printf("%f %f %f \n", Red, Green, Blue); 
        pwmRed.write(red_value);     
        pwmGreen.write(green_value);  
        pwmBlue.write(blue_value);  
//        pwmRed.period_ms(1);
//        pwmGreen.period_ms(1);
//        pwmBlue.period_ms(1); 
    }    
}