Forum: Mikrocontroller und Digitale Elektronik Lüfterüberwachung mit atTiny85


von René J. (renej)


Angehängte Dateien:

Lesenswert?

Hallo!

Ich möchte mit einem atTiny85 überwachen, ob ein Lüfter dreht. Dazu habe 
ich mir die Schaltung im Anhang überlegt.

Generelle Funktionsbeschreibung:

Die Schaltung soll zwischen die Spannungsquelle und den Lüfter (12V-24V) 
gesteckt werden und hat eine seperate 5V-Versorgung für den atTiny85. 
Mittels Optokopplers frage ich ab, ob die Spannung für den Lüfter 
anliegt und setze damit einen Eingang des atTiny auf HIGH. Das 
Tachosignal auf der anderen Seite wird bei normalen PC-Lüftern ja als 
OC-Ausgang bereitgestellt. Die Flanken dieses Signals leite ich über 
eine RC-Kombination ebenfalls an einen Eingang des atTiny85 weiter.

Das Programm des atTiny vergleicht, ob eine Spannung anliegt und somit 
der Lüfter drehen müsste. Nur dann wird das Tachosignal erfasst und 
überwacht. Weicht das Signal von voreingestellten Parametern ab, gibt 
der atTiny ein Signal aus.

Meine Frage ist nun, ob ich das so realisieren kann oder ob ich etwas 
übersehen habe. Speziell bei der RC-Kombination zur Erfassung des 
Tachosignals bin ich mit etwas unsicher, ob ich mir mit der anliegenden 
hohen Lüfterspannung von 12V-24V nicht den µC zerstöre. Der Eingang ist 
intern auf Pullup geschaltet.

Ich habe die Schaltung so schon hier aufgebaut, allerdings komplett auf 
5V und das funktioniert. Kann ich gefahrlos die 24V-Variante probieren 
oder kommt dann der magische Rauch aus dem atTiny? :D

von HildeK (Gast)


Lesenswert?

René J. schrieb:
> Speziell bei der RC-Kombination zur Erfassung des
> Tachosignals bin ich mit etwas unsicher, ob ich mir mit der anliegenden
> hohen Lüfterspannung von 12V-24V nicht den µC zerstöre. Der Eingang ist
> intern auf Pullup geschaltet.

Du fürchtest dich zu Recht!
220Ω an 24V auf einen µC-Eingang geht nicht!
Wenn das Tachosignal auf einem OC herauskommt und nicht intern im Lüfter 
noch ein Pullup versteckt ist, dann lege deinen Pullup auf 5V anstatt 
auf 24V!
Auch sind die 220Ω reichlich niederohmig, könnte der Lüfter-OC überhaupt 
24V/200Ω = 120mA?
Also: nehme ≈5kΩ als Pullup an 5V und fertig. Es fließt dann aktiv immer 
noch 1mA und auch das ist reichlich.

Es sind aber noch andere Ungereimtheiten in deinem Schaltplan. Nach dem 
Schaltplan kann das nicht funktioniert haben:
- Pin 1 ist nicht 5V, sondern Pin 8. An Pin1 liegt Reset
- an Pin4 kann kein Signal sein, sondern muss GND sein
- Wozu ein Optokoppler für die Erkennung der Lüfterversorgung? Ein 
Spannungsteiler auf einen Analogeingang (Komparator mit 1.25V Schwelle, 
24V → 5V, damit 12V → 2.5V) oder ein Widerstand + 4V7-Z-Diode auf einen 
Digitaleingang tun es auch.
- wozu brauchst du C1?
- wo sind die obligatorischen 100n an der Tiny-Versorgung?

von René J. (renej)


Angehängte Dateien:

Lesenswert?

HildeK schrieb:
>
> Du fürchtest dich zu Recht!
> 220Ω an 24V auf einen µC-Eingang geht nicht!
> Wenn das Tachosignal auf einem OC herauskommt und nicht intern im Lüfter
> noch ein Pullup versteckt ist, dann lege deinen Pullup auf 5V anstatt
> auf 24V!
> Auch sind die 220Ω reichlich niederohmig, könnte der Lüfter-OC überhaupt
> 24V/200Ω = 120mA?
> Also: nehme ≈5kΩ als Pullup an 5V und fertig. Es fließt dann aktiv immer
> noch 1mA und auch das ist reichlich.

