School project.

Dependencies:   Timezone NTPClient BSP_DISCO_F746NG Grove_temperature

Committer:
tuxx0046
Date:
Fri Jan 15 09:27:26 2021 +0000
Revision:
10:137cf2c92871
Parent:
9:fd1f07a4a0ff
Child:
14:3ac7c08dbc52
Add serial communication service functions.; Major changes to comments.; Minor fixes to code to clear buffer in console when typing etc.;

Who changed what in which revision?

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