Driver to control leds one at a time or in group
Dependents: handling_leds leds toggle writing ... more
Hotboards_leds.h
00001 /* 00002 Hotboards_leds.cpp - Driver to control leds one at a time or in group 00003 Hotboards leds board (http://hotboards.org) 00004 Created by Diego Perez, January 16, 2016. 00005 Released into the public domain. 00006 */ 00007 #ifndef Hotboards_leds_h 00008 #define Hotboards_leds_h 00009 00010 #include "mbed.h" 00011 00012 /** Hotboards_leds class. 00013 * Used to control general purpose leds 00014 * 00015 * Example: 00016 * @code 00017 * #include "mbed.h" 00018 * #include "Hotboards_leds.h" 00019 * 00020 * Hotboards_leds led( PB_5 ); 00021 * 00022 * int main( void ) 00023 * { 00024 * for(;;){ 00025 * led.toggle( ); 00026 * wait( 0.2 ); 00027 * } 00028 * } 00029 * @endcode 00030 */ 00031 class Hotboards_leds 00032 { 00033 public : 00034 /** Create Hotboards_leds instance for one led 00035 * @param led0 pin where the led 0 will be connected 00036 * @param on logic level to turn on the led 00037 * 00038 * Example: 00039 * @code 00040 * // instance one led on pin 5 00041 * Hotboards_leds led( 5 ); 00042 * @endcode 00043 */ 00044 Hotboards_leds( PinName led0, bool on=1 ); 00045 00046 /** Create Hotboards_leds instance for two leds 00047 * @param led1 pin where the led 1 will be connected 00048 * @param led0 pin where the led 0 will be connected 00049 * @param on logic level to turn on the leds 00050 * 00051 * Example: 00052 * @code 00053 * // one instance with 2 leds on pins 5 and 6 00054 * Hotboards_leds led( 5, 6 ); 00055 * @endcode 00056 */ 00057 Hotboards_leds( PinName led1, PinName led0, bool on=1 ); 00058 00059 /** Create Hotboards_leds instance for three leds 00060 * @param led2 pin where the led 2 will be connected 00061 * @param led1 pin where the led 1 will be connected 00062 * @param led0 pin where the led 0 will be connected 00063 * @param on logic level to turn on the leds 00064 * 00065 * Example: 00066 * @code 00067 * // one instance with 3 leds on pins 5, 6 and 7 00068 * Hotboards_leds led( 5, 6, 7 ); 00069 * @endcode 00070 */ 00071 Hotboards_leds( PinName led2, PinName led1, PinName led0, bool on=1 ); 00072 00073 /** Create Hotboards_leds instance for four leds 00074 * @param led3 pin where the led 3 will be connected 00075 * @param led2 pin where the led 2 will be connected 00076 * @param led1 pin where the led 1 will be connected 00077 * @param led0 pin where the led 0 will be connected 00078 * @param on logic level to turn on the leds 00079 * 00080 * Example: 00081 * @code 00082 * // one instance with 4 leds on pins 5, 6, 7 and 8 00083 * Hotboards_leds led( 5, 6, 7, 8 ); 00084 * @endcode 00085 */ 00086 Hotboards_leds( PinName led3, PinName led2, PinName led1, PinName led0, bool on=1 ); 00087 00088 /** Create Hotboards_leds instance for five leds 00089 * @param led4 pin where the led 4 will be connected 00090 * @param led3 pin where the led 3 will be connected 00091 * @param led2 pin where the led 2 will be connected 00092 * @param led1 pin where the led 1 will be connected 00093 * @param led0 pin where the led 0 will be connected 00094 * @param on logic level to turn on the leds 00095 * 00096 * Example: 00097 * @code 00098 * // one instance with 5 leds on pins 5, 6, 7, 8 and 9 00099 * Hotboards_leds led( 5, 6, 7, 8, 9 ); 00100 * @endcode 00101 */ 00102 Hotboards_leds( PinName led4, PinName led3, PinName led2, PinName led1, PinName led0, bool on=1 ); 00103 00104 /** Create Hotboards_leds instance for six leds 00105 * @param led5 pin where the led 5 will be connected 00106 * @param led4 pin where the led 4 will be connected 00107 * @param led3 pin where the led 3 will be connected 00108 * @param led2 pin where the led 2 will be connected 00109 * @param led1 pin where the led 1 will be connected 00110 * @param led0 pin where the led 0 will be connected 00111 * @param on logic level to turn on the leds 00112 * 00113 * Example: 00114 * @code 00115 * // one instance with 6 leds on pins 5, 6, 7, 8, 9 and 10 00116 * Hotboards_leds led( 5, 6, 7, 8, 9, 10 ); 00117 * @endcode 00118 */ 00119 Hotboards_leds( PinName led5, PinName led4, PinName led3, PinName led2, PinName led1, PinName led0, bool on=1 ); 00120 00121 /** Create Hotboards_leds instance for seven leds 00122 * @param led6 pin where the led 6 will be connected 00123 * @param led5 pin where the led 5 will be connected 00124 * @param led4 pin where the led 4 will be connected 00125 * @param led3 pin where the led 3 will be connected 00126 * @param led2 pin where the led 2 will be connected 00127 * @param led1 pin where the led 1 will be connected 00128 * @param led0 pin where the led 0 will be connected 00129 * @param on logic level to turn on the leds 00130 * 00131 * Example: 00132 * @code 00133 * // one instance with 7 leds on pins 5, 6, 7, 8, 9, 10 and 11 00134 * Hotboards_leds led( 5, 6, 7, 8, 9, 10, 11 ); 00135 * @endcode 00136 */ 00137 Hotboards_leds( PinName led6, PinName led5, PinName led4, PinName led3, PinName led2, PinName led1, PinName led0, bool on=1 ); 00138 00139 /** Create Hotboards_leds instance for eight leds 00140 * @param led7 pin where the led 7 will be connected 00141 * @param led6 pin where the led 6 will be connected 00142 * @param led5 pin where the led 5 will be connected 00143 * @param led4 pin where the led 4 will be connected 00144 * @param led3 pin where the led 3 will be connected 00145 * @param led2 pin where the led 2 will be connected 00146 * @param led1 pin where the led 1 will be connected 00147 * @param led0 pin where the led 0 will be connected 00148 * @param on logic level to turn on the leds 00149 * 00150 * Example: 00151 * @code 00152 * // one instance with 8 leds on pins 5, 6, 7, 8, 9, 10, 11 and 12 00153 * Hotboards_leds led( 5, 6, 7, 8, 9, 10, 11, 12 ); 00154 * @endcode 00155 */ 00156 Hotboards_leds( PinName led7, PinName led6, PinName led5, PinName led4, PinName led3, PinName led2, PinName led1, PinName led0, bool on=1 ); 00157 00158 /** Turn on a single led 00159 * @param led led number to be turn on 00160 * 00161 * Example: 00162 * @code 00163 * // instance one led on pin 5 and turn it on 00164 * Hotboards_leds led( 5 ); 00165 * led.turnOn( ); 00166 * 00167 * // instance a bus with 4 leds 00168 * Hotboards_leds leds( 8, 7, 6, 5 ); 00169 * // turn on led 2 on pin 7 00170 * leds.turnOn( 2 ); 00171 * // turn on led 0 on pin 5 00172 * leds.turnOn( 0 ); 00173 * @endcode 00174 */ 00175 void turnOn( uint8_t led=0 ); 00176 00177 /** Turn off a single led 00178 * @param led led number to be turn off 00179 * 00180 * Example: 00181 * @code 00182 * // instance one led on pin 5 and turn it off 00183 * Hotboards_leds led( 5 ); 00184 * led.turnOff( ); 00185 * 00186 * // instance a bus with 4 leds 00187 * Hotboards_leds leds( 8, 7, 6, 5 ); 00188 * // turn off led 3 on pin 8 00189 * leds.turnOff( 3 ); 00190 * // turn off led 0 on pin 5 00191 * leds.turnOff( 0 ); 00192 * @endcode 00193 */ 00194 void turnOff( uint8_t led=0 ); 00195 00196 /** Toggle a single led 00197 * @param led led number to be toggled 00198 * 00199 * Example: 00200 * @code 00201 * // instance one led on pin 7 and toggle it 00202 * Hotboards_leds led( 7 ); 00203 * led.toggle( ); 00204 * 00205 * // instance a bus with 3 leds 00206 * Hotboards_leds leds( 2, 3, 4 ); 00207 * // toggle led 2 on pin 2 00208 * leds.toggle( 2 ); 00209 * // toggle led 1 on pin 3 00210 * leds.toggle( 1 ); 00211 * @endcode 00212 */ 00213 void toggle( uint8_t led=0 ); 00214 00215 /** Write to a single led or the entire bus 00216 * @param val value to be written 00217 * 00218 * Example: 00219 * @code 00220 * // instance one led on pin 7 and write a 1 (aceptara valores de 0 a 1) 00221 * Hotboards_leds led( 7 ); 00222 * led.write( 1 ); 00223 * 00224 * // instance a 4 leds bus (pin2->led3 ..... pin5->led0) 00225 * Hotboards_leds leds( 2, 3, 4, 5 ); 00226 * // write the 10 value (it will accept values from 0 to 15) 00227 * leds.write( 10 ); 00228 * 00229 * // instance an 8 leds bus (pin4->led7 ..... pin3->led0) 00230 * Hotboards_leds leds( 4, 3, 2, 6, 5, 7, 8, 9 ); 00231 * // write the 134 value (it will accept values from 0 to 255) 00232 * leds.write( 134 ); 00233 * @endcode 00234 */ 00235 void write( uint8_t val ); 00236 00237 /** Read a single led or the entire bus 00238 * @return led states 00239 * 00240 * Example: 00241 * @code 00242 * // instance on led on 7 and read its state (0 o 1) 00243 * Hotboards_leds led( 7 ); 00244 * uint8_t var = led.read( ); 00245 * 00246 * // instance an 8 leds bus (pin9->led7 ..... pin2->led0) 00247 * Hotboards_leds leds( 9, 8, 7, 6, 5, 4, 3, 2 ); 00248 * // read the leds value (from 0 to 255) 00249 * uint8_t var = leds.read( ); 00250 * 00251 * // nstance a 4 leds bus (pin2->led3 ..... pin5->led0) 00252 * Hotboards_leds leds( 2, 3, 4, 5 ); 00253 * // read led 1 state (pin 4) 00254 * uint8_t val1 = leds.write( 1 ); 00255 * // read led 0 state (pin 5) 00256 * uint8_t val2 = leds.write( 0 ); 00257 * @endcode 00258 */ 00259 uint8_t read( uint8_t led=0xff ); 00260 00261 private : 00262 void begin( uint8_t led, PinName pin ); 00263 DigitalOut *_pin[8]; 00264 uint8_t _leds; 00265 uint8_t _state; 00266 bool _on; 00267 }; 00268 00269 #endif
Generated on Mon Jul 18 2022 18:23:41 by 1.7.2