Forum: Mikrocontroller und Digitale Elektronik Raspberry Pi 0-10V


von Moni K. (no0b)


Angehängte Dateien:

Lesenswert?

Hallo,
Ich stehe vor demselben Problem wie der Autor Max Muster damals: 
Beitrag "Arduino 0-10V PWM, EC-Motor" Ich würde gerne mit dem 
Raspberry Pi den Lüfter K3G133-RA01-03 ansteuern. Allerdings verstehe 
ich noch weniger von Elektrotechnik.
So wie ich das verstanden habe sollte die Schaltung von MaWin 
funktionieren:

             +--- Lüfter Pin 3
             |
            10k
             |
             +--- Lüfter Pin 2
             |
uC-PWM--1k--|< BC547
             |E
GND ---------+--- Lüfter Pin 1

Doch ich verstehe nicht einmal diesen Schaltplan....

Vorhanden ist folgendes:

Raspberry Pi                            Lüfter

                                    Anschluss 1 (GND)

PWM Ausgang                         Anschluss 2 (Steuereingang 0-10V)

                                    Anschluss 3(Spannungsausgang 
10V/1.1mA)

Doch was muss dazwischen?

Raspberry Pi                            Lüfter

                                    Anschluss 1 (GND)
                                    |
                                  (für was steht das E?)
                                    |
Ausgang    ---1k Widerstand---    NPN Transistor (BC 547C richtig?)
                                    |
                                    Anschluss 2 (Steuereingang 0-10V)
                                    |
                                  10k Widerstand (welcher?)
                                    |
                                    Anschluss 3(Spannungsausgang 
10V/1.1mA)

(Zusätzlich fände ich es super, wenn im Falle des Raspberry Pi Ausfalls 
der Lüfter (über einen Poti) auf bspw. 70% laufen würde)

Über verständliche Antworten würde ich mich wirlich freuen :)

Viele Grüße,
Moni

von HildeK (Gast)


Lesenswert?

Moni K. schrieb:
Du meinst in der MaWin-Schaltung? Ich beziehe mich jedenfalls darauf.
> Doch was muss dazwischen?
>
> Raspberry Pi                            Lüfter
>
>                                     Anschluss 1 (GND)
>                                     |
>                                   (für was steht das E?)
Für den Emitteranschluss des Transistors

>                                     |
> Ausgang    ---1k Widerstand---    NPN Transistor (BC 547C richtig?)
Ja

>                                     |
>                                     Anschluss 2 (Steuereingang 0-10V)
Der Steuereingang PWM des Lüfters

>                                     |
>                                   10k Widerstand (welcher?)
praktisch egal. 10k eben. Leistung ist U²/R, bei 12V muss er nur 15mW 
können.
>                                     |
>                                     Anschluss 3(Spannungsausgang
> 10V/1.1mA)
Nein, der Lüfter braucht ja 12V und wird über den PWM-Eingang in der 
Drehzahl gesteuert. Dieser Anschluss wird an Lüfter und die 12V 
Lüfterversorgung angeschlossen. Es ist kein Ausgang, sondern ein 
'Eingang' für die Stromversorgung.

von HildeK (Gast)


Lesenswert?

HildeK schrieb:
> der Lüfter braucht ja 12V

oder meinetwegen auch nur 10V - ich kenne deinen Lüfter nicht :-).

von Moni K. (no0b)


Lesenswert?

Hallo HildeK,

Dankeschön für die Hilfe. (E=Emitteranschluss )
Der Lüfter benötigt allerdings 230V. Ersichtlich im Anschlussbild 
welches ich beifügte. Über PWM möchte ich ihn jedoch nicht steuern da 
dabei zusätzlich 15V nötig wären. Bei dem Versuch der obigen Lösung ist 
dies nicht notwendig da der Lüfter an Anschluss 3 10V bereitstellt.

von HildeK (Gast)


Lesenswert?

