Forum: Mikrocontroller und Digitale Elektronik Mehrfach Analog -> Digital Schalter (Schmitt-Trigger Verhalten)


von Christian H. (christian_h849)


Angehängte Dateien:

Lesenswert?

Hallo Zusammen,

ich möchte ein kleines Projekt realisieren, in dem ich 8Stk 
Drucksensoren (ABPLLNT010BGAA5) auswerten möchte.
Sobald der Analogausgang eines Sensors 2V überschreitet soll eine 
zugehörige LED (also für jeden Sensor gibt es eine zugehörige LED) 
angeschaltet werden. Sobald der Analogausgang wieder unter 1,7V fällt 
soll die LED wieder ausgeschaltet werden.

Ich habe jetzt etwas gesucht und bin auf zwei mögliche Varianten 
gestoßen.
1. Für jeden Sensor einen eigenen Schmitt-Trigger aufbauen. Dafür habe 
ich jedoch nicht genug Platz auf der Platine. => Oder gibt es das 
irgendwie schon als eigenen IC?

2. Ich baue einen ATtiny85 ein und nutze die ADC´s von PortA und schalte 
die LED´s mit PortB.
=> Wie könnte ich dann noch die Programmierung von dem guten Stück 
machen wenn alle Pins belegt sind, nur vor dem auflöten?
=> Ein Quarz wird hier zwingend notwendig sein oder (ADC 8-bit reicht)?
=> Wie oft pro Sekunde kann jeweils ein Sensor noch ausgewertet werden 
(30-50ms wäre gut)?

Vermutlich habt ihr schon gemerkt, es ist nicht direkt mein 
Alltagsgeschäft... Von daher wäre ich auch für einen anderen Ansatz 
offen (solltet Ihr gerade die Hände über dem Kopf zusammenschlagen :-).

Schöne Grüße
Christian

von Spess53 (Gast)


Lesenswert?

Hi

>2. Ich baue einen ATtiny85 ein und nutze die ADC´s von PortA und schalte
>die LED´s mit PortB.

Ein ATTiny85 hat nur einen PortB mit maximal 6 Pins.

MfG Spess

von Harald W. (wilhelms)


Lesenswert?

Christian H. schrieb:

> 1. Für jeden Sensor einen eigenen Schmitt-Trigger aufbauen. Dafür habe
> ich jedoch nicht genug Platz auf der Platine. => Oder gibt es das
> irgendwie schon als eigenen IC?

Es gibt Vierfach-Komparatoren in einem Gehäuse.

von Wolfgang (Gast)


Lesenswert?

Christian H. schrieb:
> Oder gibt es das irgendwie schon als eigenen IC?

LM339 quad Comparator

Für die Hysterese brauchst du jeweils einen Mitkopplungswiderstand

von Falk B. (falk)


Lesenswert?

Christian H. schrieb:
> Sobald der Analogausgang eines Sensors 2V überschreitet soll eine
> zugehörige LED (also für jeden Sensor gibt es eine zugehörige LED)
> angeschaltet werden. Sobald der Analogausgang wieder unter 1,7V fällt
> soll die LED wieder ausgeschaltet werden.

Dafür braucht man einen Schmitt-Trigger, der auch eingermaßen genau 
sein sollte.

> 1. Für jeden Sensor einen eigenen Schmitt-Trigger aufbauen. Dafür habe
> ich jedoch nicht genug Platz auf der Platine.

Wieviel Platz hast du denn? Sag nicht "wenig"! Wieviel cm^2? Siehe 
Netiquette.

 => Oder gibt es das
> irgendwie schon als eigenen IC?

Sicher. Es gibt Vierfach-Komparatoren in SOIC14 z.B. TLC3704. Das ist 
ein recht moderner Typ mit Push-Pull Ausgang. Der old school LM339 hat 
Open Drain, da braucht man immer noch einen strom- und platzfressenden 
Pull-Up Widerstand am Ausgang.

> 2. Ich baue einen ATtiny85 ein und nutze die ADC´s

Erstens heißt ADCs und zweitens hat der nur einen ADC, welcher aber per 
internem Multiplexer an 4-8 Eingänge geschaltet werden kann.

>von PortA und schalte
> die LED´s mit PortB.

Im Prinzip ja, aber der ATtiny hat zuwenige Pins. Nimm einen ATmega88, 
der hat genügend Pins und ist mit TQFP32 (9x9mm^2) noch recht klein.

> => Wie könnte ich dann noch die Programmierung von dem guten Stück
> machen wenn alle Pins belegt sind, nur vor dem auflöten?

Sicher. Oder nach dem Einlöten ein paar Kabel anlöten. Nicht schön, geht 
aber.

> => Ein Quarz wird hier zwingend notwendig sein oder (ADC 8-bit reicht)?

Oder. Der ADC braucht keinen genauen Takt, der interne RC-Oszillator 
reicht locker.

> => Wie oft pro Sekunde kann jeweils ein Sensor noch ausgewertet werden
> (30-50ms wäre gut)?

Wenn es sein muss mit 10kHz und mehr.

Die Lösung mit Mikrocontroller ist modern, flexibel und klein. Old 
school analog geht auch, ist aber das Gegenteil davon ;-)
Wobei man mit einem TLC3704 im SOIC14 und 0603er Widerständen ganz gut 
weg kommt. Wenn man die Komparatoren nichtinvertierend aufbaut, reicht 
auch ein Spannungsteiler für die Referenzspannung, das spart noch ein 
wenig Platz.

