Estoy en el proceso de convertir un proyecto de Raspberry Pi en una placa de circuito más simple con chips 555 y 4017.
Quiero poder comenzar mostrando 7 LED, luego ir a 6, luego a 5 y así sucesivamente hasta que todos estén atenuados.
Tomaré un ejemplo simple con 3 LED: el LED 1 se enciende si la placa está en el estado [0]. El LED 2 se enciende si la placa está en estado [0 O 1]. El LED 3 se enciende si la placa está en estado [0, 1 o 2]. No hay nada conectado a la placa para el estado [3]. Así, en el estado 0 de la placa, se encienden los LED 1, 2 y 3. En el estado 1, los LED 2 y 3 se encienden. En el estado 2, solo se enciende el LED 3. 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 (consumiendo demasiado voltaje), por lo que el brillo resultante con más de un par de LED es terrible. .
Pregunta 1: ¿Cómo puedo hacer que los LED realicen una cuenta regresiva (Y con buen voltaje en los LED cuando están encendidos), como se indicó anteriormente?
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 ingrese a su octavo estado, los LED PERMANEZCAN apagados (hasta que la placa de circuito se apague y vuelva a encender)? Los ejemplos que encuentro en la web parecen dar vueltas continuamente. Gracias.
Hay muchas formas de hacer esto, algunas incluyen una bolsa de diodos... o un micro, lo que sería excesivo en mi opinión.
El más simple es simplemente poner en cascada algunas puertas OR.
simular este circuito : esquema creado con CircuitLab
Sin embargo: si eso es todo para lo que se utilizan estas salidas, está utilizando la parte incorrecta aquí. Debería considerar usar un registro de desplazamiento en su lugar. Quizás un CD4015 .
NOTA: Las resistencias que se muestran son para 5V Vdd.
Hice esto para 5 LED usando un ATTiny85, un botón de reinicio con 10k pulldown y 2 pilas AA para 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, consulte http://www.hobbytronics.co.uk/arduino-attiny , por ejemplo.
colin
david m
colin
RJR