PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [ERLEDIGT] CMOS Gatter als Komperator ?



PICture
03.07.2012, 11:08
Hallo!

Ich möchte ein CMOS Gatter mit einem Transistor am Ausgang (A) als von Akkuspannung abhängigen Schalter für Mikrostepper in meinem Solarbot ausnutzen. Mein Prinzip ist gleich, wie dort: https://www.roboternetz.de/community/threads/55248-VCC-mit-ADC-von-%C2%B5C-messen? . Könnte es wie skizziert funktionieren ? :confused:

VCC=2 bis 2,7V variabel (Akkuspannung)
+
|
+--+
| |
.-. |
R | | |
| | |
'-' | 1/6 74HC14
| |\
+-| >O-> A
| |/
LM385 z |
1,2V A ===
| GND
===
GND

(created by AACircuit v1.28.6 beta 04/19/05 www.tech-chat.de)

JonnyBischof
03.07.2012, 11:53
Ich versuch mal die Schaltung nachzuvollziehen:

Also, der 74HC14 ist ein Schmitt-Trigger (invertierend).

Das Gatter schaltet also nur, wenn du mit der Eingangsspannung entweder sehr nahe an die Versorgungsspannung oder sehr nahe an GND kommst. Wenn du dich irgendwo in der Mitte dazwischen hin und her bewegst, passiert nichts.

Mit der Z-Diode willst du die Eingangsspannung bei konstanten 1.2V halten. (R = Vorwiderstand für die Z Diode).
-> 1.2V ist deine Schaltschwelle, bei welcher der "Komparator" schalten soll.


Beim Aufstarten mit VCC = 2.7V liegst du mit 1.2V am Eingang etwa in der Mitte des Schaltbereichs -> "keine Änderung", somit Anfangszustand unbekannt da Eingangsspannung weder nahe VCC noch GND ist.


Wenn VCC nun absinkt, so wird das Gatter logisch '0', sobald VCC ~= 1.2V erreicht (Eingang erreicht Schmitt-Trigger Schwelle).
-> Dieser Teil dürfte funktionieren.


Wenn VCC wieder ansteigt, so wird sich nichts verändern, weil die Eingangsspannung sich wiederum nur in den undefinierten Bereich zwischen den Schaltschwellen des Schmitt-Triggers bewegt.
-> keine Änderung.


So wie ich das sehe, funktioniert die Schaltung im momentanen Zustand nicht, weil die untere Schaltschwelle nie erreicht wird und der Ausgang somit nie den Zustandswechsel von logisch '0' auf logisch '1' machen kann. Dies müsste jedoch beim Aufstarten passieren, damit es später beim Erreichen der kritischen Akkuspannung wieder von '1' auf '0' schalten kann.

Vielleicht kannst du das Gatter "initialisieren", indem du z.B. einen Kondensator parallel zur Z-Diode schaltest, welcher beim Einschalten dafür sorgt, dass die Eingangsspannung kurzzeitig 0V beträgt (lange genug, dass das Gatter schalten kann)?

PICture
03.07.2012, 13:19
Hallo Jonny!

Danke dir für deinen gescheiterten Versuch die Schaltung nachzuvollziehen. Die Frage habe ich nur deshalb gestellt, weil ich immer sowohl sinnloses Basteln als auch Kommentare vermeinden versuche. ;)

JonnyBischof
03.07.2012, 13:44
Hm, jetzt versteh ich nicht mehr was du wolltest...

Wenn die Schaltung doch funktioniert, würd ich aber gern wissen, wie :)

PICture
03.07.2012, 18:02
Das ist bisher noch nicht ausprobierte Schaltung ("verrückte Idee"), die ich, falls niemand ein Denkfehler findet, aufbauen und prüfen werde. :)

Vereinfachte Erklärung (basierend auf Datebblätter für CMOS):

Umschaltpunkt ohne Hysterese Ug = 1/2 VCC
Hysterese Uh = 1/3 VCC
oberer Umschaltpunkt mit Hysterese Uhh = Ug + Uh = 2/3 VCC
unterer Umschaltpunkt mit Hysterese Ulh = Ug - Uh = 1/3 VCC
Rechnerich komme ich dann für VCC = 2,7 V auf Uhh = 1,8 V und für VCC = 2 V auf Ulh = 0,6(6) V.

Ich bin eben nicht sicher, was sich mit Varieren der VCC ändert und das muss ich praktisch ermitteln, da ich die Zenerspannung aus "dem Bauch" genommen und nur ums Prinzip gefragt habe. ;)

