Después de su aclaración, es posible que lo que dije a continuación no funcione directamente, pero aún puede hacer algo similar para controlarlos (envíe un solo 1 en lugar de una serie). Sin embargo, cambiar las bombillas de corriente más alta definitivamente necesitará algún tipo de controlador. O puedes ir con la lógica de relevo de la vieja escuela. :) Pero, si no desea diseñar algo desde cero, considere algo como los módulos de automatización del hogar Insteon o X10. Luego puedes programar una escena que cambie a una bombilla diferente.
-
Depende de cómo quieras que se enciendan las luces. Si va a ser como un gráfico de barras, usaría siete registros de desplazamiento de 8 bits simples, como un 74LS594, más un circuito RC de rebote. Dependiendo de la cantidad de corriente que se esté hundiendo o obteniendo, es posible que también necesite algunos transistores o relés de unidad.
Su botón se conectará a la línea del reloj de los registros y tendrá un segundo botón para eliminarlos. Conectaría la entrada del primer registro a Vcc para producir 1s. A medida que los 1s se desplazan a través de los registros, cada salida subsiguiente va de 0 a 1, que se usaría para encender su bombilla.
Para explicar con más detalle cómo funciona esto, utiliza una serie de registros de turnos. El registro que recomendé tiene una entrada en serie, una salida en serie y una salida en paralelo. Cada vez que recibe una señal de reloj, todos los bits se desplazan una posición. Después de presionar el botón de reinicio, todos los bits se ponen a cero, por lo que todas las luces estarán apagadas. Así es como se ve el estado inicial:
1-in - > [0 | 0 | 0 | 0 | 0 | 0 | 0 | 0] - out ---- in - > [0 | 0 | 0 | 0 | 0 | 0 | 0 | 0] - fuera ...
El primer pin "en" está conectado a Vcc (potencia) para producir un 1. Cuando se presiona el botón del reloj, todos los bits cambian sobre uno:
1-in - > [1 | 0 | 0 | 0 | 0 | 0 | 0 | 0] - out ---- in - > [0 | 0 | 0 | 0 | 0 | 0 | 0 | 0] - fuera ...
Así se enciende la primera luz. Continuar presionando el botón continúa desplazando los bits, encendiendo más luces:
1-in - > [1 | 1 | 0 | 0 | 0 | 0 | 0 | 0] - out ---- in - > [0 | 0 | 0 | 0 | 0 | 0 | 0 | 0] - fuera ...
1-in - > [1 | 1 | 1 | 0 | 0 | 0 | 0 | 0] - out ---- in - > [0 | 0 | 0 | 0 | 0 | 0 | 0 | 0] - fuera ...
1-in - > [1 | 1 | 1 | 1 | 0 | 0 | 0 | 0] - out ---- in - > [0 | 0 | 0 | 0 | 0 | 0 | 0 | 0] - fuera ...
Al presionar el reinicio, todo volvería a 0, apagando todas las luces.
Las salidas paralelas se utilizarían para encender una luz.
Si desea que se encienda una única luz, necesitará un método para enviar un solo 1 en la entrada y seguirlo con ceros. Podría hacer eso agregando un flip-flop, un switch o una puerta NOR en el frente para cambiar el flujo de bits. Sería similar como antes:
1-in - > [0 | 0 | 0 | 0 | 0 | 0 | 0 | 0] - out ---- in - > [0 | 0 | 0 | 0 | 0 | 0 | 0 | 0] - fuera ...
0-in - > [0 | 1 | 0 | 0 | 0 | 0 | 0 | 0] - out ---- in - > [0 | 0 | 0 | 0 | 0 | 0 | 0 | 0] - fuera ...
0-in - > [0 | 0 | 1 | 0 | 0 | 0 | 0 | 0] - out ---- in - > [0 | 0 | 0 | 0 | 0 | 0 | 0 | 0] - fuera ...
0-in - > [0 | 0 | 0 | 1 | 0 | 0 | 0 | 0] - out ---- in - > [0 | 0 | 0 | 0 | 0 | 0 | 0 | 0] - fuera ...