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
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.
Wieviele Impulse sind Dein Ausgangssignal denn? Wenn 5 klingt das nach einer Aufgabe für einen Komparator und einen nicht-retriggerbaren Monoflop.
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.
So vielleicht. Zur Vereinfachug dann vllt. R4=47K, R5=4.7K, wenn dein Signal das hergibt.
:
Bearbeitet durch User
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.
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!
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.
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
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?
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
>> 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.
Schaltung c, R2 weglassen, R3 auf 100 kOhm erhöhen, D1 normale Diode drinnlassen wenn auch negative Spannungen erwartet werden.
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.
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.
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!
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
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.
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.
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
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!
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.
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.
[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]
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 | }
|
Nochmal Mist... Der Name 'interrupt' ist Käse. Das ist die Sampling-Funktion, die 1000 mal die Sekunde aufgerufen wird...
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.