Das was du schreibst, war auch mein Gedanke. Ich habe die RC-Kombination 
so aus einer anderen Schaltung, die hier im Forum vorgeschlagen wurde 
übernommen. Thread: Beitrag "Schaltung für Lüfter-Tachosignal auswertung"

Ich hatte die Erklärung dazu so verstanden, dass ein Tachosignal als OC 
am Eingang eines µC den Pin des µC auf Masse zieht oder eben nicht. Nach 
meinem Verständnis dürfte damit nur Strom aus dem Pin "herausfließen" 
und nicht hinein. Somit hatte ich die 220Ohm für 5V ausgelegt. Meine 
Idee dahinter war eigentlich, dass im Falle eines anderen Lüfters der 
vielleicht das Tachosignal nicht als OC abgibt, sondern als 
24V-HIGH-Pegel, so trotzdem eine Flanke erzeugt hätte.

Scheinbar habe ich da einen Denkfehler und muss mir das nochmal genauer 
anschauen.

Ich habe das mal abgeändert, wie von dir vorgeschlagen.

> Es sind aber noch andere Ungereimtheiten in deinem Schaltplan. Nach dem
> Schaltplan kann das nicht funktioniert haben:
> - Pin 1 ist nicht 5V, sondern Pin 8. An Pin1 liegt Reset
> - an Pin4 kann kein Signal sein, sondern muss GND sein

Da hast du Recht, das habe ich in der Eile der Zeichnung für diesen 
Thread hier falsch gezeichnet, aber auf meinem Breadboard richtig 
gesteckt. Ich habe die Zeichnung dementsprechend angepasst.

> - Wozu ein Optokoppler für die Erkennung der Lüfterversorgung? Ein
> Spannungsteiler auf einen Analogeingang (Komparator mit 1.25V Schwelle,
> 24V → 5V, damit 12V → 2.5V) oder ein Widerstand + 4V7-Z-Diode auf einen
> Digitaleingang tun es auch.

Der Optokoppler war meine Idee, wie ich eine variable Lüfterspannung von 
12-24V auf 5V Logik-Spannung reduziert bekomme. Ich bin nicht sehr 
versiert was die Möglichkeiten dazu angeht. Ich hoffe, das ist nicht zu 
sehr "mit Kanonen auf Spatzen geschossen".

> - wozu brauchst du C1?

C1 dient zum entstören des Pegels, das habe ich ebenfalls aus dieser 
Schaltung übernommen: Beitrag "Schaltung für Lüfter-Tachosignal auswertung"

> - wo sind die obligatorischen 100n an der Tiny-Versorgung?

war obligatorisch nicht vorhanden - Aber jetzt :D Aber danke für den 
Hinweis, genau wegen solcher Tipps habe ich hier nachgefragt.

Wärst du so freundlich und würdest dir die abgeänderte Schaltung noch 
einmal anschauen, ob ich deine Vorschläge richtig verstanden habe?

von HildeK (Gast)


Lesenswert?

René J. schrieb:
> Wärst du so freundlich und würdest dir die abgeänderte Schaltung noch
> einmal anschauen, ob ich deine Vorschläge richtig verstanden habe?

Ja gerne.

René J. schrieb:
> Der Optokoppler war meine Idee, wie ich eine variable Lüfterspannung von
> 12-24V auf 5V Logik-Spannung reduziert bekomme. Ich bin nicht sehr
> versiert was die Möglichkeiten dazu angeht. Ich hoffe, das ist nicht zu
> sehr "mit Kanonen auf Spatzen geschossen".

Doch, das sind Kanonen auf Spatzen. :-)
Du hast 12/24V für den Lüfter, wenn er an ist und 0V wenn er aus ist. 
Mach es doch einfach so:
1
   12V/24V oder 0V
