Show Flashing RGB LED Interrupted by two keys two turn on green and blue LEDs on the AZ3166

main.cpp

Committer:
appa
Date:
2021-02-04
Revision:
0:53c4ae3fbc5b

File content as of revision 0:53c4ae3fbc5b:

#include "mbed.h"
#include "platform/mbed_thread.h"
#include "RPinName.h"

// Blinking rate in milliseconds
#define loopdelay    1000
#define betweenleds 500
 // Initialise the digital pins for LEDs as an output
    DigitalOut ledg(led1);  // WiFi or same as LED1
    DigitalOut ledb(led2);  // Azure
    DigitalOut ledy(led3);  // User
    
    InterruptIn ButtonA(Key2);
    InterruptIn ButtonB(Key3);
    
    // Initialise the pulse-width-moudulation for RGB LED
    PwmOut RGBR(RedRGB);
    PwmOut RGBG(GreenRGB);
    PwmOut RGBB(BlueRGB);
    
    Serial AZ(tx, rx); // tx, rx
    
    void ToggleGreen()
    {
        ledg = !ledg;
        }
    void ToggleBlue()
    {
        ledb = !ledb;
        }

int main()
{
    //ButtonA.rise(&ToggleGreen);
    //ButtonB.rise(&ToggleBlue);
    ButtonA.mode(PullUp);
    ButtonA.fall(&ToggleGreen);
    ButtonB.mode(PullUp);
    ButtonB.fall(&ToggleBlue);
    
    while(1) {
        
        AZ.printf("Hi There from Appa\r\n");
        RGBR = 0;
        AZ.printf("Random Green RGB LED\r\n");
        RGBG = rand() % 100;
        thread_sleep_for(betweenleds);
        RGBG = 0;
        AZ.printf("Random Blue RGB LED\r\n");
        RGBB = rand() % 100;
        thread_sleep_for(betweenleds);
        RGBB = 0;
        AZ.printf("Random Red RGB LED\r\n");
        RGBR = rand() % 100;
        thread_sleep_for(loopdelay);
    }
}