Verwendung des 555-Timer als Taktgeber / Clock


Ein Chip, auf den man immer wieder stößt, ist der NE555-Timer, ein unscheinbares, kleines IC mit nur 8 Beinchen.

Er fungiert als Zeitgeber-IC, mit dem man ein Signal in regelmässigen Abstnänden ein und ausschalten kann, zum Beispiel um eine Clock zu realisieren.

Clocks werden für dynamische Schaltungen benötigt, in denen sich der Zustand fortlaufend ändert, z. b. zur seriellen Übertragung von Signalen, Counter /Zählwerke) oder für Computer. Dynamische Schaltungen führen mit jedem Taktimpuls, also bei jedem neuen Clock-Zyklus eine Zustandänderung herbei: Der Counter zählt um eins hoch, das serielle Protokoll überträgt das nächste Bit, der Computer führt den nächsten Befehl aus. Je höher die Clock getaktet ist, desto schneller rechnet der Computer oder desto schneller blinkt eine LED.


Das Pinout des 555 ist wie folgt: 1 GND Ground 2 Trigger Pluspol des Kondensators (für Ladezyklus) 3 Output Ausgang als Rechteck-Signal 4 Reset Zurücksetzung des Zyklus bei Low (auf High jumpern, wenn kein Reset benutzt) 5 Control voltage ggf. 10 nF gegen Ground zur Rauschreduzierung anschließen 6 Threshold Pluspol des Kondensators (für Entladezyklus) 7 Discharge Entladen des Kondensators über Widerstand an Pluspol 8 VCC Versorgungsspannung (4.5...16 V, funktionierte bei mir aber auch mit 3.3V) Um ein Overshooting beim Output-Signal zu vermeiden, einen 100 nF Kondensator zwischen GND und VCC anschließen (hat bei mir das Overshooting von 37% auf 2% reduziert). Die Features des oben abgebildeten ST NE555N sind:

Der innere Aufbau eines 555



Im Inneren des 555-Timers befinden sich drei 5 KΩ Widerstände in Reihe, die einen Spannungsteiler darstellen. Bei 5V Versorgungsspannung liegen dadurch 1.667V am ersten Komparator und 3.3V am 2. Komparator an. Die beiden Komparatoren (COMP) vergleichen die beiden Spannungen, die an ihren Eingängen anliegen und geben ihre Ergebnisse an ein SR-Latch-Flip-Flop weiter. Das heißt: je nach Spannungshöhe an den Eingängen Trigger (Pin 2) und Threshold (Pin 6) wird der Ausgang (OUT, Pin 3) des Latches High (Latch=Set) oder Low (Latch=Reset).

Verbinden wir jetzt den Ausgang eines Kondensators mit Trigger (Pin 2) und Threshold (Pin 6) passiert folgendes:

Den 555-Timer für eine Blink-Schaltung benutzen

Mit dem 555-Timer-Chip lässt sich einfach eine Blink-Schaltung realisieren, die man auch astabilen Multivibrator, Multiflop oder astabile Kippstufe nennt. Sie wechselt in bestimmten Zeitabständen zwischen an und aus (bzw. 1 und 0 bzw. High und Low). Eine z. B. angeschlossene LED ist also einen bestimmten Zeitraum an und einen bestimmten Zeitraum aus. Die Frequenz gibt an, wie oft die LED in einer Sekunde an ist.

Für eine Blink-Schaltung müssen wir nur: Der Schaltplan dazu:



Die Schaltung auf einem Breadboard und mit einem festen 100 kΩ-Widerstand:



Die LED blinkt etwa 7 mal die Sekunde. Am Kondensator und der LED habe ich einmal ein Oszilloskop angeschlossen:



Man erkennt schön die Dreieckskurve des Kondensators (gelb) in Verbindung mit dem Output (blau). Die Frequenz stimmt überein und beträgt 7.11 Hz. Der Ouput schaltet (bei 5V Versorgungsspannung) zwischen 0V und 3.67V um, das ergibt ein sauberes High. Da die maximale Output-Spannung also bei 3.67 V liegt können wir dafür noch einmal den Vorwiderstand ausrechnen. Er sollte damit 88.5 Ohm betragen. Ein 100 Ohm Vorwiderstand hätte also genügt.

Ich habe in der Schaltung einen festen 100 kΩ Widerstand benutzt. Im Datenblatt finden sich drei Formeln, mit denen man ausrechnen kann, welche Widerstände und welchen Kondensator man benutzen muss, um bestimmte Frequenzen zu erreichen:

Der Output Pin ist high für: t1 = 0.693 (R1 + R2) C1 (Ladezyklus) in unserem Fall t1 = 0.693 * (1kΩ + 100kΩ) * 1 µF = 0.693 * 101'000 * 0.000'001 = 0.069993 s = 70 ms Der Output Pin ist low für: t2 = 0.693 (R2) C1 (Entladezyklus) in unserem Fall t1 = 0.693 * (100kΩ) * 1 µF = 0.693 * 100'000 * 0.000'001 = 0.0693 = 69.3 ms Die Gesamtfrequenz ist t1+t2 oder 0.693 (R1 + 2R2) C1 in unserem Fall T = 0.693 * (1kΩ + 2*100kΩ) * 1 µF = 0.693 * 201'000 * 0.000'001 = 0.139293 = 139.3 ms = 7.18 Hz Wie man sieht, stimmen Mathematik und Realität zusammen. Auch unser Oszilloskop zeigt 7.1 Hz an. Der kleine Unterschied ist auf die Toleranzen der Bauteile zurückzuführen, z. B. 5 bis 10% bei den Widerständen.

Wählt man R1 relativ zu R2 größer, so wird der Ladezyklus länger und der Output bleibt länger auf high als auf low - und natürlich umgekehrt. So kann man mit dem 555-Timer auch eine Pulsweitenmodulation (PWM) realisieren.

Zum Nachbauen ist vielleicht folgende Darstellung besser geeignet, da übersichtlicher:



Das Bild oben stammt aus der von mir auf TinkerCAD aufegebauten Schaltung. Das Schöne daran. Dort gibt es auch eine Simulation der Blink-Schaltung. Einfach auf den Link klicken und die Simulation starten, um die Schaltung zu testen. Die Werte des 1k und 100k Ohm Widerstands könnt ihr dort auch (nach einer Kopie) ändern und so andere Blink-Intervalle ausprobieren.

Möchte man die Schnelligkeit des Taktes variabel halten, dann kann man anstatt des festen 100 kΩ Widerstands auch ein Poti einbauen, wie ich es auf der Schaltung rechts getan habe.



Ich verwende ein 500 kΩ Poti für R2, dass einen variablen Widerstand zwischen 0 und 500 kΩ liefert.



Wenn R2 Null werden würde, wäre das nicht besonders sinnvoll, also habe ich einen 1 kΩ Widerstand mit dem Poti in Reihe geschaltet, so dass R2 zwischen 1 kΩ und 501 kΩ liegt. Durch Drehen des Potis sind Frequenzen von 3 bis 523 Hz möglich.



Den 555-Timer zum Taster-Entprellen benutzen

Taster sind so aufgebaut, dass beim Niederdrücken zwei Metallkontakte aufeinandertreffen und die Verbindung herstellen. Nun kann es passieren, dass dabei ein sogenanntes Prellen auftritt, das heißt, die Kontaktflächen kontaktieren nicht nur einmal und bleiben dann verbunden, sondern gehen während des Kontaktiervorganges vielleicht wieder kurz auseinander, bevor sie zusammen bleiben, bis der Taster wieder losgelassen wird. Das selbe kann beim Loslassen des Tasters wieder passieren.

Diese Zustandsänderungen geschehen in sehr kurzer Zeitabständen, so dass man das an einer angeschlossenen LED nicht sehen würde. Aber dieses An/Aus kann z. B. vom CPUs bereits als ein Taktsignal missverstanden werden.

Darum muss man für solche Anwendungen einen Taster entprellen (oder auch debouncen). Auch hier kann uns der 555-Timer gute Dienste leisten, nämlich als sogenannte monostabile Kippstufe (oder auch monostabiler Multivibrator, Monoflop oder Univibrator).

Ist der 555 als Monoflop konfiguriert, erkennt dieser den erste einkommende Puls und schaltet seinen Ausgang für eine bestimmte Zeit auf High, die durch Kondensator und Widerstand bestimmt werden. Weitere Eingangspulse während der Zeit werden ignoriert - der Zustand bleibt unverändert auf High, bis der Taster wieder losgelassen wird. Resultat ist ein einzelnes, sauberes Signal mit einer bestimmten Mindestlänge.



Ich habe die Schaltung einmal auf einem Breadboard nachgebaut:



Der 10 kΩ Pullup-Widerstand zieht den Taster und den Trigger des 555 auf Pin 2 auf High. Das führt dazu, dass der 555er über den 1 MΩ Widerstand an Pin 7 stetig entladen wird und der Output Low ist.

Wird der Taster gedrückt, ist der Widerstand zu Ground Null und dominant. Der Trigger-Pin geht auf 0 Volt, ist damit unter dem Vergleichswert von 1.667 Volt des 1. Komparators und setzt den SR-Latch auf Set, was den Output Pin auf High schaltet und damit die LED an.

Gleichzeitig geht der invertierte Output des SR-Latch, der dafür gesorgt hatte, den Kondensator stetig zu entladen auf Low und der 100 nF Kondensator hat Gelegenheit, sich zu laden. Dies tut er solange, bis er die 3.3 Volt des 2. Komparators erreicht hat. Das führt dazu, dass der Reset des SR-Latches getriggert wird.

