BIZIMANA Zephanie / Mbed 2 deprecated DISCO_F413ZH-blink-leds

Dependencies:   mbed

Committer:
bzephanie
Date:
Thu Jun 03 14:47:15 2021 +0000
Revision:
0:03679d137506
LeDs and speaker

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bzephanie 0:03679d137506 1 // Add mbed library (Mandatory)
bzephanie 0:03679d137506 2 #include "mbed.h"
bzephanie 0:03679d137506 3
bzephanie 0:03679d137506 4 // Add a yellow LED on pin 5 and initialize it to 1 (ON)
bzephanie 0:03679d137506 5 DigitalOut yellowLed(p5, 1);
bzephanie 0:03679d137506 6
bzephanie 0:03679d137506 7 // Add a red LED on pin 5 and initialize it to 0 (OFF)
bzephanie 0:03679d137506 8 DigitalOut redLed(p6, 0);
bzephanie 0:03679d137506 9
bzephanie 0:03679d137506 10 // Add a switch BUTTON on pin 8
bzephanie 0:03679d137506 11 DigitalIn switchButton(p8);
bzephanie 0:03679d137506 12
bzephanie 0:03679d137506 13 // Add a speaker
bzephanie 0:03679d137506 14 PwmOut speaker(p21);
bzephanie 0:03679d137506 15
bzephanie 0:03679d137506 16
bzephanie 0:03679d137506 17 int acceptSwitchOnAction = 1;
bzephanie 0:03679d137506 18
bzephanie 0:03679d137506 19 void play_tone(float frequency, float volume, int interval, int rest) {
bzephanie 0:03679d137506 20 speaker.period(1.0 / frequency);
bzephanie 0:03679d137506 21 speaker = volume;
bzephanie 0:03679d137506 22 wait_ms(interval);
bzephanie 0:03679d137506 23 speaker = 0.0;
bzephanie 0:03679d137506 24 wait(rest);
bzephanie 0:03679d137506 25 }
bzephanie 0:03679d137506 26
bzephanie 0:03679d137506 27 void control_leds() {
bzephanie 0:03679d137506 28 if (switchButton) { // When SwitchButton ON
bzephanie 0:03679d137506 29 if (acceptSwitchOnAction) {
bzephanie 0:03679d137506 30 int yellowBlinkingTimeCounter = 0;
bzephanie 0:03679d137506 31 while (yellowBlinkingTimeCounter < 5) {
bzephanie 0:03679d137506 32 yellowLed = !yellowLed; // inverse the state of the LED
bzephanie 0:03679d137506 33 yellowBlinkingTimeCounter++; // Increment counter
bzephanie 0:03679d137506 34 play_tone(250, 0.2, 500, 0); ; // subprogram play sound
bzephanie 0:03679d137506 35 wait_ms(500);
bzephanie 0:03679d137506 36 }
bzephanie 0:03679d137506 37 yellowLed = 0; // Yellow LED is OFF
bzephanie 0:03679d137506 38 acceptSwitchOnAction = 0;
bzephanie 0:03679d137506 39 }
bzephanie 0:03679d137506 40 } else { // When SwitchButton OFF
bzephanie 0:03679d137506 41 yellowLed = 1; // Yellow LED is ON
bzephanie 0:03679d137506 42 acceptSwitchOnAction = 1;
bzephanie 0:03679d137506 43 }
bzephanie 0:03679d137506 44 redLed = !yellowLed; // Inverse the state of yellow LED
bzephanie 0:03679d137506 45 }
bzephanie 0:03679d137506 46
bzephanie 0:03679d137506 47 int main() {
bzephanie 0:03679d137506 48 while (1) { // Do forever
bzephanie 0:03679d137506 49 control_leds(); // subprogram control leds
bzephanie 0:03679d137506 50 if (redLed) {
bzephanie 0:03679d137506 51 play_tone(250, 0.2, 500, 0); // subprogram play sound
bzephanie 0:03679d137506 52 } else {
bzephanie 0:03679d137506 53 wait_ms(500); // Sleep (duty-cycling)
bzephanie 0:03679d137506 54 }
bzephanie 0:03679d137506 55 }
bzephanie 0:03679d137506 56 }