Paso 5: Lógica de Control para la visualización 7-segmento
Hay muchas maneras de controlar un display de 7 segmentos. Lo más fácil sería conectar cada LED a un pin digital de Arduino. Esto no es deseable por muchas razones. En primer lugar, no tienes suficientes pernos digitales para alambre a cada segmento o suministrar suficiente corriente para encender cada LED al mismo tiempo. Para contrarrestar estos dos problemas, la técnica común es conectar los segmentos. Generalmente, esto se hace con los registros de cambio, pero decidimos usar un análogo multiplexor en su lugar. Un multiplexor permite una sola entrada a varias salidas diferentes controlando unos pernos del selector de lógica. Nota, el multiplexor puede sólo dar salida a un canal en un momento. El multiplexor que utiliza dispone de 16 canales. El canal activo es determinado por los 4 pernos del selector (S0-S3). El truco que el multiplexor display un número en nuestro display de 7 segmentos personalizado es cambiar rápidamente los canales que el multiplexor es salir a. Por ejemplo, si quisiéramos mostrar el número 2, necesitamos iluminar los segmentos A, B, D, E y G. Con el multiplexor, salida para los canales que se unen a cada segmento. Tenemos que cambiar de un canal a otro tan rápidamente que el ojo humano verá que todos los canales de luz a la vez y posteriormente, el número "2".
Oh, me olvidé de mencionar, escribió una librería de Arduino para el multiplexor. Necesitaba un multiplexor para este y otros proyectos así que pensé que seguir adelante y escribir una biblioteca para él. La biblioteca multiplexor es para el control fácil de un solo multiplexor con el número N de canales hasta 32 canales. Iba a ser muy simple y al punto. Hay un montón de otras bibliotecas en la web si desea utilizar uno diferente. Tenga en cuenta que tendría que modificar el código de scoreKeeper.ino que nos va a dar te. Agrega Mux.h y Mux.cpconsult la Web de Arduino sobre cómo importar una biblioteca si no sabes cómo hacerlo.
Las principales funciones de la biblioteca que necesita preocuparse es el constructor y la función open(). El constructor inicializa un solo multiplexor. La función open() tiene un solo parámetro que es el canal que desea para la salida. La biblioteca es suficiente comentó si usted tiene alguna pregunta.