Forum: Analoge Elektronik und Schaltungstechnik Widerspenstiges Signal "rechteckifiziren"


von SP (Gast)



Lesenswert?

Hey Leute,

ich Versuche seit einiger Zeit einem Signal Herr zu werden. Ziel wäre 
es, dieses Signal (siehe Anhang "Ausgangssignal") in ein Rechtecksignal 
zum Interrupt-zählen umzuwandeln. Jetzt bin ich an einem Punkt wo 
anstehe und Hilfe benötigen könnte.

Ich hab dazu Schaltung A (siehe Anhang) entwickelt und danach schaut das 
Signal aus wie im Bild "Signal_nach_Schaltung_A". Schaut schon mal gut 
aus, aber noch kein Rechteck.

Dann hab ich das ganze um einen Transistor erweitert (Schaltung_C). 
Danach hab ich ein Rechteck mit einem Störimpuls den ich nicht wegbekomm 
(Bild Signal_nach_Schaltung_C). Am Eingang vom Transistor schaut das 
dann so aus (Bild Signal_Transistoreingang_Schaltung_C). Das ist der 
selbe Messpunkt wie bei "Signal_nach_Schaltung_A". Warum ist der Pegel 
nun niedriger??

Was nun? Den Transitoreingang puffern oder Ausgangsseitig noch einen 
Kondensator?

Alternativ hab ich das Ganze mit Schaltung B probiert. Dann bekomm ich 
wieder ein Rechteck mit Störimpuls (siehe Signal_nach_Schaltung_B). Hab 
dann versucht die Kapazität zu erhöhen um die Spitze wegzupuffern. Hat 
mit 470 nF auch nicht anders ausgesehen. Oder war das vielleicht noch zu 
wenig. Lieber wäre mit aber eine der anderen Schaltungen mit Z-Diode 
(die soll als Sicherheit dienen).

Falls jemand ein paar Ratschläge hat wäre ich sehr dankbar!

schöne Grüße!

: Verschoben durch Admin
von SP (Gast)


Angehängte Dateien:

Lesenswert?

ups Anhang vergessen...

von Harald W. (wilhelms)


Lesenswert?

SP schrieb:

> ich Versuche seit einiger Zeit einem Signal Herr zu werden. Ziel wäre
> es, dieses Signal (siehe Anhang "Ausgangssignal") in ein Rechtecksignal
> zum Interrupt-zählen umzuwandeln.

Normalerweise macht man das mit einem Komparator.

von Walter T. (nicolas)


Lesenswert?

Wieviele Impulse sind Dein Ausgangssignal denn?

Wenn 5 klingt das nach einer Aufgabe für einen Komparator und einen 
nicht-retriggerbaren Monoflop.

von A. S. (Gast)


Lesenswert?

Bei der Schaltung C: wofür D1? Zudem fehlt eine Diode von Basis zu 
Kollektor gegen Sättigung.

Kurze peaks verschwinden erst mit einer Hysterese. Stichwort 
Schmitt-Trigger. Also lieber einen hc14 (falls irgendwo  einer frei 
ist, sonst single Inverter) statt gebastel. Oder Komparator.

von Joe F. (easylife)


Angehängte Dateien:

Lesenswert?

So vielleicht.
Zur Vereinfachug dann vllt. R4=47K, R5=4.7K, wenn dein Signal das 
hergibt.

: Bearbeitet durch User
von Ach Du grüne Neune (Gast)


Lesenswert?

R3 mit 1k in Schaltung B ist zu klein. Er sollte 10k betragen. 
Zusätzlich könnte noch eine Diode vor dem Eingang geschaltet werden, 
damit sich der Kondensator nicht zurück entladen kann.

R1 könnte ggf. noch auf 47k verkleinert werden.

von Sven S. (schrecklicher_sven)


Angehängte Dateien:

Lesenswert?

Das Signal runterteilen ist kontraproduktiv.

von SP (Gast)


Lesenswert?

Hallo und danke für die vielen Denkanstöße!

