trafficlight

Committer:
twjfransen
Date:
Tue Jun 05 07:09:37 2018 +0000
Revision:
0:62a4e92ec581
Traffic light lib

Who changed what in which revision?

UserRevisionLine numberNew contents of line
twjfransen 0:62a4e92ec581 1 #include "mbed.h"
twjfransen 0:62a4e92ec581 2
twjfransen 0:62a4e92ec581 3 enum lightState{ //States the light can be on
twjfransen 0:62a4e92ec581 4 RED,
twjfransen 0:62a4e92ec581 5 ORANGE,
twjfransen 0:62a4e92ec581 6 GREEN
twjfransen 0:62a4e92ec581 7 };
twjfransen 0:62a4e92ec581 8
twjfransen 0:62a4e92ec581 9 struct PwmLED { //Easy led color changer (with rgb led only 1 color!)
twjfransen 0:62a4e92ec581 10 PwmLED(PinName pin, int rgb_val) {
twjfransen 0:62a4e92ec581 11 PwmOut led(pin);
twjfransen 0:62a4e92ec581 12 led.period_ms(1);
twjfransen 0:62a4e92ec581 13 led = rgb_val / 255.0;
twjfransen 0:62a4e92ec581 14 }
twjfransen 0:62a4e92ec581 15 };
twjfransen 0:62a4e92ec581 16
twjfransen 0:62a4e92ec581 17 class trafficLight{
twjfransen 0:62a4e92ec581 18 public:
twjfransen 0:62a4e92ec581 19 trafficLight(PinName r, PinName g, PinName b); //Constructor
twjfransen 0:62a4e92ec581 20 lightState getState() { return currState; } //Return the state the light is current on
twjfransen 0:62a4e92ec581 21 void setState(lightState s); //Change the light to a different state
twjfransen 0:62a4e92ec581 22
twjfransen 0:62a4e92ec581 23 private:
twjfransen 0:62a4e92ec581 24 void red(); //Set state to red
twjfransen 0:62a4e92ec581 25 void orange(); //Set state to orange
twjfransen 0:62a4e92ec581 26 void green(); //Set state to green
twjfransen 0:62a4e92ec581 27
twjfransen 0:62a4e92ec581 28 void clear();
twjfransen 0:62a4e92ec581 29
twjfransen 0:62a4e92ec581 30 lightState currState;
twjfransen 0:62a4e92ec581 31 PinName rpin;
twjfransen 0:62a4e92ec581 32 PinName bpin;
twjfransen 0:62a4e92ec581 33 PinName gpin;
twjfransen 0:62a4e92ec581 34 };