Paso 6: El MCP
Ahora un poco sobre el software de Arduino que une todo el hardware y todo lo hace trabajar como nos gustaría. El programa de Control maestro de prueba-O-Tron 3000 (guiño a TRON) comprueba continuamente el estado de los pines de entrada 4. Cuando se detecta un cambio de estado a continuación, cambia el estado del pin de salida asociada (encender los LEDs) y espera cinco segundos. Estado del pin de salida es entonces reset (LEDs apagados) y el bucle para comprobar que el estado de la entrada de los pernos se repite. Desde una perspectiva de programación esto es muy simple de procesamiento. Aquí está una lista del código de programación de Arduino C que realiza estas tareas.
/*
Test-O-Tron 3000 MCP
Por Roy Rabey
Versión 1.0 06 de diciembre de 2010
*//*
Matrices para definir los conjuntos de pines de Arduino asociados a las cajas de botón.
Tal como se define a continuación el primer botón de la concursante (elemento 0 de ambas matrices) utiliza el pin 5 como entrada para detectar una pulsación del interruptor y perno 13 para conducir el control de la energía LED de salida.
*/
int inputPins [4] = {5,4,3,2}; Los números de los pines del interruptor.
int outputPins [4] = {13,12,11,10}; Los números de las patillas del LED.Algunas variables para el control de proceso
int maxPins = 4; Máximo número de conjuntos de pasador
unsigned WinDelayTime largo = 5000; Número de milisegundos que la luz LEDvoid winner(int); Definición de función.
//
Comenzar el proceso de
//
void setup() {}
/*
Setup() se realiza una vez que cuando se enciende o se restablece el Arduino.
*/Inicializa los pines de los LED.
Esto dice el Arduino cómo se utilizarán los pines.
para (int p = 0; p < maxPins; p ++) {}
pinMode (inputPins [p], entrada); Hacen de este un pin de entrada.
pinMode (outputPins [p], salida); Hacen de este un pin de salida.
}
}void loop() {}
/*
La función loop() se ejecuta una vez finalizada la función setup().
Como su nombre indica los lazos de la función loop() para siempre o hasta que se restablezca el Arduino.
*/int val = alta; Utilizado para determinar si ha cambiado el estado de un pin de entrada.
para (int p = 0; p < maxPins; p ++) {}
Leer el estado de cada pin de entrada.
Val = digitalRead(inputPins[p]); Lee el valor de la entrada de pin.Si (val == LOW) {}
Si un pin va bajo alguien oprimió un botón.
Winner(p); Llamar a la función winner() con ganar pin set.
}
}
}void ganador (int p) {}
Configurar el pin de salida alta para enviar energía al circuito del LED del botón.
digitalWrite (outputPins [p], HIGH); Encienda el LEDEsperar WinDelayTime milisegundos
Delay(WinDelayTime);Configurar el pin de salida baja a energía al circuito del LED del botón.
digitalWrite (outputPins [p], LOW); Apagar los LEDs
}
(Nótese que he incluido este código en tanto el formato de archivo del IDE de Arduino y como archivo de texto a continuación para su conveniencia).
Una de las cosas agradables de hacer electrónica con microcontroladores es que parte de la funcionalidad del proyecto se implementa en el software; Esto hace muy fácil de cambiar. Por ejemplo, si quería a parpadear los LEDs de las cajas de gran botón durante 10 segundos solo cambiar el valor de la variable "WinDelayTime" luego compilar/cargar el nuevo software para el Arduino y estoy hecho. Esto es mucho más fácil que tener que volver a calcular los valores para los componentes electrónicos utilizados para hacer tiempo y luego reemplazar el hardware asociado. Si bien este proyecto es una aplicación bastante sencilla de Arduino, puede hacer cosas increíbles con el Arduino. Y si usted está interesado en aprender sobre electrónica hay muchos proyectos basados en Arduino que le pueden ayudar. Yo no habría sido capaz de construir este proyecto en el tiempo que tuve disponible sin la plataforma Arduino.
Si estás interesado en aprender que más acerca de esta plataforma de desarrollo de microcontrolador revisa el proyecto Arduino http://www.arduino.cc.