Ergänzend zum Ausgangasignal: Das wurde mit Tastkopf 1:10 augenommen, 
also die Spitzen gehen an die 200 V. Daher finde ich den Teiler am 
Eingang schon notwendig und die 100 k von R1 würd ich gerne belassen um 
das Signal möglichst wenig zu belasten. Ich erwarte mir ca. zwischen 30 
und 200 Impulse pro Sekunde.

Die Z-Diode D1 war wie gesagt als Schutz gedacht um dort immer auf 5,1 V 
zu begrenzen.

Schmitt-Trigger sagt mir was, da werd ich mich mal schlau machen. Es 
müsste dann ein nicht-invertierender Schmitt-Trigger 
(https://www.mikrocontroller.net/articles/Schmitt-Trigger) an die Stelle 
"INT" an Schaltung A, oder? Mit Schaltung A das Signal mal vorzufiltern 
passt doch soweit, oder würdet ihr das anders machen?

Joe F. schrieb:
> So vielleicht.
> Zur Vereinfachug dann vllt. R4=47K, R5=4.7K, wenn dein Signal das
> hergibt

Danke für den Vorschlag, könntest du kurz erklären was die Schaltung 
macht?

Ach Du grüne Neune schrieb:
> R3 mit 1k in Schaltung B ist zu klein. Er sollte 10k betragen.
> Zusätzlich könnte noch eine Diode vor dem Eingang geschaltet werden,
> damit sich der Kondensator nicht zurück entladen kann.

Ich denke du meinst eine der anderen Schaltungen, oder.

Aber hat noch wer eine Erklärung warum der Transistor nach Schaltung A 
den Pegel so runterzieht? Das hätt ich gerne verstanden. Der Transistor 
schaltet zwischen 0,7 und 6 V durch. Und wenns das vorgefilterte Signal 
(Bild Signal nach Schaltung A) nicht runterziehen würde, müsste das ja 
funktionieren.

Danke schon mal und schönen Sonntag noch!

von Ach Du grüne Neune (Gast)


Lesenswert?

Schaltung A hat keinen Transistor! Schaltung B und C schon.

C2 kann sich nur bis auf 0,7 Volt aufladen. Eine kurze Unterbrechung des 
Signals lässt den Transistor sofort sperren. Wenn aber ein 10k 
Widerstand (R3 mit 1k ist zu wenig) vor die Basis geschaltet ist, kann 
sich C2 höher aufladen und auch über R3 langsamer entladen, so dass 
Lücken im Signal besser glattgebügelt werden können.

von Joe F. (easylife)


Lesenswert?

SP schrieb:
> Danke für den Vorschlag, könntest du kurz erklären was die Schaltung
> macht?

Eigentlich recht "straight forward".

R4+R5 teilen die Signalspannung erstmal so weit runter, dass der Peak in 
einem für den Transistor sinnvollen Bereich kommt und die nachfolgenden 
Signalanteile so abgeschwächt werden, dass sie vom ersten Transistor Q1 
nicht mehr verstärkt werden (<0.6..0.7V an der Basis).
D2 habe ich mal zum Schutz drin gelassen.

Da dein Signal ja eine 10x höhere Spannung hat wie ursprünglich 
angenommen, sollte R5 dann auf 1K gesetzt werden (mit R4=100K).

Über Q1 wird bei einem Signal-Peak C2 sehr schnell entladen.
Das sorgt dann dafür dass Q2 nicht mehr leitet, und INT high wird.
Nach dem Peak (wenn Q1 wieder hochohmig ist) lädt sich C2 über R9 wieder 
auf und Q2 wird irgendwann wieder leitend -> INT wird wieder low.
Über die Größe von C2 bzw. R9 kann man einstellen, wie lang der 
Ausgangs-Puls auf INT sein soll.
Momentan ist der Puls ca. 1.5ms lang, sollte also bis 300-400 Hz gut 
funktionieren.

: Bearbeitet durch User
von HildeK (Gast)


Lesenswert?

Joe F. schrieb:
> D2 habe ich mal zum Schutz drin gelassen.

Magst du noch erklären, was parallel zu der BE-Strecke die Z-Diode 1N750 
bewirkt?

von Joe F. (easylife)


Lesenswert?

HildeK schrieb:
> Joe F. schrieb:
>> D2 habe ich mal zum Schutz drin gelassen.
>
> Magst du noch erklären, was parallel zu der BE-Strecke die Z-Diode 1N750
> bewirkt?

Naja, da ich nicht wusste wie hoch die Signalspannung im Zweifel werden 
würde dachte ich damit könnte man noch eine Spannungsbegrenzung einbauen 
um den Transistor zu schützen. Bei 100K Vorwiderstand ist das aber 
vermutlich ziemlich unnötig - zumal der Transistor eh vor D2 leitend 
wird... Also raus damit. Habe in letzter Zeit eher mehr mit MosFETs 
gearbeitet, und da wäre es ein guter Schutz für das Gate.

: Bearbeitet durch User
von Jens G. (jensig)


Lesenswert?

>> Magst du noch erklären, was parallel zu der BE-Strecke die Z-Diode 1N750
>> bewirkt?

>Naja, da ich nicht wusste wie hoch die Signalspannung im Zweifel werden
>würde dachte ich damit könnte man noch eine Spannungsbegrenzung einbauen
>um den Transistor zu schützen. Bei 100K Vorwiderstand ist das aber
>vermutlich ziemlich unnötig.

Die Hälfte der Z-Diode, nämlich die Z-Spannung, ist unnötig. Aber deren 
normale Uf von irgendwas um die knapp 1V ist nötig, wenn man nach einer 
200V~Spannungsquelle und vor dem Transistor nur einen 1:5 
Spannungsteiler drin hat, denn dann würde die negative Halbwelle mit 
-40V bis an die Basis durchschschlagen, was ein üblicher Transitor eher 
höchst ungern an seiner Basis haben möchte.

von Günter Lenz (Gast)


Lesenswert?

Schaltung c,  R2 weglassen, R3 auf 100 kOhm erhöhen,
D1 normale Diode drinnlassen wenn auch negative
Spannungen erwartet werden.

von HildeK (Gast)


Lesenswert?

Jens G. schrieb:
> Die Hälfte der Z-Diode, nämlich die Z-Spannung, ist unnötig.

Genau. Ich hätte da eine Standarddiode erwartet - oder wenigsten noch 
einen Widerstand zwischen Z-Diode und Basis.

von Joe F. (easylife)


Angehängte Dateien:

Lesenswert?

HildeK schrieb:
> Jens G. schrieb:
>> Die Hälfte der Z-Diode, nämlich die Z-Spannung, ist unnötig.
>
> Genau. Ich hätte da eine Standarddiode erwartet

Ja, das macht mehr Sinn. Ich hab mal alles soweit aktualisiert.

von SP (Gast)


Lesenswert?

Danke mal die Iputs und Erklärungen. Ja die Schaltung is wirklich 
straight forward. Werd ich mal aufbauen, ausprobieren und berichten.

Die Z-Diode war die Hosenträger-Gürtel-Lösung. Aber bei dem 
Teilungsverhältnis am Eingang is sie wirklich unnötig.

@ Joe F.: Welche Software nutzt du denn da. Im LT-Spice hat sich das 
Ausgangssignal nur mit Aufwand nachbauen lassen.

Schöne Grüße!

von SP (Gast)



Lesenswert?

So ich hab mich heut ein wenig rumgespielt, leider ohne Erfolg. Ich hab 
dann die Schaltung stückweise in Betrib genommen.

Ich hab D2 durch einen kleinen Kondesator (erst 10 nF) ersetzt, das 
stabilisiert das Signal etwas. Dann bekomm ich am Spannungsteiler das 
"Spannungsteiler 100.1+10nF" und am ersten Transistor das "Transistor 
100.1+10nF+Tr"

Also hab ich den Teiler angepasst (R5 =2,2k) und den Kondensator von 10 
auf 3,3 nF reduziert. Das lieferte das beste Ergebnis. Siehe 
"Spannungsteiler 100.2.2+3n3+Tr" und "Transistor 100.2.2.+3n3+Tr". Der 
Transistor schaltet nun also schön, jedoch gibts immer ein paar 
Störungen während des low-Pegels.

Hab dann die Schaltung um R8, R9 und C2 erweitert und die Werte von die 
Werte von R9 und C2 variiert und dort gemessen wo R10 drankäme. Aber da 
versteh ich nicht mehr was passiert??? Es müsste doch so sein, dass bei 
durchschalten von Transistor 1 der Pegel sofort auf low fällt (da C2 
schnell über R8 entlädt), low bleibt und die Strörimpulse wegpuffert 
solange Transistor 1 duchgelschaltet ist und sich erst dann wenn 
Transistor 1 öffnet die Spannung langsam steigt (da C2 langsam über 
großen R9 lädt).

Aber das passiert nicht. Hab Kondensatoren mit 10 nF, 68 nF und 150 nF 
probiert und der Einfluss der Kapazität scheint vernachlässigbar. Was 
sich bemerkbar macht ist R9, aber genau anders rum als erwartet. Bei R9 
= 47k fällt der Pegel zwar sofort auf ca. 2 V, aber steigt sofort mit 
leichter Dämfpung auf 5 V und fällt dann beim öffnen von Transistor 1 
seltsamerweise wieder kurz auf 2V ("nachC2 100.2.2+3n3+Tr+10+47+68nF" 
und "nachC2 100.2.2+3n3+Tr+10+47+150nF").

Mit R9=4,7k schaut das schon besser aus, der Pegel fällt ganz auf low. 
Im Prinzip schauts aber aus wie direkt nach dem Transistor nur mit noch 
stärkeren Störimpulsen während low ("nachC2 100.2.2+3n3+Tr+10+4.7+68nF" 
und "nachC2 100.2.2+3n3+Tr+10+4.7+150nF")

Hab die Verschiedensten Kombinationen getestet. Auch R8 variiert (bei 
R8=1k Pegel immer high, bei R8=1 eigentlich gleich wie R8=10). Da ich 
aus den Messergebnisse leider nicht schlau werde hab ich dann 
aufgegeben....

Kann sich darauf jemand einen Reim machen??

Danke und LG

von SP (Gast)


Angehängte Dateien:

Lesenswert?

natürlich wieder ein Bildchen ("Transistor 100.2.2.+3n3+Tr") vergessen. 
Das wichtigste eigentlich, da macht das ganze noch Sinn...nur müssten 
die Störimpulse bei low weg.

von SP (Gast)


Lesenswert?

da fällt mir was ein: was wäre wenn man R9 vor R8 direkt an den 
Transistor hängt, sodass R8 und C2 einen Tiefpass bilden?

Beitrag #6048673 wurde von einem Moderator gelöscht.
von Joe F. (easylife)


Lesenswert?

SP schrieb:
> Mit R9=4,7k schaut das schon besser aus, der Pegel fällt ganz auf low.

Bist du sicher, dass der R9 davor auch 47K war? Oder vielleicht aus 
Versehen in die falsche Schublade gegriffen und 47 Ohm genommen?

SP schrieb:
> da fällt mir was ein: was wäre wenn man R9 vor R8 direkt an den
> Transistor hängt, sodass R8 und C2 einen Tiefpass bilden?

R9 und C2 bilden den Tiefpass. Ob da R8 mit 10 Ohm noch dazu kommt macht 
keinen Unterschied. R8 schützt im wesentlichen den Transistor, indem er 
den Entladestrom begrenzt. 10-20 Ohm ist da schon passend.
1K würde keinen Sinn machen, denn dann wird den Kondensator nicht mehr 
schnell entladen.

Dein Spannungsteiler am Eingang scheint jetzt so dimensioniert zu sein, 
dass eben nicht nur der hohe Puls triggert, sondern auch die Spitzen des 
nachfolgende Signals.
Da der ganz kurze hohe Puls mit deinem zusätzlichen Kondensator wohl 
nicht mehr ausreicht, würde ich den umgekehrten Weg nehmen, und einfach 
das gesamte Signal zum ansteuern des Transistors nehmen.
Probier mal R5=6.8K aus.

Ansonsten: kleiner als 150nF würde ich C2 nicht machen.
Wie sieht denn das Ausgangssignal nach dem 2. Transistor aus?

: Bearbeitet durch User
von Ach Du grüne Neune (Gast)


Angehängte Dateien:

Lesenswert?

SP schrieb:
> sodass R8 und C2 einen Tiefpass bilden?

R1 und C2 bilden schon einen Tiefpass. Wichtig ist der 10k Widerstand 
vor der Basis vom BC547!

von Joe F. (easylife)


Lesenswert?

Ach Du grüne Neune schrieb:
> R1 und C2 bilden schon einen Tiefpass.

Ich glaube es geht eher um die von mir vorgeschlagene Schaltung.
https://www.mikrocontroller.net/attachment/435596/sig2int-b.png

Aber mir scheint Q2 ist noch gar nicht eingebaut, denn mit Q2 und R9=47K 
sollte sich C2 nicht mehr als bis auf 1V aufladen können.

von Erfahrener Entwickler (Gast)


Lesenswert?

SP schrieb:
> Ziel wäre  es, dieses Signal (siehe Anhang "Ausgangssignal") in ein
> Rechtecksignal zum Interrupt-zählen umzuwandeln.

Wozu?


SP schrieb:
> Falls jemand ein paar Ratschläge hat wäre ich sehr dankbar!

Gerne: Das Signal ist doch so lahm, mach's in Software!


Kleines RC-Glied, dann über ein Widerstand an einen Komparatoreingang. 
Sobald ein Interrupt auftritt, im selbigen den Interrupt sperren und per 
Timer z.B. nach 12ms wieder freigeben.

Oder im Interrupt über einen Ausgang eine Hysterese auf den Komparator. 
Und/oder im Interrupt mit einem Ausgangspin die Filterkonstante des 
RC-Glied verändern.

Oder in Software ganz dröge sampeln, z.B. jede Millisekunde, und digital 
Auswerten. Z.b beim ersten gesetzten Bit zählen, und dann den Zähler 
erst wieder freigeben wenn 10 Samples lange nur "0" gelesen wurde etc.

Es gibt so viele Möglichkeiten in Software. Nutze sie, anstatt 
irgendeine käsige Analoglösung.

von Erfahrener Entwickler (Gast)


Lesenswert?

[c]
void interrupt(uint8_t bit)
{
  static uint8_t zeros = 0;
  static uint8_t ones = 0;
  static uint8_t enable = 0;

  if (bit)
  {
    zeros = 0;
    if (ones < 255)
      ones++;
  }
  else
  {
    ones = 0;
    if (zeros < 255)
      zeros++;
  }

  if (zeros == 10)
    enable = 1;

  if (enable && ones == 3)
  {
    enable = 0;
    /* Hier den Zähler erhöhen */
  }
}
[c]

von Erfahrener Entwickler (Gast)


Lesenswert?

Mist... Bitte den obigen Beitrag löschen/reparieren...

1
void interrupt(uint8_t bit)
2
{
3
  static uint8_t zeros = 0;
4
  static uint8_t ones = 0;
5
  static uint8_t enable = 0;
6
  
7
  if (bit)
8
  {
9
    zeros = 0;
10
    if (ones < 255)
11
      ones++;
12
  }
13
  else
14
  {
15
    ones = 0;
16
    if (zeros < 255)
17
      zeros++;
18
  }
19
  
20
  if (zeros == 10)
21
    enable = 1;
22
    
23
  if (enable && ones == 3) 
24
  {
25
    enable = 0;
26
    /* Hier den Zähler erhöhen */
27
  }
28
}

von Erfahrener Entwickler (Gast)


Lesenswert?

Nochmal Mist...

Der Name 'interrupt' ist Käse. Das ist die Sampling-Funktion, die 1000 
mal die Sekunde aufgerufen wird...

von Joe F. (easylife)


Lesenswert?

Durchatmen nicht vergessen... ;-)

