Con un 555 + 4017, ¿cómo enciendo 7 LED, luego 6, luego 5 ... luego 1 y luego 0?

1

Estoy en el proceso de convertir un proyecto de Raspberry Pi en una placa de circuito más simple con 555 y 4017 chips.

Quiero poder comenzar mostrando 7 LED, luego pasar a 6, luego a 5 y así sucesivamente hasta que todos estén atenuados.

Tomaré un ejemplo simple con 3 LEDs: El LED 1 se enciende si la placa está en estado [0]. El LED 2 se enciende si la placa está en estado [0 O 1]. El LED 3 se enciende si el tablero está en estado [0, 1 o 2]. Nada está conectado a la placa para el estado [3]. Así, en el estado de 0 de la placa, los LED 1, 2 y 3 se encienden. En estado 1, se encienden los LED 2 y 3. En estado 2, solo LED 3 luces. En el estado 3, nada se enciende.

Intenté usar las salidas paso a paso del chip 4017 y los diodos para formar un circuito OR, pero creo que tengo todos los LED en serie (drenando demasiado voltaje), por lo que el brillo resultante con más de un par de Los LEDs son terribles.

Pregunta 1: ¿Cómo puedo tener una cuenta regresiva de los LED (Y con un buen voltaje para los LED cuando están encendidos), como se muestra arriba?

Pregunta 2: Los LED son solo la mitad de la placa de circuito. ¿Cómo puedo asegurarme de que una vez que el chip 4017 entra en su octavo estado, los LEDs ESTÁN APAGADOS (hasta que la alimentación de la placa de circuito se apaga y se vuelve a encender)? Los ejemplos que estoy encontrando en la web parecen circular continuamente. Gracias.

    
pregunta David M

2 respuestas

1

Hay muchas maneras de hacer esto, algunas incluyen una bolsa de diodos ... o un micro, que en mi opinión sería una exageración.

Lo más simple es simplemente conectar en cascada algunas compuertas OR.

simular este circuito : esquema creado usando CircuitLab

Sin embargo: si para eso se están utilizando todas estas salidas, está utilizando la parte incorrecta aquí. Debes considerar utilizar un registro de desplazamiento en su lugar. Tal vez un CD4015 .

simular este circuito

NOTA: los resistores que se muestran son para 5V Vdd.

    
respondido por el Trevor_G
0

Hice esto por 5 leds con un ATTiny85, un botón de reinicio con 10k desplegable y 2 pilas AA para la alimentación. No se requieren resistencias limitadoras de corriente (debido al voltaje de los dos AA). En teoría, podría usar el pin de reinicio para un sexto LED, pero luego tendría que usar el interruptor de encendido para reiniciar el controlador. Bosquejo de Arduino:

// Shower timer with LEDs
// everything happens on the setup part.
// timer starts when reset
// once loop() is reached, go in deep sleep

#define LED1 0 // 1st green led
#define LED2 1 // 2nd green led
#define LED3 2 // 3rd green led
#define LED4 4 // yellow led
#define LED5 3 // red led

#include <avr/power.h>
#include <avr/sleep.h>

// the setup routine runs once when you press reset:
void setup() {
  // go low power
  power_adc_disable();
  power_usi_disable();
  power_timer0_disable();

  // initialize the digital pin as an output.
  pinMode(LED1, OUTPUT);
  pinMode(LED2, OUTPUT);
  pinMode(LED3, OUTPUT);
  pinMode(LED4, OUTPUT);
  pinMode(LED5, OUTPUT);
  PORTB = B00011111; // all LEDs on
  delay(60000); // one minute
  digitalWrite(LED1, LOW);
  delay(60000); // one minute
  digitalWrite(LED2, LOW);
  delay(60000); // one minute
  digitalWrite(LED3, LOW);
  delay(60000); // one minute
  digitalWrite(LED4, LOW);
  delay(60000); // one minute

  // blink for a minute
  for (int i=0; i<30; i++) {
    PORTB = 0;
    delay(1000);
    PORTB = B00011111;
    delay(1000);
  }
  PORTB = 0; // all off
}

// the loop routine runs over and over again forever:
void loop() {
  cli(); // disable all interrups
  set_sleep_mode(SLEEP_MODE_PWR_DOWN); // lower power sleep mode
  cli(); // disable all interrups
  sleep_enable(); // enable sleep
  sleep_cpu();  
}

Para programar el ATTiny 85, vea enlace por ejemplo.

    
respondido por el RJR

Lea otras preguntas en las etiquetas