Gut, dann habe ich dich komplett missverstanden und muss noch mal 
rückfragen.

Willst du ihn in der Drehzahl einstellen oder nur ein- bzw. ausschalten?
Falls die Drehzahl verändert werden soll, benötigst du vom RasPi eine 
PWM - der hat ja nur digitale Ausgänge.

von Moni K. (no0b)


Lesenswert?

Er läuft immer also kein Ein/ausschalten sondern die Drehzahl über 0-10V 
regeln.

von HildeK (Gast)


Lesenswert?

OK, habe mich mit deinem Anhang beschäftigt, leider etwas klein für 
meine alten Augen :-)
Die Schaltung von MaWin zeigt doch schon alles.
Der Lüfter liefert ja die 10V mit max. 1.1mA an Pin 3. Die Leitung kommt 
an Pin 3 von der MaWin-Schaltung.
Ebenso die Pins 1 und 2 des Lüfteranschlusses ebenfalls an die Pins 1 
und 2 anschließen. Fertig.
Ob du jetzt mit dem RasPi PWM machst oder nur ein- und ausschaltest, ist 
egal.

von HildeK (Gast)


Lesenswert?

Moni K. schrieb:
> Er läuft immer also kein Ein/ausschalten sondern die Drehzahl über 0-10V
> regeln.

Ja, aber dann brauchst du PWM. Anders gibt es keine 0-10V aus dem RasPi.

von Moni K. (no0b)


Lesenswert?

Genau es gibt keine 10V aus dem RasPi, die 10V gibt es vom Lüfter 
selbst.

von Conny G. (conny_g)


Angehängte Dateien:

Lesenswert?

Dann geht's hier um die klassische 10V Dimmer-Schaltung mit 
Operationsverstärker.

Hier einer der Links, den ich mir dazu gespeichert habe, passt hier m.E. 
ganz gut:

https://electronics.stackexchange.com/questions/42661/1-10v-fluorescent-lighting-digital-control

Läuft mit 3.3V.
Die Beschaltung des Opamp mit 220k/100k setzt eine 3-fach Verstärkung 
(3.3V -> 9.9V).
Der Eingang vor dem Opamp ist mit einem Pi-Lowpass versehen, der die PWM 
in eine konstante Spannung umwandelt.
Der Opamp regelt nun den Transistor immer soweit auf, dass die Spannung 
"über" ihm die 3-fache ist von der, die am Eingang anliegt.

: Bearbeitet durch User
von Markus H. (haniham) Benutzerseite


Angehängte Dateien:

Lesenswert?

Wie wärs mit dieser Schaltung?

Die Spannungsquelle vom Lüfter ist ja galvanisch getrennt.
Der PWM Pin vom RPI - Steuert den Transistor an, der den Eingangspin auf 
die isolierten 10V zieht.

Falls wirklich erforderlich, weil ohne den Lüfter z.b. etwas kaputt 
gehen kann:
Standardmäßig liegt an den Eingangskontakten das Poti mit verstellbarem 
Wert an.
Eine noch zu entwickelnde Flankenerkennung prüft, ob der Raspberry PWM 
Signale erzeugt. Falls dem so ist trennt er das Poti mit den 
Öffnerkontakten ab (theoretisch reicht nur ein Kontakt) und lässt nur 
das PWM Signal durch.
Wird kein PWM mehr generiert, wird durch die Flankenerkennung das Relais 
zurückgelassen und der Poti liegt wieder an.

von Moni K. (no0b)


Lesenswert?

Vielen Dank für die Antworten. Besonders dir Markus H.

Das hört sich gut an und sieht auch gut aus. Aber wie wie eingangs 
erwähnt verstehe ich nicht viel von Schaltplänen und Eletrotechnik. 
Außer dem Transistor und den Widerständen kenne ich kein Symbol der 
Zeichnung.

Was für Bauelement benötige ich dafür?
Ich möchte ungern riskieren den Ventilator zu schrotten.