Ist der Taster zu diesem Zeitpunkt noch gedrückt, dann ist sowohl Set als auch Reset des SR-Latch aktiv, was bedeutet, dass der Output unverändert bleibt (S und R gleichzeitig hält den alten Zustand). Erst wenn der Taster losgelassen wird, ist Set nicht mehr aktiv, aber Reset immer noch und Reset schlägt durch und setzt den Output auf Low und schaltet die LED wieder aus. Der Kondensator entlädt wieder und das Spiel geht beim nächsten Tastendruck wieder von vorne los.

Ist der Taster kürzer als der Zeitraum, den der Kondensator zum Laden von 1.667 bis 3.3 Volt benötigt, gedrückt, wird Reset noch nicht aktiv, was heißt, dass der Ausgang diese Minimalzeit geschaltet bleibt.

Der Minimalzeitraum errechnet sich mit t = R1 * C1, in unserem Fall = 1 MΩ * 100 nF = 1'000'000 * 0.000'000'100 = 0.1 s ^^^----------- milli (m) ^^^------- mikro (μ) ^^^--- nano (n) was mit der Realität (Bauteiltoleranzen berücksichtigt) übereinstimmt:



Schaut man sich den Flankenanstieg beim Drücken des Tasters an, so ist jedes Prellen gefiltert. Der Flankenanstieg geschieht innerhalb von 56 ns und ohne Overshooting:



Das ist so, wie man das haben möchte: ein sauberes Taktsignal bei manueller Auslösung, dass sich auch bei längerem Drücken nicht wiederholt.

Den 555-Timer zum Stablilisieren eines Schalters benutzen

Ein Umschalter besteht aus einem mittleren Pin (G) und zwei äußeren Pins (A und B), zwischen denen hin- und hergeschaltet werden kann. Der mittlere Pin hat nach dem Umschaltvorgang eine stabile Verbindung entweder zwischen dem mittleren (G) und linken Pin (A) oder dem mittleren (G) und rechten Pin (B).

Doch der Umschaltvorgang selbst ist instabil. Bei Ausgangsstellung AG wird zuerst die Verbindung AG getrennt, so dass G unverbunden ist. Auf dem weiteren mechanischen Weg der Umschalters wird dann die Verbindung BG geschlossen. Dies geschieht normalerweise sehr schnell, doch kommt es auch hier zu einem ungewollten, kurzen Verbindungsabbruch, der einen Taktimpuls auslösen kann.

Um diesen zu unterdrücken können wir den Latch (Spannungserahltung-)-Mechanismus eines 555-Timer benutzen, und die eine Schalterposition in ein High und die andere in ein Low umwandeln. Und auch wenn Set und Reset gleichzeitig aktiv werden sollten (G kurzzeitig mit A und B gleichzeitig verbunden), gilt wieder die Regel eines SR-Latches: sind beide Eingägen aktiv, so bleibt es beim alten Zustand.

Da hier zwischen zwei Zuständen geschaltet (die dann gehalten werden) wird, spricht man von einer bistabilen Kippstufe, oder auch Flip-Flop genannt.

Genauso ein Flip-Flop (genauer SR oder auch RS-Flip-Flop) findet sich in unserem 555 (siehe Anfang des Artikels). Über den Trigger-Pin 2 erreichen wir das S-Gate und über den Reset-Pin 4 erreichen wir das Reset-Gate. Beide Gates sind in unserer Schaltung über 10 kΩ Widerstände auf High gezogen. Den Threshold Pin 6 setzen wir auf ständig Ground, damit das Reset-Gate ausschließlich über den Reset Pin 4 geschieht.

Die Stellung des Schalters bestimmt, welcher Pin über Ground auf Low gesetzt wird. Ist es der Trigger-Pin, wird der Ouput High und die LED geht an, denn das Set-Gate befindet sich zwischen 0 und 1.667 Volt. Ist es der Reset-Pin, dann wirkt der Reset, der Output wird Low und die LED geht aus.

Durch den Latch-Mechanismus des SR-Flip-Flop bleiben die letzten Zuständen während des spannungslosen oder doppeltbeschalteten Teils des Umschaltvorgangs erhalten. Das Umschalten geschieht sauber von einem in den anderen Zustand.

Ich habe die Schaltung einmal auf einem Breadboard aufgebaut:



Auf dem Oszilloskop können wir überprüfen, ob es auch kein Prellen beim Umschalten von A nach B (1. Bild) oder von B nach A (2. Bild) gibt. Wie man sieht, ist der gelatchte Umschaltvorgang in beiden Fällen sauber und unterhalb von 100 ns geschehen:



Ein 100 nF Kondensator zwischen den Spannungsschienen des Breadboard sorgt dafür, dass es nur ein minimales Overshooting gibt, da sich die Schaltung in der Zeit, die der Strom von Netzteil braucht, schnell am geladenen Kondensator bedienen kann.

Mit dem in diesem Artikel gewonnenen Wissen können wir uns ein Clock-Modul zur Taktung eines Breadboard-Computers aufbauen.