markusj
03.07.2012, 18:41
Ich habe gerade Mal in ein Datenblatt von NXP gesehen:
Spannung für eingehendes L->H: ca. 0.6VCC .. 0.5VCC (Abnehmend mit steigender Versorgungsspannung)
Spannung für eingehendes H->L: ca. 0.26VCC .. 0.31VCC (Zunehmend mit steigender Versorgungsspannung)

Was bedeutet das für deine Schaltung? Du wirst mit Vin = 1.2V bei einer Unterschreitung von VCC = ca. 2,2V ein eingehendes High (und damit als Ausgangssignal ein Low) bekommen. Wenn dann die Versorgungsspannung wieder steigt, wird der Komparator bei einer Überschreitung von ca. 4,2V auf High umschalten.

Hoffe mich nicht verrechnet zu haben, die Werte wurden aus dem NXP-Datenblatt (http://www.nxp.com/documents/data_sheet/74HC_HCT14.pdf) extrapoliert.

mfG
Markus

PICture
03.07.2012, 19:16
Hallo markusj!

Auf so eine Bestätigung habe ich gewartet, also herzlichsten Dank ! :D

Jetzt kann ich es ruhig aufbauen und damit spielen. Eigentlich am wichtigsten für mich ist, dass der Motor erst beim vollem Akku (ca. 2,7 V) eingeschaltet wird und die Abschaltspannung wäre praktisch egal, weil die Schaltung sowieso unter 2 V angeblich nicht geht. Dann muss ich nur, für konkreten Exemplar vom IC, für mich optimale Vin mit Trimmpoti finden, da ich die Schaltung nur einmal brauche.

markusj
03.07.2012, 20:25
Das wird nicht reichen. Der Spannungshub 2V .. 2,7V reicht nicht aus, um den Motor einzuschalten. Es geht nur die Gegenrichtung (aus). Zum Zurücksetzen müsstest du über die 4,2V kommen. Du könntest dir damit behelfen, die Eingangsspannung weiter zu reduzieren.

Moment, Mal schnell ausrechnen:
L->H (2V): 1,2V und H->L (2V): 0,52V
L->H (2,7V): 1,62V und H->L (2,7V): 0,7V

Damit kannst du über einen Poti (Spannungsteiler) dafür sorgen, dass Vin knapp unter 0,7V liegt. Dann schaltet der Trigger von einem vorherigen Low-Ausgang (letztes Eingangssignal: High) auf High-Ausgang, weil 0,7V unter der Schwellspannung liegt. ABER: Du kriegst das nur genau einmal hin. Zum Zurücksetzen müsste Vin über 1,2V (bei leerem Akku) bzw. 1,6V (bei vollem Akku) kommen. Die Hysterese ist zu groß (bzw. im falschen Bereich)

Ich würde dir eine Schaltungsalternative vorschlagen, bei der du eine bessere Kontrolle über die Hysterese hast:
Referenzspannung -> Widerstand -> Inverter (ohne Schmitt-Eigenschaft) -> Rückkoppelung zum Eingang des Inverters über einen weiteren Widerstand.
Damit kannst du über das Verhältnis der beiden Widerstände einstellen, wie groß die Hysterese ist. Die Hysterese selbst sollte symmetrisch um den Umschaltpunkt des Inverters angeordnet sein, bei Bedarf kannst du die Referenzspannung entsprechend nach oben/unten "verbiegen", um da optimal zu liegen.

mfG
Markus

Noch ein Nachtrag: Akkus mögen Tiefentlade-Schutschaltungen. Wirklich ;) Ein Verzicht bedeutet einen vorzeitigen Tod des Akkus.

PICture
03.07.2012, 21:10
Vieeelen Dank für weitere Erklärung und optimalen Vorschlag. :D

Das habe ich schon vermutet, dass besser ein "normaler" CMOS Gatter (z.B. 74HC04 bzw. 74HC00 als Inverter) mit mitells zwei Widerständen einstellbarer Hysterese wäre. Aber das Prinzip ist schon richtig, was am erfreuerlichsten für mich ist.

Die Akkuspannung kann ich eben nicht ändern, aber sonst alles daran anpassen. Mit den SMD CMOS IC's sollte es einfacher und effizienter sein, als bisher üblich für BEAM-er benutzte Blink-LED's + Transistoren. Hoffentlich lassen sich die freie Gätter auch noch sinnvoll verwenden. :)

Ich werde natürlich versuchen die Umschaltspannungen auf ca. 2 und 2,7 V für die zwei seriell geschaltete Ni-MH Akkus (15 mAh) festzulegen um das Überladen bzw. Tiefendladen zu vermeiden.

