Ich bin dabei, ein Raspberry Pi-Projekt in eine einfachere Platine umzuwandeln, die mit 555- und 4017-Chips betrieben wird.
Ich möchte in der Lage sein, mit 7 LEDs zu beginnen, dann zu 6, dann zu 5 und so weiter, bis alle gedimmt sind.
Ich nehme ein einfaches Beispiel mit 3 LEDs: LED 1 leuchtet, wenn das Board im Zustand [0] ist. LED 2 leuchtet, wenn die Platine im Zustand [0 ODER 1] ist. LED 3 leuchtet, wenn sich die Platine im Zustand [0, 1 oder 2] befindet. Für Zustand [3] ist nichts mit der Platine verbunden. Somit leuchten im Platinenzustand 0 die LEDs 1, 2 und 3. Im Zustand 1 leuchten die LEDs 2 und 3. Im Zustand 2 leuchtet nur LED 3. In Zustand 3 leuchtet nichts.
Ich hatte versucht, die Schritt-für-Schritt-Ausgänge des 4017-Chips und der Dioden zu verwenden, um eine ODER-Schaltung zu bilden, aber ich denke, ich habe alle LEDs in Reihe (die zu viel Spannung verbrauchen), sodass die resultierende Helligkeit mit mehr als ein paar LEDs schrecklich ist .
Frage 1: Wie kann ich die LEDs wie oben herunterzählen (UND mit guter Spannung zu den LEDs, wenn sie leuchten)?
Frage 2: Die LEDs sind nur eine Hälfte der Platine. Wie kann ich sicherstellen, dass die LEDs ausgeschaltet bleiben, sobald der 4017-Chip in seinen achten Zustand eintritt (bis die Stromversorgung der Platine aus- und wieder eingeschaltet wird)? Die Beispiele, die ich im Internet finde, scheinen sich ständig zu drehen. Danke.
Es gibt viele Möglichkeiten, dies zu tun, einige enthalten eine Tüte Dioden ... oder ein Mikro, was meiner Meinung nach übertrieben wäre.
Am einfachsten ist es, einfach einige ODER-Gatter zu kaskadieren.
Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan
Allerdings: Wenn das alles ist, wofür diese Ausgänge verwendet werden, verwenden Sie hier das falsche Teil. Sie sollten stattdessen ein Schieberegister verwenden. Vielleicht ein CD4015 .
Simulieren Sie diese Schaltung
HINWEIS: Die gezeigten Widerstände sind für 5 V Vdd.
Ich habe dies für 5 LEDs mit einem ATTiny85, einem Reset-Knopf mit 10k Pulldown und 2x AA-Batterien für die Stromversorgung gemacht. Keine Strombegrenzungswiderstände erforderlich (aufgrund der Spannung der beiden AAs). Theoretisch könnten Sie den Reset-Pin für eine 6. LED verwenden, aber dann müssten Sie den Netzschalter verwenden, um den Controller zurückzusetzen. Arduino-Skizze:
// 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();
}
Informationen zum Programmieren des ATTiny 85 finden Sie beispielsweise unter http://www.hobbytronics.co.uk/arduino-attiny .
Colin
David M
Colin
RJR