Thyristorzündung verzögern

Gast #4389257
Lesenswert?

Hallo liebe mikrocontroller.net-Gemeinde!

Nach stundenlangem, vergeblichen Suchen werde ich nun doch einen Beitrag 
verfassen und hoffen, dass Ihr mir helfen könnt :)

Ich habe vor, mit einem 74HC595 Schieberegister über einen ULN2803A acht 
Relais samt LEDs zu schalten - Relais und LEDs laufen über 24V.

Nun habe ich gelesen, dass das Schieberegister bei Bespannung zufällige 
Schaltzustände schaltet, bis 0x00 ins Register geschrieben und auf die 
Ausgänge übertragen wird.

Jetzt hätte ich vor, die 24V mittels eines Thyristors verzögert und ohne 
eines zusätzlichen µC-Pins auf die Relais zu schalten (GND hängt ja am 
ULN2803), nur bin ich nicht ganz schlüssig, wie das nun genau gehen 
soll. Ich hätte an ein RC-Glied gedacht, welches nach einer gewissen 
Zeit (abhängig von R) die Zündspannung des Thyristors überschreitet und 
diesen leitfähig macht.

Nur auf einen konkreten Schaltplan komm' ich irgendwie nicht.
Ehrlich gesagt sind Thyristoren auch ein bisher unbekanntes Gebiet für 
mich.

Vielleicht könnt Ihr mir helfen!
Gast #4389276
Lesenswert?

Hallo Max,

ja, dass habe ich schon gelesen, nur habe ich keinen Pin am µC mehr 
frei. Darum hätte ich mir gedacht, das in die Richtung zu realisieren.

Oder gibt's noch eine andere Möglichkeit ohne einen µC-Pin zu benötigen?

Danke!
Moderator (Firma: Titel) Persönliche Seite #4389312
Lesenswert?

Daniel schrieb:
> Jetzt hätte ich vor, die 24V mittels eines Thyristors verzögert und ohne
> eines zusätzlichen µC-Pins auf die Relais zu schalten
Wozu soll da ein Thyristor gut sein?

> Ich habe vor, mit einem 74HC595 Schieberegister über einen ULN2803A acht
> Relais samt LEDs zu schalten - Relais und LEDs laufen über 24V.
Was haben die Relais mit den LEDs zu tun? Gibts das auch als Schaltplan?

> Nun habe ich gelesen, dass das Schieberegister bei Bespannung zufällige
> Schaltzustände schaltet, bis 0x00 ins Register geschrieben und auf die
> Ausgänge übertragen wird.
Sieh dir mal den /OE Pin an. Mit dem könnte man da doch was machen, oder 
nicht?
Wenn der ausreichend lang auf "1" gehalten wird, dann wäre der Ausgang 
hochohmig und dein ULN würde nicht schalten. Da würde als 
Startverzögerung evtl. sogar ein RC-Glied reichen...

EDIT: Pech, Zweiter...  ;-)
Gast #4389337
Lesenswert?

NE555-Griller schrieb im Beitrag #4389286:
> Du kannst den OE-Pin des ICs ja auch einfach mit entsprechend großem RC
> gegen Vcc beschalten und noch einen (invertierenden) Schmitt-Trigger
> dazwischenpacken...

@NE555-Griller:
Ok, das klingt logisch, kann ich das so realisieren wie im Anhang?
Und könnte ich den im Datenblattausschnitt angeführten Schmitt-Trigger 
benutzen? Da müsste ich dann, wenn ich dich richtig verstehe, das 
RC-Glied so berechnet werden, dass dir Threshold-Spannung nach z.B. 2sek 
überschritten wird, oder?

@Lothar:
Thyristor war Grundgedanke, weil mir sonst (noch) nichts eingefallen war 
:P
Die LEDs zeigen den Schaltzustand der Relais :)
Und danke für deine Hilfe :)

@oszi40:
Nein, Pegelprobleme gibt's keine :)

Vielen Dank und LG!!
Daniel
Angehängte Dateien:
#4389354
Lesenswert?

Du könntest auch das RC-Glied (kondensator gegen Vcc) aus dem Latch-Pin 
speißen und diesen mit einem Hardware-Pullup versehen.
Hat den Vorteil, dass beim Programmieren ebenfalls OE abgewürgt wird 
(oder wenn der µC sonst irgendwie resettet).
In der Praxis funktioniert das so:
Der µC startet mit einem hochohmigen Pin (wüsste keinen der das nicht 
tut). Das RC-Glied ist "leer". OE wird auf 1 gezogen und schaltet den 
ausgang ab. Wenn der µC gebootet hat initialisiert er den Pin als 
Ausgang, aber lässt in auf high stehen. Dann schiebt der den ersten 
datensatz rein und pulst den pin mit low-high-low. Die steigende Flanke 
latcht die daten und das nachfolgende Low entlädt (langsam) das RC-Glied 
welches nach ein paar zig ms (vorteil: Kurze wartezeit heißt kleine 
caps) OE "durchschaltet" und so den Ausgang aktiviert.
Wenn neue Daten kommen werden die einfach mit einem kurzen "high-spike" 
gelatched welcher von dem RC-Glied einfach ignoriert wird.
#4389383
Lesenswert?