Erfahrener Entwickler schrieb:
> anstatt irgendeine käsige Analoglösung.

Nur weil in der Eingangsstufe 2 Transistoren verbaut sind, ist das nicht 
automatische eine "käsige Analoglösung".
Ein gut konditioniertes Eingangssignal macht die Auswertung per Software 
sicherlich einfacher.

von SP (Gast)



Lesenswert?

Guten Abend zusammen,

hatte endlich mal wieder etwas Zeit für das Thema. Um die o.a. Beiträge 
kurz zu kommentieren:

Joe F. schrieb:
> Bist du sicher, dass der R9 davor auch 47K war? Oder vielleicht aus
> Versehen in die falsche Schublade gegriffen und 47 Ohm genommen?

hab ich nochmal gecheckt (auch mit Multimeter), war schon richtig.

Joe F. schrieb:
> Dein Spannungsteiler am Eingang scheint jetzt so dimensioniert zu sein,
> dass eben nicht nur der hohe Puls triggert, sondern auch die Spitzen des
> nachfolgende Signals.

ja richtig, das hatte nicht funktioniert (siehe 
Transistor_nach_Spannungsteiler_100.1.png)

Joe F. schrieb:
> Da der ganz kurze hohe Puls mit deinem zusätzlichen Kondensator wohl
> nicht mehr ausreicht, würde ich den umgekehrten Weg nehmen, und einfach
> das gesamte Signal zum ansteuern des Transistors nehmen.
> Probier mal R5=6.8K aus.