von c-hater (Gast)


Lesenswert?

Falk B. schrieb:

>> => Wie oft pro Sekunde kann jeweils ein Sensor noch ausgewertet werden
>> (30-50ms wäre gut)?
>
> Wenn es sein muss mit 10kHz und mehr.

Bei 8 Bit Auflösung gehen ca. 40kHz Samplerate. Die müssen allerdings 
noch durch 8 geteilt werden, weil ja 8 Eingänge abzufragen wären, ergibt 
also pro Eingang eine effektive Samplerate von 5 kHz. Das 
Abtastintervall wäre also 200µs, was die Anforderungen weit, weit 
übererfüllt.

Optimal für die Aufgabe wäre übrigens der ATtiny26 geeignet. Kleinstes 
verfügbares Package: MLF32 (5x5mm). Nur zwei (kleine) Wermutstropfen:
1) Die gewünschte Aufteilung "ein Port für alle Eingänge, ein Port für 
alle Ausgänge" geht damit nicht.
2) der Reset-Pin muss mit genutzt werden.

Wobei die erste Einschränkung ziemlich irrelevant ist, diese Zuordnung 
ist ja im Prinzip völlig Wurscht, nur die "Eleganz" der Lösung wird ein 
wenig beeinträchtigt.

Und auch die zweite Einschränkung ist kaum nennenswert. Man muss halt 
während der Debugging-Phase damit leben, dass man es nur mit 7 Kanälen 
testen kann (aber schon mit dem vollständigen Programm). Wenn alles 
läuft, kann man dann als allerletzten Schritt den Reset-Pin wegfusen.

von Wolfgang (Gast)


Lesenswert?

Falk B. schrieb:
> Dafür braucht man einen Schmitt-Trigger, der auch eingermaßen genau
> sein sollte.

Aach.
Ohne eine nähere Angabe zur Genauigkeit kann man aus den bisherigen 
Angaben wohl schließen, dass "eingermaßen genau" gut mit "+/-50mV" 
übersetzt werden kann. Das ist kein Hexenwerk.

von Georg (Gast)


Lesenswert?

Falk B. schrieb:
> Der old school LM339 hat
> Open Drain, da braucht man immer noch einen strom- und platzfressenden
> Pull-Up Widerstand am Ausgang.

Wenn man eine Optokopplereingang anschliesst? Wozu? Der Vorwiderstand 
der OK-LED IST der Pullup, auch wenn man hier immer wieder liest, dass 
man Vorwiderstände für LEDs auch weglassen kann. Push-Pull ist völlig 
überflüssig.

Georg

von Falk B. (falk)


Lesenswert?

Georg schrieb:
> Wenn man eine Optokopplereingang anschliesst? Wozu?

Weil der Komparator als relativ genauer Schmitt-Trigger arbeiten 
soll, da braucht es einen gescheiten HIGH-Pegel und eine Rückkopplung.

> man Vorwiderstände für LEDs auch weglassen kann. Push-Pull ist völlig
> überflüssig.

Nö.

von Christian H. (christian_h849)


Lesenswert?

Hallo Zusammen,

wow... vielen Dank für die ganzen (schnellen) Antworten. Ich werde die 
jetzt abarbeiten!

Lg Christian

von HildeK (Gast)


Lesenswert?

Christian H. schrieb:
> => Wie könnte ich dann noch die Programmierung von dem guten Stück
> machen wenn alle Pins belegt sind, nur vor dem auflöten?

Auch wenn alle Pins belegt sind, ist Programmieren möglich. Beim 
Programmieren müssen die Pins MISO, MOSI, SCK und Reset bewegbar bleiben 
und sollten, wenn sie durch den Programmer bewegt werden, keinen Schaden 
anrichten. Das muss man nur beachten, wenn man den µC im eingebauten 
Zustand programmieren will.
Nur, wenn du den Tiny26 verwendest, dann ist das normale 
Nachprogrammieren (eingebaut) nicht mehr möglich, nachdem man den 
Resetpin zum Port umdefiniert hat. Dann muss man mit 
HV-Parallelprogrammierung ran. Das geht nicht in eingelötetem Zustand. 
Besser wäre ein Mega8 (nicht im DIL-Gehäuse!), der genügend Pins hätte.
Wahrscheinlich brauchen zwei Vierfachkomparatoren auch nicht viel mehr 
Platz, allerdings mehr äußere Beschaltung.

Noch eine Bemerkung zu deiner Schaltung: Zumindest hast du auf beiden 
Seiten des Optokopplers den selben GND eingezeichnet, logisch sind sie 
dadurch miteinander verbunden.
Wenn dem so ist, dann sind Optokoppler nicht notwendig. Ein ULNxxxx oder 
Einzeltransistoren (bipolar oder MOSFET) können die Pegeltransformation 
auf die 24V auch machen. Allerdings dann mit Pullups an der Logo und die 
Transistoren ziehen nach GND.
Ob das akzeptabel ist, insbesondere in der Resetphase der Schaltung oder 
wegen Invertierung des Zustandes, kannst nur du beurteilen.

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.