Buenas
el ejemplo de hoy es un poco más complicado que un Hello World, pero te dá mas alegrias. Se trata de utilizar un botón y un LED multicolor para cambiar el color del mismo con un timer.
En este ejemplo utilizaremos
- Fez Spider Mainboard
http://savecomm.net/p/53/fez-spider-starter-kit - USB Client DP
http://www.netmf.com/showcase.aspx?ShowcaseID=1&id=110 - Smart Multi Color Led Module
http://www.ghielectronics.com/catalog/product/272 - Button Module
http://www.ghielectronics.com/catalog/product/274
con el siguiente diagrama
Y de nuevo, con menos de 50 líneas de código fuente podremos implementar nuestra aplicación.
1: using Gadgeteer.Modules.GHIElectronics;
2: using GT = Gadgeteer;
3:
4: namespace GadgeteerApp5
5: {
6: public partial class Program
7: {
8: private GT.Timer _timer;
9:
10: void ProgramStarted()
11: {
12: button.ButtonPressed += ButtonButtonPressed;
13: _timer = new GT.Timer(1000);
14: _timer.Tick += TimerTick;
15: }
16:
17: void ButtonButtonPressed(Button sender, Button.ButtonState state)
18: {
19: if (!_timer.IsRunning)
20: {
21: _timer.Start();
22: }
23: else
24: {
25: _timer.Stop();
26: multicolorLed.TurnOff();
27: }
28: }
29:
30: private void TimerTick(GT.Timer timer)
31: {
32: var color = multicolorLed.GetCurrentColor();
33:
34: if (color == GT.Color.Blue)
35: {
36: color = GT.Color.Green;
37: }
38: else if (color == GT.Color.Green)
39: {
40: color = GT.Color.Red;
41: }
42: else
43: {
44: color = GT.Color.Blue;
45: }
46:
47: multicolorLed.TurnColor(color);
48: }
49: }
50: }
Datos interesantes de la aplicación
- Línea 13, implementación especial de timer para .Net Gadgeteer. Ni intentes utilizar el timer de .Net, morirás entre terribles sufrimientos
- Línea 19, en la implementación del button, se inicia el Timer y se apaga el LED cuando se detiene el timer
- Línea 29, demuestra lo simple que es utilizar el LED, un GetCurrentColor() para obtener el color actual y luego un TurnColor() para definir el color del LED
El video a continuación
Saludos @ La Finca
El Bruno
Leave a comment