2
       |
3
      .-.
4
      | |
5
      | | 15k
6
      '-'
7
 10k.--o------ E
8
   .-. |
9
   | | z
10
   | | A 4V7 oder 5V1
11
   '-' |
12
    |  |
13
   ======
14
   GNDGND
15
(created by AACircuit v1.28.6 beta 04/19/05 www.tech-chat.de)
Bei 12V ist die Z-Diode wirkungslos, bei 24V begrenzt sie die 
Eingangsspannung auf ca. 4.5V ... 5V (ausreichender HIGH-Pegel für den 
Tiny). Wenn 0V anliegen, dann ist E auch sicher auf 0V wegen des 
Widerstands parallel zur Z-Diode. E geht direkt auf den Tiny.

Ein OK ist zwar ein nettes Ding, man nimmt ihn aber nur, wenn 
Potentialtrennung gefordert ist.
Außerdem: R10 = 220Ω ist auch hier unnötig niederohmig. Auch R7 und R9 
sind sehr klein gewählt. Wenn du R10 für 1mA auslegst (4k7 z.B.), dann 
muss man auch der OK-LED nicht mehr als 2..5mA geben, du kannst sie für 
2mA bei 12V und dann rund 4mA bei 24V auslegen und benötigst die 
12V/24V-Umschaltung des LED-Stromes nicht. Also, einfach R7 entfallen 
lassen und R9 fest anschließen und zu etwa 3k9 ... 4k7 wählen.

C2 ist jetzt da, verbinde den aber direkt und kurz zwischen Pin 4 und 8 
des Tiny.

Für den Pullup des OC-Ausgangs sind die 220Ω noch immer unnötig niedrig 
gewählt. Der Ausgang wird das sicher schaffen, aber 1k oder 5k vergeuden 
nicht unnötig Leistung.

Bei dem Buzzer musst du natürlich klären, ob ein Tiny-Ausgang den 
treiben kann. Mehr als 20mA solltest du dem Ausgang nicht zumuten. Im 
Zweifel wäre ein Transistor als Treiber richtig.

Wenn dein Tachosignal auch ohne Pullup ein Signal zeigen sollte (dann 
ist es kein OC, sondern eine Push-Pull-Stufe), dann könntest du die 
selbe Schaltung wie oben für die Spannungsdetektion auch für das 
Tachosignal nutzen.
Die ist auch verwendbar, wenn du unbedingt auf 12V/24V einen Pullup 
legen willst/musst, dann schließe den OC an E an und auch den 
Tiny-Eingang. Die Z-Diode sorgt wieder dafür, dass die maximale 
Eingangsspannung des Tiny nicht überschritten werden kann. Sorge aber 
mit der Wahl des Widerstands dafür, dass nicht viel mehr als 1mA fließt 
- mehr wäre einfach Verschwendung. Egal, ob es 500µA oder 2mA sind, aber 
so der Bereich ist sinnvoll und völlig ausreichend.

C1 mit 1n kannst du zwar zur Not lassen, aber ich halte ihn für nicht 
notwendig - er belastet nur unnötig den Tachoausgang. Schließlich muss 
der bei jedem Puls von 12V oder 24V auf 0V entladen werden. Das gibt 
nette Peak-Ströme. Das Tachosignal sollte sowieso nicht prellen und wenn 
doch, dann kannst du das auch zuverlässiger in SW abhandeln.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Leg doch noch eine Diode in die Tacholeitung, dann muss sich der Tiny 
nicht vor zu hohen Spannungen fürchten:
1
Tiny Pin 7          Tacho Signal
2
o--------|>|---------o 
3
         A  K
4
        Diode
Pin 7 sollte den aktivierten Pullup haben.

von René J. (renej)


Lesenswert?

Vielen Dank schon einmal vorab für die wahnsinnig ausführliche Erklärung 
und die Tipps. Ich werde gleich versuchen, dass geschriebene umzusetzen.