von HildeK (Gast)


Lesenswert?

Moni K. schrieb:
> Genau es gibt keine 10V aus dem RasPi, die 10V gibt es vom Lüfter
> selbst.

Ich meinte: es gibt keine analoge Spannung vom RasPi!
Nur eine PWM, auch mit der Schaltung von Conny G. musst du eine PWM 
programmieren! Erst die Schaltung macht 0...10V draus, proportional zum 
Puls-Weiten-Verhältnis der PWM.
Und dann kannst du gleich die PWM auf den Lüfter direkt geben, weil das 
ist ja ein vorgesehene Betriebsart.
Auch in der Schaltung von Markus H. brauchst du eine PWM. Er hat nur die 
Zusatzforderung nach den 70% Drehzahl bei RasPi-Ausfall mit umgesetzt. 
Das Bauteil an der Flankenerkennung ist ein Relais.

von Ingo D. (ingo2011)


Lesenswert?

Hi ,
im Prinzip musst Du doch nur ein GPIO Pin des Raspis mit
Pin 2 Deiner Schaltung sowie einen Ground Pin des raspis mit Pin 1 
Deiner Schaltung verbinden .
Dann ein paar Zeilen Python und du hast eine PWM mit nem Raspi zum 
Steuern Deines Lüfters.

Anbei mal ein Beispiel, leider finde ich die Seite nicht mehr wo ich das 
mal her hatte..

Gruß Ingo


#! /usr/bin/python -W ignore
# -*- coding: utf-8 -*-

import RPi.GPIO as IO
import time                            #calling time to provide delays 
in program

if _name_ == "__main__":
 try:
    IO.setwarnings(False)           #do not show any warnings
    IO.setmode (IO.BCM)         #we are programming the GPIO by BCM pin 
numbers. (PIN35 as ‘GPIO19’)
    IO.setup(19,IO.OUT)           # initialize GPIO19 as an output.
    p = IO.PWM(19,500)          #GPIO19 as PWM output, with 100Hz 
frequency
    p.start(0)                              #generate PWM signal with 0% 
duty cycle

    p.ChangeDutyCycle(50)


    while 1:                               #execute loop forever


        for x in range (50):                         #execute loop for 
50 times, x being incremented from 0 to 49.
            p.ChangeDutyCycle(50-x)        #change duty cycle for 
changing the brightness of LED.
            time.sleep(0.1)                          #sleep for 100m 
second

 except KeyboardInterrupt:
    p.stop()
    IO.cleanup()

von Max M. (jens2001)


Lesenswert?

Ingo D. schrieb:
> ein GPIO Pin des Raspis mit
> Pin 2 Deiner Schaltung sowie einen Ground Pin des raspis mit Pin 1
> Deiner Schaltung verbinden .

Ach!
Und der Paspi liefert 10V???

von Moni K. (no0b)


Lesenswert?

Hallo HildeK und Ingo DH1AAD,
die PWM Steuerung (GPIO Pin) des RasPi erzeugen nicht die erforderlichen 
15V auf von daher, da keine extra Stromversorgung vorgesehen ist soll 
ein anderer Weg gewählt werden. Um das programmieren mache ich mir dann 
keine Sorgen, das mache ich beruflich. Nur mit Schaltplänen und ihren 
abgebildeten Bauteilen komme ich nicht zu Recht.

von HildeK (Gast)


Lesenswert?

Moni K. schrieb:
> die PWM Steuerung (GPIO Pin) des RasPi erzeugen nicht die erforderlichen
> 15V auf von daher, da keine extra Stromversorgung vorgesehen ist soll
> ein anderer Weg gewählt werden.

