Paso 53: Software: llevó los anillos y los motores de lavadora bola
void LED_no (LED UINT8, UINT16 datos)
El primer parámetro 'LED' tomará un valor de entrada de 1-16 y determinar que OUTx pin en el TLC5940 que estamos controlando. El segundo parámetro, 'datos', establece el valor PWM entre 0 - 4095 para esa salida. Esta función se utiliza para controlar los anillos de carril LED así como los anillos de la arandela LED de bola. Para activar el anillo LED #8 con un valor PWM de 3230, debería escribir:
Gire el anillo LED #8 con un ciclo de trabajo de 3230
LED_no(8,3230);
void Fade_Ring (UINT8 LED flotador viejo flotador nuevo, UINT16 demora)
Esta función utiliza el mismo formato exacto a desvanecerse los anillos LED que Fade_To() utiliza para desvanecer las vainas RGB. Ha se ha modificado para escribir en salidas del TLC5940 #5 para los anillos de LED y las arandelas de la bola pero que aún utiliza la llamada de interrupción Fade_State() para manejar todas la decoloración una vez que esta función ha sido llamada. La matriz de UINT16 global que se utiliza para guardar el valor actual de cada anillo de LED se llama 'LEDring [16]'. Una vez que el usuario llama a esta función se desvanecen, la rutina de interrupción actualizará automáticamente la ventanilla un paso más se desvanecen por interrupción hasta que el anillo se ha desvanecido completamente hasta el nivel de brillo especificado. La tasa de transición se calcula del mismo modo que hemos calculado para las vainas RGB en el paso #52. Aquí está un ejemplo de desvanecimiento de un aro a su máximo brillo en el transcurso de 80ms:
Comenzar a descolorarse LED anillo #3
Fade_Ring (3, LEDring [2], 4095, 10);
void Ball_Washer (bw UINT8, UINT16 fan_speed, UINT16 pump_speed)
Para controlar los motores de lavadora bola, vamos a utilizar la función llamada Ball_Washer(a,b,c) que nos permitirá configurar las velocidades para los motores ventilador y bomba en una de las arandelas de la bola. Los anillos de LED alrededor de los orificios de entrada y salida de bola lavadora se controlan de la misma manera que los anillos de LED en los rieles, esta función sólo utiliza la función LED_no(LED,data) para establecer las velocidades del motor. Aquí es cómo se enciende el ventilador a velocidad media para lavadora bola #2:
Encienda el ventilador a velocidad media para lavadora bola #2; Mantener la bomba apagada
Ball_Washer (2, 2048, 0);
Foto #1 contiene la distribución para cada uno de los anillos de LED, pero también he publicado un video abajo que ciclos los anillos LED #1 al #12 de en ese orden.