markusj
03.07.2012, 21:15
Eine kleine Korrektur noch: Du musst zwei Inverter in Reihe schalten. Nach dem ersten Inverter hätte die Rückkoppelung genau den gegenteiligen Effekt, das ganze würde im Worst-Case sogar noch wild schwingen. Oder du nimmst ein AND bei dem du beide Pins zusammenschließt. Oder ein OR, oder ... Speziell die AND-Lösung hätte den Vorteil, dass du den zweiten Eingang evtl. als Abschaltsignal o.ä. für andere Zwecke nutzen könntest.

mfG
Markus

PICture
03.07.2012, 21:37
Natürlich, Hysterese braucht positive Rückkopplung, also AND ist am einfachsten.

Jetzt bin ich leider fertig. Gibt es einzelne AND's (Bezugsquelle) ? :lol:

Tag/Nacht Umschaltung SC = Solarzelle
+--------------------+
| DS | DS = Schottky Diode
+->S--+------+-------|---+-------------+
| + | | | | | AX = Akku
.---. - A1 .-. | | / \
| + | --- | |R1 | | ( M ) M = Motor
|SC | - | | | | _| \_/
| - | + - A2 '-' +-| \ ___ |/
'---' --- | ___ | )-+-|___|-| T
| - | +-|___|-+-|__/ | R4 |>
=== === | R2 | | | |
GND GND z | === | ===
A Uref | GND | GND
| | ___ |
=== +-|___|-+
GND R3

(created by AACircuit v1.28.6 beta 04/19/05 www.tech-chat.de)

Manf
03.07.2012, 22:06
Wenn jetzt neu geplant wird, wie wäre es einen OpAmp als Schmitt-Trigger einzusetzen?
Ich finde die CMOS Gatter auch immer sehr schön, um sehr einfache Verstärker-Schaltungen damit zu realisieren.
Die Berücksichtgung der Schwellspannung mit der doch sehr großen Exemplarstreuung und der Temperaturabhängigkeit lassen mich dann doch immer ein Bisschen Zweifeln ob es sich lohnt, sie in Schaltungen in denen es auf die Schwellspannung ankommt über einen ersten Versuch hinaus einzusetzen.

Vielleicht bekommt Du ja ein Gatter bezüglich der Spannung und der Temperatur in den Griff und es reicht dann für die Funktion, bei dem nächsten Expemplar fängt man aber wieder von vorne an.

PICture
04.07.2012, 14:18
@ Manf

Das ist bloss mein Kunsttierchen und kein Herzschrittmacher. Jetzt, als Rentner, kann ich mir schon alles bisher verbotenes erlauben. :lol:

@ markusj

Ich habe die Schaltung noch überarbeitet damit mein sehr schwaches Solartierchen (BEAM) keine unnötige Bauteile mitschleppen muss und so wird es aufgebaut. Der GM braucht ja nur kurze Stromimpulse (um 8 mA, 32 ms pro Sekunde) und das L Pegel muss nicht mit Datenblatt stimmen, da der GM ab 1,5 V schon sicher geht. Laut deiner Schätzung für Uref (ca. 0,7 V) dürfte eine "normale" Diode in Flussrichtung ausreichen, wird geprüft. Der unausprobierter Schaltplan ist im Code zu sehen.

R4
Tag/Nacht Umschaltung ___
+-----------------------+-|___|--+--+
.--. DS1| | | |
+-|S1|->S-+ D1 D2 D3 D4 | D5 D6 | ===
| '--' | +->|-->|-->|-->|--|->|-->|-+ GND
| | DS4 | |
| +->S--+---------+-------|---+----------------------+
| | + | | | | |
| .--. DS2| - A1 .-. | | / \
+-|S2|->S-+ --- | |R1 | | (GM )
| '--' | - | | | | _| \_/
| | + - A2 '-' +-| \ __ |
| | --- | ___ | )o-+-| \ __ |
| | - | +-|___|-+-|__/ | | )o-+-| \ |
| .--. DS3| === | R2 | | +-|__/ | | )o-+
+-|S3|->S-+ GND z | === +-|__/ |
| --' A Uref | GND 74HC00 | |
=== | | ___ | __ |
GND SX = Solarzelle === +-|___|-----------+-| \ |
GND R3 | | )o-+
DSX = Schottky Diode +-|__/

AX = NI-MH Akku 1,2 V 15 mAh

GM = Getriebemotor aus Quarzuhren

DX = Überladenschutz

(created by AACircuit v1.28.6 beta 04/19/05 www.tech-chat.de)

Besten Dank für erfolgreiches Mitentwickeln ! :cheesy:

markusj
04.07.2012, 14:36
Sieht gut aus. R2/R3 würde ich als Poti realisieren, damit du die Hysterese einfach einstellen kannst, und dann ggf. mit einem weiteren Poti die Referenzspannung ebenfalls anpassbar machen.

