![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
TEMPLATE light sensor 3 fork Light threshold
main.cpp
- Committer:
- 10740761
- Date:
- 2021-11-10
- Revision:
- 8:ab7982d1ce50
- Parent:
- 7:5e220d3e8a94
File content as of revision 8:ab7982d1ce50:
/* Hello World! for the Emwin TFT Library */ #include "mbed.h" #include "GUI.h" #include "cy8ckit_028_tft.h" #define LED_DIAMETER (8) #define LED_RADIUS (LED_DIAMETER/2) #define DISPLAY_X (320) #define DISPLAY_Y (240) #define NUMLEDS_X (DISPLAY_X/LED_DIAMETER) #define NUMLEDS_Y (DISPLAY_Y/LED_DIAMETER) #define LED_OFF (0) #define LED_ON (1) #define TITLE_OFFSET (16+LED_RADIUS) AnalogIn lightlevel(P10_0); DigitalOut lights(LED4); DigitalOut lightsR(LED1); DigitalOut lightsG(LED3); DigitalOut lightsB(LED2); bool lightStatus; void Display_Init(void) { /* Initialise EmWin driver*/ GUI_Init(); /* Set font size, foreground and background Colours */ GUI_SetFont(GUI_FONT_24B_1); GUI_SetColor(GUI_WHITE); GUI_SetBkColor(GUI_BLACK); /* Clear screen and print splash screen */ GUI_Clear(); GUI_SetTextAlign(GUI_TA_HCENTER); GUI_DispStringAt("LIGHT SENSOR", 160, 0); } int main() { int lowThresh, highThresh; lowThresh = 40; highThresh = 70; lights, 0; /* Initialise display */ Display_Init(); printf("LIGHT LEVEL CONTROL\r\n"); lightStatus = false; GUI_SetFont(GUI_FONT_D80); GUI_SetColor(GUI_BLUE); while(true){ int lightpercent; lightpercent = (lightlevel.read_u16()*100)/65535; printf("light level is %d\r\n", lightpercent); if(lightpercent > highThresh) lightStatus = 1; else if(lightpercent < lowThresh) lightStatus = 0; lights = lightStatus; if(lightpercent > highThresh) { lightsB = 0; lightsR = 1; lightsG = 1; } if(lightpercent < highThresh && lightpercent > lowThresh) { lightsB = 1; lightsR = 1; lightsG = 0; } if(lightpercent < lowThresh) { lightsB = 1; lightsR = 0; lightsG = 1; } ThisThread::sleep_for(1000); char buffer[16]; sprintf(buffer, "%d", lightpercent); GUI_DispStringAt(buffer, 30, 30); GUI_SetColor(GUI_DARKGREEN); GUI_FillRect(260, 30, 300, 220); GUI_SetColor(GUI_GREEN); GUI_FillRect(260, 220 - lightpercent * 2, 300, 220); } }