Ja, schkn klar. Daher auch der Transistor, der aus der 3.3V-PWM eine mit 
10V macht. 15V sind nicht notwendig, weil in dem eingangs angehängten 
Papier eh auf 12V (Z-Diode) begrenzt wird. Die Übersetzung von 3.3V vom 
RasPi auf die 10V für den Lüfter macht ja der Transistor in z.B. MaWins 
Schaltung.
Bleibt nur noch die Unsicherheit, ob die 10V Hub nach dem Transistor 
reichen, um die vollen 100% zu erreichen oder ob der Lüfter tatsächlich 
12V sehen will.
Im Lüfter ist sehr wahrscheinlich einfach ein Tiefpassfilter, sicherlich 
noch einfacher ausgeführt als das von Conny G. gezeichnete.

von Ingo D. (ingo2011)


Angehängte Dateien:

Lesenswert?

Hi Max, Du hast vollkommen Recht. Ich hatte noch eine ander Schaltung 
von einem Kumpel im Hinterkopf ...
Da war es ähnlich aber etwas anders ...

von Conny G. (conny_g)


Lesenswert?

Ich glaube für Moni K müssten wir das vereinfachen.
Ich glaube die Anforderung, dass der Ventilator mit 70% laufen soll, 
wenn der Raspi nicht verfügbar ist sollten wir zum ersten weglassen und 
in einer 2. Runde drauf eingehen.

Dann bleiben zwei Varianten:

1) PWM an Transistor ohne zusätzliche Versorgungsspannung
Als Versorgung werden die 10V des Ventilators genutzt, die auf der 
CE-Strecke des Transistors anliegen. Die dürfen aber nicht belastet 
werden, 10k Widerstand zwischen den 10V und dem Transistor. Durch die 
10k geht Spannung der 10V verloren, es können nicht 100% erreicht 
werden, aber es ist die einfachste Variante.

2) PWM an Transistor mit zusätzlicher Versorgungsspannung
Wie im Datenblatt des Ventilators, wie oben, nur Versorgungsspannung 
externe 12-15V. Damit sind 10V bzw. 100% erreichbar.

3) PWM auf Operationsverstärker ohne zusätzliche Versorgungsspannung
Mit einem Rail-to-Rail Opamp (wie meine Schaltung), der wenig Strom 
benötigt könnte man ohne zusätzliche Versorgungsspannung 0-100% 
erreichen.
Aus der früher von mir geposteten Schaltung könnte man den Lowpass am 
Eingang weglassen, da der Lüfter PWM auch kann.

Mein persönlicher Favorit wäre 3), aber 1) wäre die einfachste Schaltung 
für den TO, mit nur 3 Bauteilen - Basiswiderstand, Transistor, 
Kollektorwiderstand.

von Markus H. (haniham) Benutzerseite


Angehängte Dateien:

Lesenswert?

Also für Variante 1 sollte sogar die minimalbeschaltung reichen:

Die internen Widerstände von 2x47k begrenzen den Strom bei 10V sowieso 
auf maximal I = U/R = 10V /(2x47k) = 0,11mA

[Die 100% erreicht er ja bei PWM nur durch 100% Tastgrad]

[Ich hoffe, bloß dass der Ventillator keine 12V benötigt, um in PWM 
Modus zu kommen.]

Moment - Das RC-Netzwerk vor dem eingang glättet das PWM Signal zu einem 
analogen

von Conny G. (conny_g)


Lesenswert?

Markus H. schrieb:
> Also für Variante 1 sollte sogar die minimalbeschaltung reichen:
>
> Die internen Widerstände von 2x47k begrenzen den Strom bei 10V sowieso
> auf maximal I = U/R = 10V /(2x47k) = 0,11mA

Müsste man da nicht GND verbinden?
Wie soll das ohne GND gehen?

von Markus H. (haniham) Benutzerseite


Angehängte Dateien:

Lesenswert?

Also dann so?

Der FEt kann den Pin(genauso wie das Poti) bis auf +10V ziehen, oder 
vernachlässige ich etwas?

von Conny G. (conny_g)


Lesenswert?