Du brauchts zwei Widerstände und einen kondensator.

Der kondensator kommt von /OE nach Vcc.
Ein Widerstand kommt von /OE nach STCP.
Ein Widerstand kommt von STCP nach Vcc.

Für den Kondensator kannst du einfach noch einen 100 nF Cap nehmen mit 
denen du eh schon deinen µC abgeblockt hast (hoffentlich).
Für die Widerstände nimmst du 10kΩ. Damit kannst du 1 ms Latchingpulse 
nehmen ohne, dass /OE betroffen ist.
Gast #4389405
Lesenswert?

Max D. schrieb:
> Du brauchts zwei Widerstände und einen kondensator.
>
> Der kondensator kommt von /OE nach Vcc.
> Ein Widerstand kommt von /OE nach STCP.
> Ein Widerstand kommt von STCP nach Vcc.
>
> Für den Kondensator kannst du einfach noch einen 100 nF Cap nehmen mit
> denen du eh schon deinen µC abgeblockt hast (hoffentlich).
> Für die Widerstände nimmst du 10kΩ. Damit kannst du 1 ms Latchingpulse
> nehmen ohne, dass /OE betroffen ist.

Also so?
Und was meinst du mit "mit denen du eh schon den µC abgeblockt hast"?

Danke und LG
Angehängte Dateien:
#4389422
Lesenswert?

Schaltplan passt.
Dein µC (und btw auch der 595er) braucht an seinen Versorgungspins 
Keramik-Kondensatoren die die Stromspitzen glätten während der µC 
arbeitet. Dafür nimmt man klassischerweise 100 nF Kerkos.
Welchen µC hast du eigtl. genau ? neugierig
Gast #4389502
Lesenswert?

Ok, das mit den Kondensatoren an VCC beim uC hab ich gewusst, aber der 
74HC595 auch?

Mein uC ist ein Atmega32u4.

Und ich habe 2 schieberegister hintereinander geschalten, kann ich da 
die obige schaltung dort anbauen, wo es am besten zugänglich ist bzw. 
vom ersten OE zum zweiten OE fahren? Und wie müsste ich die Bauteile 
dimensionieren bei zwei Schieberegistern? (R & C)

Und danke für deine/eure Hilfe, echt ein super Forum hier!
Moderator (Firma: Titel) Persönliche Seite #4389503
Lesenswert?

Max D. schrieb:
> die die Stromspitzen glätten während der µC arbeitet.
Etwas frei formuliert: die Kondensatoren können keine Stromspitzen 
glätten, denn etwas Glattes hat keine Spitzen mehr...

Die Entkopplungs- oder Blockkondensatoren sind Kondensatoren, die den 
Strom bereitstellen, der beim taktsynchronen Umschalten der vielen, 
vielen CMOS-Gatter im uC benötigt wird.
Sind diese Kondensatoren nicht da oder schlecht angeschlossen, dann 
möchte der uC den selben Strom fließen lassen, weil der aber nicht 
bereitgestellt wird, bricht die Spannung kurzzeitig ein (wie wenn ein 
Netzzteil 5A liefern müsste, aber nur 1A liefern kann: die Spannung 
knickt ein). Und das bei jedem einzelnen Oszillatortakt mehr oder 
weniger, je nach dem, wieviele Gatter gerade umgeschaltet werden...
Gast #4389712
Lesenswert?

Max D. schrieb:
> Schaltplan passt.
> Dein µC (und btw auch der 595er) braucht an seinen Versorgungspins
> Keramik-Kondensatoren die die Stromspitzen glätten während der µC
> arbeitet.

Lothar M. schrieb:
> Die Entkopplungs- oder Blockkondensatoren sind Kondensatoren, die den
> Strom bereitstellen, der beim taktsynchronen Umschalten der vielen,
> vielen CMOS-Gatter im uC benötigt wird.

Ok, warum man die Kon's braucht hab' ich nicht genau gewusst, jetzt weiß 
ich das auch :)



Jetzt stellt sich mir nur noch die Frage, wie ich bei zwei aneinander 
gekoppelten 74HC595 bezüglich /OE vorgehen muss (siehe Beitrag ober 
Lothar's). Der Q7" von SR1 geht auf DS von SR2.

Reicht es, einfach vom Pin /OE vom 1. Schieberegister zum /OE vom 2. 
Schieberegister zu fahren?
Und wie muss ich die Bauteile (R & C) dimensionieren damit das mit 
beiden SR's funktioniert?

Bin euch echt dankbar, habt mir schon gewaltig geholfen und sogar etwas 
gelernt :) schwer begeistert
Angehängte Dateien:
#4389770
Lesenswert?

Daniel schrieb:
> Reicht es, einfach vom Pin /OE vom 1. Schieberegister zum /OE vom 2.
> Schieberegister zu fahren?
> Und wie muss ich die Bauteile (R & C) dimensionieren damit das mit
> beiden SR's funktioniert?