Dazu habe ich aber noch eine Frage: Was sind denn eigentlich so die 
"typischen 08/15-Bauteil-Typen" der genannten Z-Diode und der Diode 
(N4004)?
Ich mag jetzt ungern die dutzenden Datenblätter der in EAGLE vorhandenen 
Zener-Dioden durchlesen und mir dann daraus dann eine der 3 passenden 
raussuchen nur um dann festzustellen, dass es die nur in den USA zu 
kaufen gibt, wenn in 99% der Fälle immer "die eine" benutzt werden kann, 
die es dann auch bei reichelt für z.B. 0,10€ gibt.

Ihr merkt schon, Schaltkreise mach ich nicht so oft ;)

: Bearbeitet durch User
von René J. (renej)


Angehängte Dateien:

Lesenswert?

So, dann hier noch einmal der überarbeitete Plan. Sieht auch irgendwie 
direkt "einfacher" aus. Danke schon einmal für die Hilfe bis hier her.

Ich habe jetzt die Spannungsteiler/Z-Dioden-Kombination an Eingang 2 des 
atTiny85 verwendet, den Buzzer über einen NPN-Transistor geschaltet, 
damit ich den Ausgang nicht überlaste und die Diode (D4) in die 
Tacholeitung eingebaut wie von Matthias Sch. vorgeschlagen. Zusätzlich 
habe ich noch eine Diode (D2) in die GND Leitung der 5V-Versorgung 
eingebaut, da ich dort theoretisch über den 3-Pin Connector die Polung 
vertauschen könnte.

Noch einmal die Frage zur Z-Diode, da ich quasi noch nie damit 
gearbeitet habe: Suche ich die nur nach Ptot und der Spannung aus? Für 
4,7V dann z.B. diese: 
https://www.conrad.de/de/z-diode-zpd47v-gehaeuseart-halbleiter-do-35-diotec-zener-spannung-47-v-leistung-max-p-tot-506-mw-180084.html 
(ausgesucht, weil günstigste)

von HildeK (Gast)


Lesenswert?

Sieht ganz gut aus.
Ich vermisse eine Verbindung von GND des Lüfters und der 5V Versorgung.

D2 sollte in die 5V-Leitung.

Eine 1N4004 ist eine billige, überall verfügbare 1A-Si-Diode und für 
diesen Zweck geeignet.
Für D4 kann man sie auch nehmen, wenngleich ein 1A-Typ unötig ist. Ich 
nehme da z.B. die 1N4148. 150mA und kleinere Bauform. Die ist auch für 
D2 verwendbar, wenn der Buzzer nicht viel mehr als 100mA benötigt.

Als Z-Diode ist ein 500mW-Typ (wie verlinkt) die ZPD oder auch ein 
250mW- Typ ideal. Die gibt es von verschiedenen Herstellern mit 
variierenden Bezeichnungen. Ich schau immer nach den BZX84 für solche 
Zwecke, weil die kleiner sind und die 250mW bei weitem reichen und auch 
gut zu bekommen sind. Ja, die wesentlichen Parameter sind Ptot und die 
Z-Spannung.

von HildeK (Gast)


Lesenswert?

Noch eines: der Buzzer gehört auf die Kollektorseite, der Emitter an 
GND. So erhält er nur rund 2V.
Sollte der Buzzer induktiv sein, muss ihm noch eine Freilaufdiode 
parallel gelegt werden - auch eine 1N400x!

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

HildeK schrieb:
> Noch eines: der Buzzer gehört auf die Kollektorseite, der Emitter an
> GND. So erhält er nur rund 2V.

Wenn der TE den 'Buzzer' auf die so bezeichneten 2 Pfostenfeldanschlüsse 
legt und SG1 (wasn das?) durch eine Brücke ersetzt, sollte es klappen. 
R1 kann übrigens entfallen, weil der Transistor von alleine abregelt 
(ist ja ein stromgesteuertes Bauteil).

von Wolfgang (Gast)


Lesenswert?

HildeK schrieb:
> Sollte der Buzzer induktiv sein, muss ihm noch eine Freilaufdiode
> parallel gelegt werden - auch eine 1N400x!