nein, bereits bei 4,7k schlagen die ganzen Störungen durch.

Joe F. schrieb:
> Aber mir scheint Q2 ist noch gar nicht eingebaut, denn mit Q2 und R9=47K
> sollte sich C2 nicht mehr als bis auf 1V aufladen können.

richtig, da es nicht funktionierte hab ich die Schaltung Stück für Stück 
aufgebaut und analysiert.

Erfahrener Entwickler schrieb:
> Es gibt so viele Möglichkeiten in Software. Nutze sie, anstatt
> irgendeine käsige Analoglösung.

auch eine gute Idee, das in der Software zu lösen, aber das Signal von 
vorne herein ordentlich aufzubereiten wäre mir lieber.

Ach Du grüne Neune schrieb:
> Wichtig ist der 10k Widerstand
> vor der Basis vom BC547!

Bingo! Das ist die Lösung des Rätsels und auch die Antwort auf meine 
ursprüngliche Frage warum der Pegel mit Transistor dran so abfällt. Ich 
weiß zwar noch nicht warum, aber zwischen Basis und Emitter scheint der 
Pegel immer nur 0,7 V zu sein. Also einen 10k wie vorgeschlagen an meine 
ursprüngliche Schaltung (funktionierende_Schaltung.PNG) und jetzt 
funktionierts (funktionierende_Signalaufbereitung.png).

Ich hab aber die Schaltung mit den zwei Transistoren auch nochmal 
simuliert (Simulation_01.PNG). Das Problem, warum beim Rechteck immer 
weider Störspitzen (grün) durchkommen scheint am exponenziellen Lade- 
und Entladeverhalten des Kondensators (magenta) zu liegen. Beim Entladen 
fällt die Kurve langsam, beim Laden erreicht man aber Schnell wieder die 
Schaltgrenze des Transistors. Durch einen zusätzlichen Spannungsteiler 
vorm Transistor 2 könnte man das Signal aber wie gewünscht auf dessen 
Schaltgrenze hinskalieren (zB. alles unter 4 Volt ignorieren -> 4 Volt 
vor Teiler auf 0,7 Volt nach Teiler) (rot). Dan käme ein Rechteck (cyan) 
raus, zumindest nach Simulation.

Aber wie auch immer, ich hab nun eine Lösung und vor allem wieder 
einiges gelernt dabei. Vielen Dank nochmal an alle!

Schönen Abend noch!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.