School project.

Dependencies:   Timezone NTPClient BSP_DISCO_F746NG Grove_temperature

Committer:
tuxx0046
Date:
Thu Jan 14 12:14:51 2021 +0000
Revision:
6:aecab8e3acad
Child:
9:fd1f07a4a0ff
Added LED function that controls blinking rate of LED.; Added light sensor function to convert light sensor reading to percent.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
tuxx0046 6:aecab8e3acad 1 /**
tuxx0046 6:aecab8e3acad 2 @file led_functions.h
tuxx0046 6:aecab8e3acad 3 @brief Contains functions to control Grove LED.
tuxx0046 6:aecab8e3acad 4 @author Tu Tri Huynh
tuxx0046 6:aecab8e3acad 5 @date 1/14/2021
tuxx0046 6:aecab8e3acad 6 */
tuxx0046 6:aecab8e3acad 7
tuxx0046 6:aecab8e3acad 8 /**
tuxx0046 6:aecab8e3acad 9 This function will use the sensor_value and determine LED blinking rate.
tuxx0046 6:aecab8e3acad 10 The closer the value is to 0.00f the more frequent it will blink or even completely light up
tuxx0046 6:aecab8e3acad 11 1/14/2021
tuxx0046 6:aecab8e3acad 12 */
tuxx0046 6:aecab8e3acad 13 void led_set_blink_rate(float value)
tuxx0046 6:aecab8e3acad 14 {
tuxx0046 6:aecab8e3acad 15 /// Turn on LED completely (no blinking)
tuxx0046 6:aecab8e3acad 16 if (value < 0.10f) {
tuxx0046 6:aecab8e3acad 17 led.period(1.00f);
tuxx0046 6:aecab8e3acad 18 led.write(1.00f);
tuxx0046 6:aecab8e3acad 19 }
tuxx0046 6:aecab8e3acad 20 /// For each 1/4th of a second, light half the time
tuxx0046 6:aecab8e3acad 21 else if (value >= 0.10f && value < 0.30f) {
tuxx0046 6:aecab8e3acad 22 led.period(0.25f);
tuxx0046 6:aecab8e3acad 23 led.write(0.50f);
tuxx0046 6:aecab8e3acad 24 }
tuxx0046 6:aecab8e3acad 25 ///
tuxx0046 6:aecab8e3acad 26 /// For each half a second, light half the time
tuxx0046 6:aecab8e3acad 27 else if (value >= 0.30f && value < 0.50f) {
tuxx0046 6:aecab8e3acad 28 led.period(0.50f);
tuxx0046 6:aecab8e3acad 29 led.write(0.50f);
tuxx0046 6:aecab8e3acad 30 }
tuxx0046 6:aecab8e3acad 31 /// For every second, light half the time
tuxx0046 6:aecab8e3acad 32 else if (value >= 0.50f && value < 0.70f) {
tuxx0046 6:aecab8e3acad 33 led.period(1.00f);
tuxx0046 6:aecab8e3acad 34 led.write(0.50f);
tuxx0046 6:aecab8e3acad 35 }
tuxx0046 6:aecab8e3acad 36 /// For every two seconds, light 1 second
tuxx0046 6:aecab8e3acad 37 else if (value >= 0.70f && value < 0.90f) {
tuxx0046 6:aecab8e3acad 38 led.period(2.00f);
tuxx0046 6:aecab8e3acad 39 led.write(1.00f);
tuxx0046 6:aecab8e3acad 40 }
tuxx0046 6:aecab8e3acad 41 /// If value is 1.00 turn off LED
tuxx0046 6:aecab8e3acad 42 else {
tuxx0046 6:aecab8e3acad 43 led.period(1.00f);
tuxx0046 6:aecab8e3acad 44 led.write(0.00f);
tuxx0046 6:aecab8e3acad 45 }
tuxx0046 6:aecab8e3acad 46 //printf("Blink rate on this value: %0.2f\n", value);
tuxx0046 6:aecab8e3acad 47 }