Markus H. schrieb:
> Also dann so?
>
> Der FEt kann den Pin(genauso wie das Poti) bis auf +10V ziehen, oder
> vernachlässige ich etwas?

Raspi muss noch mit GND verbunden werden, sonst passiert da gar nix.

von Markus H. (haniham) Benutzerseite


Lesenswert?

Conny G. schrieb:
> Markus H. schrieb:
>> Also für Variante 1 sollte sogar die minimalbeschaltung reichen:
>>
>> Die internen Widerstände von 2x47k begrenzen den Strom bei 10V sowieso
>> auf maximal I = U/R = 10V /(2x47k) = 0,11mA
>
> Müsste man da nicht GND verbinden?
> Wie soll das ohne GND gehen?

Conny G. schrieb:
> Markus H. schrieb:
>> Also dann so?
>>
>> Der FEt kann den Pin(genauso wie das Poti) bis auf +10V ziehen, oder
>> vernachlässige ich etwas?
>
> Raspi muss noch mit GND verbunden werden, sonst passiert da gar nix.


Tatsächlich interessiert die Schaltung eigentlich nur die Spannung am 
Eingangspin  2 und GND 1
* Ist die Scahltung offen Ziehen die eingangswiderstände die Spannung 
zwischen 2 und 1 auf 0V -> der Motor steht
* Schließt der Mosfet, Transistor oder sonstiges Schaltelement die 
Verbindung zwischen 3 und 2 ist das im Prinzip wie ein fester draht im 
Anschlussbild oben links - Die Spannung zwischen 2 und 1 sind die 
maximalen 10V.
* Im zwischenwereich wechselt der FET mit der PWM Ansteuerung ständig 
zwischen leitend und offen - die spannung nimmt einen zwischenwert an, 
der proportional zum PWM Tastverhältnis ist

von Conny G. (conny_g)


Angehängte Dateien:

Lesenswert?

So meine ich. 3 Bauteile, 2 Widerstände, 1 Standard-Transistor.

von HildeK (Gast)


Lesenswert?

Conny G. schrieb:
> So meine ich. 3 Bauteile, 2 Widerstände, 1 Standard-Transistor.

LOL.
Das ist genau die Schaltung, die Moni Ka im Eröffnungspost bereits 
gefunden und zitiert hatte ...
Der Kreis schließt sich!

von Conny G. (conny_g)


Lesenswert?

HildeK schrieb:
> Conny G. schrieb:
>> So meine ich. 3 Bauteile, 2 Widerstände, 1 Standard-Transistor.
>
> LOL.
> Das ist genau die Schaltung, die Moni Ka im Eröffnungspost bereits
> gefunden und zitiert hatte ...
> Der Kreis schließt sich!

Oh, das habe ich gar nicht gemerkt. Aber dann passt es ja. :-)

Dann ist mir aber unklar, welche Fragen noch offen sind bei Moni K.
Einfacher als mit dieser Schaltung geht es ja nicht mehr und wenn Sie 
sich das nicht zutraut zusammenzulöten, dann müsste es jemand für sie 
löten oder wir müssen ein Raspi-Hat finden, dass das tut :-)

von Moni K. (no0b)


Lesenswert?

Hallo,

Ich war ein wenig bis sehr beschäftigt doch bedanken wollte ich mich 
trotzdem noch.
Die Bauteile sind Samstag angekommen und das Zusammenlöten scheint auch 
geklappt zu haben, ich verstehe die Elektronik zwar immer noch nicht 
aber der Lüfter lässt sich jetzt wie gewünscht steuern.

Vielen Dank!
Ihr habt mir sehr geholfen.

von Conny G. (conny_g)


Lesenswert?

Cool! Wie genau hast es denn jetzt gemacht?

von Moni K. (no0b)


Lesenswert?