Was ist das eigentlich für eine Monster-Solarzelle die 17V liefert?! Gegen so hohe Spannungen musst du die Schaltung definitiv schützen!

mfG
Markus

PICture
04.07.2012, 15:00
Das werde ich zuerst basteln, danach zwei Tripmmpotis drehen und am Ende SMD Widerstände einlöten müssen (dafür brauche ich zum Glück nix rechnen). :)

Über bereits vorhandenen Solarzellen habe ich dort ein bishen geschrieben: https://www.roboternetz.de/community/threads/48052-Mein-Kunsttier-%28BEAM%29-mit-Elektronik?p=528457&viewfull=1#post528457 . Ich bin aber immernoch auf des Suche der optimaler Lösung. Möglicherweise werde ich kleinere Solarzellen dafür nehmen.

Deshalb möchte ich per Schottky Dioden "automatisch" umschsltbare im Sechseck angeodnete um 45° zum Boden geneigte kleinere (22 x 37 mm) dünschicht Solarzellen aus Schlüsselanhänger ausprobieren (virtuelle Nachführung): http://www.pollin.de/shop/dt/MTM0ODMxOTk-/Fundgrube/Freizeitartikel/LED_Schluesselanhaenger_Solar.html .Ich verwende als groben Spannungsregler den kleinen 2,4 V NiMH Akku und die Schaltung wird sich nur in meiner ziemlich dunkler Wohnung "bewegen". Wenn der Akku nach längerer Zeit wegen Überladung doch kaputt seien sollte, dann wird er so lange durch neuen mit grösserer Kapazität erneuert, bis er aushält. Ich hoffe, dass mich mein langsames Tierchen (ausser Akku) überleben könnte. ! :D

Übrigens, mein eingeborenes Minimalismus bei Entwicklung von Schaltungen ist leider unheilbar (ausprobiert). :(

markusj
04.07.2012, 17:21
Über bereits vorhandenen Solarzellen habe ich dort ein bishen geschrieben: https://www.roboternetz.de/community/threads/48052-Mein-Kunsttier-%28BEAM%29-mit-Elektronik?p=528457&viewfull=1#post528457

Da schreibst du 5,5V und 16mA (meintest du vielleicht 17mA statt 17V?), das klingt auch wesentlich realistischer.


Ich verwende als groben Spannungsregler den kleinen 2,4 V NiMH Akku und die Schaltung wird sich nur in meiner ziemlich dunkler Wohnung "bewegen". Wenn der Akku nach längerer Zeit wegen Überladung doch kaputt seien sollte, dann wird er so lange durch neuen mit grösserer Kapazität erneuert, bis er aushält. Ich hoffe, dass mich mein langsames Tierchen (ausser Akku) überleben könnte. ! :D

Eine kleine Zener oder kaskadierte Dioden würden schon reichen um den Mord am Akku zu verhindern. NiMH hat ja eine Entladeschlusspannung von ca. 1,4V (Wikipedia), zwei Zellen also 2,8V. Eine 2,7V-Zener würde vielleicht am Ende einige Prozent Kapazität "Kosten", dafür aber den Akku schonen.


Übrigens, mein eingeborenes Minimalismus bei Entwicklung von Schaltungen ist leider unheilbar (ausprobiert). :(

Ich sehe das eher als positive Eigenschaft denn als Negative. Man geht damit neue Wege und entdeckt andere Lösungsmöglichkeiten. Stichwort: Verlassen der Komfort-Zone

mfG
Markus

PICture
06.07.2012, 14:51
Sorry, falls ich das unausreichend erlärt habe. Möglicherweise geht es um die Leerlaufspannung unter direktem Sonnenlicht. Der "Motor" überlebt das aber sicher nicht. Danke für deinen Hinweis, weil es sich sicher eine von dir dafür vorgeschlagene einfache Lösung realisieren lässt, die auch den Akku schützt, da reale Dioden nicht schlagartig leiten anfangen.

Ich habe den o.g. Schaltplan schon aktualisiert (D1 bis D6). Mit gemischten Dioden (Si, Schottky, Ge) und Geduld kann man die gesamte Durchlassspannung ausreichend genau festlegen.

Mir ist noch eingefallen, dass die Hysterese, wegen variabler VCC, nicht sammetrisch seien muss, weil nur die Werte der Umschaltspannungen den "Motor" steuern.

Die grösste Probleme hatte ich bisher immer mit Verlassen der Traum-Zone ohne Fremdwikung.

Vieeelen Dank an markusj fürs Mitentwickeln ! :D