Dimmer code for RGB LED

Dependencies:   PinDetect mbed

Committer:
kzar
Date:
Tue Oct 16 18:52:58 2018 +0000
Revision:
0:17f02642d413
Dimmer code for RGB LED

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kzar 0:17f02642d413 1 #include "mbed.h"
kzar 0:17f02642d413 2 #include "PinDetect.h"
kzar 0:17f02642d413 3
kzar 0:17f02642d413 4 //Init leds using PwmOut
kzar 0:17f02642d413 5 PwmOut red(p26);
kzar 0:17f02642d413 6 PwmOut green(p25);
kzar 0:17f02642d413 7 PwmOut blue(p24);
kzar 0:17f02642d413 8 //Init pushbuttons using PinDetect
kzar 0:17f02642d413 9 PinDetect pb1(p21);
kzar 0:17f02642d413 10 PinDetect pb2(p22);
kzar 0:17f02642d413 11 //Init dip switches using DigitalIn
kzar 0:17f02642d413 12 DigitalIn dip1(p15);
kzar 0:17f02642d413 13 DigitalIn dip2(p16);
kzar 0:17f02642d413 14 DigitalIn dip3(p17);
kzar 0:17f02642d413 15
kzar 0:17f02642d413 16
kzar 0:17f02642d413 17 //Increment or decrement the led depending on which button was pressed
kzar 0:17f02642d413 18 void pb1_pressed(void) {
kzar 0:17f02642d413 19 if (dip1 == 1 && red < 1) { red = red + .1; }
kzar 0:17f02642d413 20 if (dip2 == 1 && green < 1) { green = green + .1; }
kzar 0:17f02642d413 21 if (dip3 == 1 && blue < 1) { blue = blue + .1; }
kzar 0:17f02642d413 22 }
kzar 0:17f02642d413 23 void pb2_pressed(void) {
kzar 0:17f02642d413 24 if (dip1 == 1 && red > 0) { red = red - .1; }
kzar 0:17f02642d413 25 if (dip2 == 1 && green > 0) { green = green - .1; }
kzar 0:17f02642d413 26 if (dip3 == 1 && blue > 0) { blue = blue - .1; }
kzar 0:17f02642d413 27 }
kzar 0:17f02642d413 28
kzar 0:17f02642d413 29 int main() {
kzar 0:17f02642d413 30 //Set buttons internal pullup
kzar 0:17f02642d413 31 pb1.mode(PullUp);
kzar 0:17f02642d413 32 pb2.mode(PullUp);
kzar 0:17f02642d413 33 //set for the pressed functions to be called when the button is pressed
kzar 0:17f02642d413 34 pb1.attach_asserted(&pb1_pressed);
kzar 0:17f02642d413 35 pb2.attach_asserted(&pb2_pressed);
kzar 0:17f02642d413 36 //Default the sample freq
kzar 0:17f02642d413 37 pb1.setSampleFrequency();
kzar 0:17f02642d413 38 pb2.setSampleFrequency();
kzar 0:17f02642d413 39 //Set switches internal pullup
kzar 0:17f02642d413 40 dip1.mode(PullUp);
kzar 0:17f02642d413 41 dip2.mode(PullUp);
kzar 0:17f02642d413 42 dip3.mode(PullUp);
kzar 0:17f02642d413 43
kzar 0:17f02642d413 44 //Loop forever
kzar 0:17f02642d413 45 while(1) {
kzar 0:17f02642d413 46 if (dip1 == 0) { red = 0; }
kzar 0:17f02642d413 47 if (dip2 == 0) { green = 0; }
kzar 0:17f02642d413 48 if (dip3 == 0) { blue = 0; }
kzar 0:17f02642d413 49 }
kzar 0:17f02642d413 50 }
kzar 0:17f02642d413 51