Als Gleichrichterdiode mögen die 1N400x recht bewährt sein, aber als 
Freilaufdiode sind die Dinger nun wirklich denkbar ungeeignet. Innerhalb 
der 30µs, die so ein Ding als reverse recovery time besitzt, kann der 
Tiny schon 10-mal abbrennen.  Die 1N4148 ist mehr als einen Faktor 1000 
(in Worten: eintausend) schneller und verhindert auch kurze 
Induktionsspitzen - nur muss man gucken, ob sie mit der Stromstärke 
zurecht kommt.

von René J. (renej)


Lesenswert?

Also der Doppelpfosten ist eine Jumper-Brücke zum manuellen ein- und 
ausschalten des Buzzers (SG1 "Signalgeber") - durch simples auftrennen 
des Strompfades. Ich dachte dabei daran, einen Piezzo-Buzzer zu nehmen, 
daher sollte die Diode nicht nötig sein.

Nachtrag: Mir ist wieder eingefallen, warum ich am Anfang noch den 
Optokoppler eingesetzt habe: Der 12-24V-Kreis für den Lüfter kann (von 
außerhalb) nicht nur mit z.B. einem Relais, sondern auch mit einem 
mosFET ein- und ausgeschaltet werden, sodass dann immer 12-24V anliegen 
würden und lediglich GND geschaltet wird. Ich muss aber innerhalb der 
angegebenen Schaltung feststellen, ob der Lüfter laufen "sollte" oder 
nicht. Da ich mit dem Optokoppler parallel zum Lüfter quasi eine LED 
habe, die nur leuchtet, wenn 12-24V UND GND vorhanden sind, erreiche 
ich die Überwachung von 12-24V als auch von GND der Lüfterspannung.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

René J. schrieb:
> Ich dachte dabei daran, einen Piezzo-Buzzer zu nehmen,
> daher sollte die Diode nicht nötig sein.

Da Piezo Buzzer elektrisch nahezu wie ein Kondensator aussehen, solltest 
du ihm dann allerdings einen Arbeitswiderstand parallelschalten oder 
(besser) eine Induktivität, die mit der Kapazität des Piezos zusammen 
auf Resonanz abgestimmt ist. Dann werden die Dinger richtig laut, aber 
du brauchst dann auch wieder eine Freilaufdiode.

von HildeK (Gast)


Lesenswert?

Wolfgang schrieb:
> Als Gleichrichterdiode mögen die 1N400x recht bewährt sein, aber als
> Freilaufdiode sind die Dinger nun wirklich denkbar ungeeignet. Innerhalb
> der 30µs, die so ein Ding als reverse recovery time besitzt, kann der
> Tiny schon 10-mal abbrennen.

Dem Tiny tut das gar nichts, der Transistor wird dadurch geschützt - und 
der hält erst mal die ersten 45V aus. Und die Kapazität, die die große 
reverse recovery time verursacht, nimmt einen Teil der Energie auf.
Ich glaube zwar nicht, dass die 1N400x hier ungeeignet ist, werde es 
aber bei Gelegenheit mal ausmessen.
Die 1N4148 geht nur dann, wenn der Buzzer (was oben noch nicht bekannt 
war, das hätte ja auch was kräftiges sein können) eine Stromaufnahme von 
<100mA...200mA hat. Sie muss den Strom können ...

Matthias S. schrieb:
> SG1 (wasn das?)

SG1 sollte der Buzzer sein, das Pfostenfeld diente zum Unterbrechen.

von René J. (renej)


Angehängte Dateien:

Lesenswert?

So, hier nochmal eine Rückmeldung von mir. So sieht die Schaltung jetzt 
aus.
Gesteckt funktioniert sie bisher tadellos.

Noch einmal vielen Dank an alle, die mir hier mit Rat und Tat beiseite 
gestanden haben.

von Andreas J. (Firma: JCS - Jacob Computer Systeme) (meisterj)


Lesenswert?

Hallo, ich würde die Überwachung gerne nachbauen und würde dazu das 
Programm für den atTiny85 benötigen.
Kannst Du das bitte mal posten.
         Danke

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.