Genauso wie du es mir vorschlugst also 3 Bauteilen, 2 Widerständen und 1 
Standard-Transistor :) Die Flankenerkennung war mir zu kompliziert und 
kommt vielleicht irgendwann, wenn mein Verständnis gewachsen sein 
sollte... Bis dahin ist mein RPi erst einmal durch eine USV abgesichert, 
fährt sich im Falle rechtzeitig runter, bei Strom wieder hoch und 
startet die Skripte dann per Autostart.

von Conny G. (conny_g)


Lesenswert?

Und möchtest noch eine Erklärung, was die Schaltung macht?

Die PWM an der Basis des Transistors schaltet ihn mal durch, mal nicht.
Dann hat der T niedrigen Widerstand (eingeschaltet, Basis „high“) oder 
hohen Widerstand (Basis auf 0V).
Der Widerstand von 1k an der Basis des Transistors stellt den Strom ein, 
der durch die Basis-Emitter-Strecke fliesst, hier 3.3 V / 1000 Ohm = 
3.3mA.
Dadurch wird gesteuert, welcher Strom auf der Kollektor-Emitter-Strecke 
fließen kann. Es gibt den Verstärkunsfaktor eines Transistors, beim 
BC337 ist der irgendwas um die 300. Also könnten auf der CE-Strecke bis 
zu 1000mA / 1A fließen. Ist hier irrelevant und 1A könnte der BC337 gar 
nicht, aber denn dafür ist der 10k Widerstand über dem Kollektor.
Der stellt sicher, dass eben kein höher Strom fließt, sondern nur 1mA. 
Sonst würden die 10V des Ventilators auch zu sehr belastet, die sind 
dafür gemacht viel Strom zu liefern.
Deshalb sind die 3.3mA an der Basis nur dafür da, dass der Transistor 
auch sicher ganz durchschaltet.

Wenn nun der Transistor durch die Raspberry PWM ein und ausschaltet, 
dann passiert zwischen den 10V, dem VENT_PWM-Eingang und Gnd folgendes:

Die 10k oben an den 10V und der Transistor bilden einen Spannungsteiler, 
der je nach Zustand des Transistors eine andere Spannung abbildet.
Der Ausgang VENT_PWM greift die Spannung dazwischen ab.

Ist der T aus, hat er einen sehr hohen Widerstand, sagen wir 1 MOhm, 
dann haben wir den größeren Teil der Spannung am Transistor, einen 
kleinen Teil am 10k Widerstand. 10k/1000k sind 1/100, also haben wir 99% 
da, also fast 10V.

Ist der T ein, hat er einen niedrigen Widerstand, sagen wir 100 Ohm, 
dann liegt der größte Teil der Spannung am 10k Widerstand. Der Teiler 
ist dann 10k/100, also 99% der Spannung über dem Abgriff, also fast 0V 
am VENT_PWM.

Also
PWM 0V,   T aus, VENT_PWM auf knapp 10V.
PWM 3.3V, T ein, VENT_PWM auf knapp. 0V.

Die Schaltung invertiert also das Signal. Das ist für die PWM an sich 
egal.
Wenn der Raspi aus ist, ist der T aus, läuft der Lüfter auf 100%.

: Bearbeitet durch User
von Moni K. (no0b)


Lesenswert?

Hui Conny sehr anschaulich erklärt. Dankeschön jetzt hab ichs verstanden 
:)

von Kritiker (Gast)


Lesenswert?

Conny G. schrieb:
> Es gibt den Verstärkunsfaktor eines Transistors, beim
> BC337 ist der irgendwas um die 300.

Es gibt vom BC337 drei Klassen, die sich durch die Verstärkung 
unterscheinden. Als Verstärkung für kleinere Ströme sollte man also für 
die Rechnung den niedrigsten Wert von 100 ansetzen, solange die Klasse 
nicht spezifiziert ist.

> Ist hier irrelevant und 1A könnte der BC337 gar nicht, aber
> denn dafür ist der 10k Widerstand über dem Kollektor.

Dafür braucht man keinen 800mA Transistor. Da tut es genauso ein BC547 
o.ä.

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.