trafficlight
traffic_light.h@0:62a4e92ec581, 2018-06-05 (annotated)
- Committer:
- twjfransen
- Date:
- Tue Jun 05 07:09:37 2018 +0000
- Revision:
- 0:62a4e92ec581
Traffic light lib
Who changed what in which revision?
User | Revision | Line number | New 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 | }; |