Dadurch, dass das CMOS Kisten sind ist das kein Problem auf dem Weg die 
zu kaskadieren (erst wenn man zweistellige Anzahlen hat muss man 
anfangen über die parasitären Kapas nachzudenken).
Moderator (Firma: Titel) Persönliche Seite #4389801
Lesenswert?

Daniel schrieb:
> Reicht es, einfach vom Pin /OE vom 1. Schieberegister zum /OE vom 2.
> Schieberegister zu fahren?
Wie sagt Radio Eriwan: "Im Prinzip ja".

> Und wie muss ich die Bauteile (R & C) dimensionieren damit das mit
> beiden SR's funktioniert?
Das kommt darauf an, wie lange du brauchst, bis definierte Werte im 
Schieberegister stehen...
Gast #4389814
Lesenswert?

Lothar M. schrieb:
>> Und wie muss ich die Bauteile (R & C) dimensionieren damit das mit
>> beiden SR's funktioniert?
> Das kommt darauf an, wie lange du brauchst, bis definierte Werte im
> Schieberegister stehen


Maximal 500ms wären zu überbrücken, wie kann man das dann berechnen wie 
groß R&C sein müssen?
Gast #4390719
Lesenswert?

Lothar M. schrieb:
> Und nimm diese Schaltung dafür:
>                       |
>     Vcc   R           |
>      o---===----o-----| /OE
>                 |     |
>                 |+    |
>             C  ===    |
>                 |
>                ---
> Also etwa R=10k und C=100uF...

Das 74HC595-Schieberegister schaltet doch, die Ausgänge bei einem 
LOW-Pegel an /OE raus oder?

Diese Schaltung startet jedoch bei 0V und lädt den Kondensator langsam 
auf VCC auf, was heißen würde, dass nach einer bestimmten Zeit die 
Ausgänge abgeschalten werden. Oder liege ich falsch?

Ist die Schaltung von Max D. soweit richtig, um das Vorhaben umzusetzen? 
Bin mir jetzt nicht sicher, was ich nun machen soll :(

LG
Gast #4390964
Lesenswert?

Max D. schrieb:
> Die Schaltung von Lothar ist auf jeden Fall "falschrum" und tauscht den
> Aufwand den Latch-Pin speziell zu takten gegen einen duetlich größeren
> 100µF Kondensator ein.
> €dit: Und beim reset sperrt er auch nicht die Ausgänge

Also kann ich deine Schaltung so verwenden wie ich sie gezeichnet hab'?

Sorry für das viele Nachfragen, aber ich will nicht dann eine Platine 
haben, die falsch funktioniert :P

Und natürlich:
Danke für die Hilfe :)
Angehängte Dateien:
#4390999
Lesenswert?

Solange deine Platine ansonsten sauber gelöst ist...
Die Schaltung an sich ist auf jeden Fall richtig (kannst du ja auch auf 
nem Breadboard testen wenn du dir Sorgen machst).
Wichtig ist, dass du den Pin richtig ansteuerst:
- Beim starten erst high und dann auf Ausgang schalten
- Vor dem ersten Latch low schalten
- Nach dem Latchen gleich wieder auf low schalten damit /OE nicht 
abgeschaltet wird
Gast #4391008
Lesenswert?

Max D. schrieb:
> Solange deine Platine ansonsten sauber gelöst ist...

Max D. schrieb:
> - Beim starten erst high und dann auf Ausgang schalten

Das ist natürlich die wichtigste Voraussetzung :) Aber ich denke, dass 
es passt :) Und aufstecken werd' ich das Ganze auch noch :)

Also du meinst bevor der Pin im Programm als Ausgang definiert wird auf 
den Schaltzustand HIGH setzen?
#4391069
Lesenswert?

Daniel schrieb:
> Also du meinst bevor der Pin im Programm als Ausgang definiert wird auf
> den Schaltzustand HIGH setzen?

Denk einfach mal kurz nach was passieren würde wenn du den Pin erst auf 
Ausgang und dann high schaltest: Du hast einen ganz kurzen low-Puls der 
u.U. irgendwelchen BS mit deinem IC anstellt. Wenn du erst high und dann 
ausgang machst ist der Verlauf stabil.

Würdet du den Ausgang low lassen bevor sinnvolle Daten drin sind, dann 
wird irgendein Rauschen auf den Ausgang geschaltet.

Ich hab mal versucht das als Pseudocode darzustellen:
1
//Init
2
PORTx |= (1<<Pxn);
3
DDRx |= (1<<Pxn);
4

5
spisend(byte_eins);
6
spisend(byte_zwei);
7

8
PORTx &= ~(1<<Pxn);
9
delay(); //Zwischen 200 ns und 1 ms
10
PORTx |= (1<<Pxn);
11
delay(); //Zwischen 200 ns und 1 ms
12
PORTx &= ~(1<<Pxn);
13

14
//Normaler Transfer
15

16
spisend(byte_eins);
17
spisend(byte_zwei);
18

19
PORTx |= (1<<Pxn);
20
delay(); //Zwischen 200 ns und 1 ms
21
PORTx &= ~(1<<Pxn);

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren