Go Down

Topic: Lüftersteuerung mit DHT22,  (Read 310 times) previous topic - next topic

knopers1

Hallo zusammen...
Ich habe eine Lüftersteuerung gebaut, was über einen bestimmten Temperatur oder Feuchtigkeitswert den Lüfter EIN Schaltet.

Code: [Select]
    #include "DHT.h"
     
    #define DHTPIN 2     // what pin we're connected to
    #define DHTTYPE DHT22   // DHT 22  (AM2302)
    #define fan 4
     
    int maxHum = 60;
    int maxTemp = 40;
     
    DHT dht(DHTPIN, DHTTYPE);
     
    void setup() {
      pinMode(fan, OUTPUT);
      Serial.begin(9600);
      dht.begin();
    }
     
    void loop() {
      // Wait a few seconds between measurements.
      delay(2000);
     
      // Reading temperature or humidity takes about 250 milliseconds!
      // Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
      float h = dht.readHumidity();
      // Read temperature as Celsius
      float t = dht.readTemperature();
     
      // Check if any reads failed and exit early (to try again).
      if (isnan(h) || isnan(t)) {
        Serial.println("Failed to read from DHT sensor!");
        return;
      }
     
      if(h > maxHum || t > maxTemp) {
          digitalWrite(fan, HIGH);
      } else {
         digitalWrite(fan, LOW);
      }
     
      Serial.print("Humidity: ");
      Serial.print(h);
      Serial.print(" %\t");
      Serial.print("Temperature: ");
      Serial.print(t);
      Serial.println(" *C ");
     
    }


Ich hänge etwas bei der Wahl des Transistors fest :smiley-roll-blue: . Zur Zeit betreibe ich ein BC547 mit einem 12V DC 80 mA PaPst Lüfter. Wenn ich es richtig verstanden habe und das Datenblatt richtig lesen kann, kann ich mit dem Transistor 100mA schalten.

Der Papst Lüfter soll aber gegen den Sunon Lüfter ausgetauscht werden. Laut Angabe braucht das Teil 1.7 Watt bei 12V. Das ergibt nen Strom von ca. 140mA...

Ich wollte Euch fragen wonach bzw. welcher Parameter im Datenblatt des Transistors für die Schaltleistung zuständig ist? Ist es Ptot oder eher Pc ??? Nach welcher Angabe soll ich den Transistor auswählen? Uc und Ic ist eigentlich klar... Kann mir jemnad helfen?




HotSystems

Nimm einen BC337-40 dafür, das passt.
Wenn der Transistor komplett durchschaltet, dann ist in dem Fall Ptot eher unkritisch.
I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)
Gruß Dieter

knopers1

Danke Dir, trotzdem werde ich immer noch nicht schlau.

sehem wir mal den Datenblatt:
BC337-40


IC
    800 mA

Kollektor-Emitterspannung U(CEO)
    45 V

VCE Sättigung (max.)
    700 mV

Kollektor Reststrom I(CES)
    100 nA

Ptot
    625 mW



Ich möchte 1,7 Watt schalten. Das sind 1700 Milliwatt. Kannst Du mir sagen wonach Du die Transistoren aussuchst? Ich habe noch ein paar BC 107B rumliegen. Gehen die auch? Wenn Ptot uninteressant ist, könnte das Teil sogar 200 mA schalten. Das müßte reichen.. Irgendwie muß da noch die max. Schaltleistung angegeben sein. oder?

HotSystems

Danke Dir, trotzdem werde ich immer noch nicht schlau.
.....
Ich möchte 1,7 Watt schalten. Das sind 1700 Milliwatt. Kannst Du mir sagen wonach Du die Transistoren aussuchst? Ich habe noch ein paar BC 107B rumliegen. Gehen die auch? Wenn Ptot uninteressant ist, könnte das Teil sogar 200 mA schalten. Das müßte reichen.. Irgendwie muß da noch die max. Schaltleistung angegeben sein. oder?
Bei dem was du schalten willst, ist die Spannung (12 V) und der Strom (140mA) wichtig. Beides ist für den Transistor kein Problem. Auch der BC107B sollte das schaffen. Ptot ist deshalb unkritisch, da sich der Wert aus dem Strom und dem Spannungsabfall am durchgeschalteten Transistor berechnet. Der sollte sehr niedrig sein.
I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)
Gruß Dieter

gregorss

... oder?
Wenn ich einen Transistor für irgendeine Schaltung brauche (ich beherrsche Transistoren bislang nur als Schalter, wofür ich mich schämen könnte [es aber nicht tue]), nehme ich für alles bis 100 mA einen BC547 drüber einen BC139 und noch darüber ... äh ... pfff ...

Die Auswahl ist ziemlich einfach: Die Spannung Collektor-Emitter muss stimmen, dito der zu schaltende Strom. Man kann wahrscheinlich noch hundert andere Parameter beachten. Solange man nur schaltet, ist es simpel.

Gruß

Gregor
DU MUSST DEIN ÄNDERN LEBEN!

Serenifly

#5
Dec 12, 2017, 10:27 pm Last Edit: Dec 12, 2017, 10:31 pm by Serenifly
Ptot ist hauptsächlich relevant wenn man den Transistor im linearen Bereich betreibt. Du willst ihn als Schalter verwenden. Da fällt beim Stromfluss (und wenn ganz durchgeschaltet!) lediglich die Kollektor-Emitter-Sättigungsspannung (saturation voltage) ab. Wenn die maximale Spannung abfällt fließt kein Strom. Und wenn Strom fließt fällt nur die minimale Spannung ab.
Der verbotene Bereich der von der Ptot-Kurve markiert wird muss dabei lediglich schnell genug durchschritten werden.

Stichwort "Arbeitspunkt":
https://www.elektronik-kompendium.de/sites/slt/0208031.htm
https://www.elektronik-kompendium.de/sites/bau/1506161.htm

Die 1,7W gelten für deinen Lüfter. Nicht für den Transistor

guntherb

Danke Dir, trotzdem werde ich immer noch nicht schlau.

sehem wir mal den Datenblatt:
BC337-40
IC    800 mA
Kollektor-Emitterspannung U(CEO)    45 V
VCE Sättigung (max.)    700 mV
Kollektor Reststrom I(CES)    100 nA
Ptot    625 mW

Die Grenzwerte, die nie überschritten werden dürfen, findest du im Kapitel "Absolute Maximum Ratings"
z.B. die 45V UCE. Mehr Spannung: Kaputt.
oder Ic 800mA. Das sind die wichtigsten Kenngrößen für Schaltbetrieb. Und ein Transistor an einem Prozessor wird nahezu immer zum Schalten verwendet.

Die Leistung deiner Last ist irrelevant. Wichtig ist die Spannung, die am Transistor anliegt, wenn er sperrt (12V) und der Strom, der fliesst, wenn er leitet (140mA).

Beides ist unkritisch.

Um den Transistor richtig durchzusteuern nimmst du die Zeile mit VCE (sat). Hier steht z.B.
VCE (sat): Collector-Emitter Saturation Voltage; IC=500mA, IB=50mA: 0.7 V
daraus kannst du ablesen, dass die angegebene Sättigungsspannung erreicht wurde, in dem der Basisstrom 1/10tel des Kollektorstromes ist. In deinem Falle also
IB = 14mA, also ca. 330 Ohm Vorwiderstand

Um sicher zu gehen, kannst du noch die Verlustleistung im Transistor ausrechnen:
140mA * 0,7V = 0,098W, also ca 100mW. Das ist weit unterhalb der erlaubten 625mW, passt also auch.

Für Kleinsignaltransistoren im Schaltbetrieb reicht das. Mehr brauchst du nicht.



Grüße
Gunther

HotSystems

#7
Dec 13, 2017, 02:47 pm Last Edit: Dec 13, 2017, 02:47 pm by HotSystems
Um sicher zu gehen, kannst du noch die Verlustleistung im Transistor ausrechnen:
140mA * 0,7V = 0,098W, also ca 100mW. Das ist weit unterhalb der erlaubten 625mW, passt also auch.
Wie kommst du denn auf die 0,7 Volt ?
Wenn der Transistor "richtig" durchschaltet, das sollte da immer der fall sein, liegt die Spannung deutlich darunter.
Und damit auch die Verlustleistung.
I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)
Gruß Dieter

michael_x

Laut meinem Datenblatt ist für den BC107B ein ICmax von 100 mA angegeben.
(Nur bei Pulsbetrieb bis 200mA) Das wäre evtl. etwas knapp...

VCEsat (Ic=100mA IB=5mA) sind typ. 0.2V, da ist die Verlustleistung also auch kein Thema.

Der BC337 wäre sicher die bessere Wahl, auch wenn die guten alten BC107 mit ihrem Blechgehäuse viel solider aussehen ;)

postmaster-ino

Hi

Oder alternativ einen LL N-Fet wie den IRLZ34 (statt einem NPN).

MfG

knopers1

wooww, Danke für Euere Hilfe.

tatsache,
der BC107C kann laut Datenblatt nur 100mA. Damit ist er schon mal raus...

Komischerweise unter dem Link:
http://www.farnell.com/datasheets/1661949.pdf?_ga=2.100539806.1078417373.1513237787-353498588.1513237787

wird nur ein IC von 200mA angegeben. ICmax sehe ich leider nicht....


Um jetzt aber trotzdem etwas schlauer zu werden trage ich hier noch einmal zusammen, was ich von Euch gelernt habe...

- Collector-Emitter Voltage muß passen
- Ic muß passen

und der Transistor muß voll durchgeschaltet sein...
Laut Datenblatt zum BC107B findet man follgendes:

Base Emitter on Voltage VBE (on)  0,7V oder 0,77V

Kann jemand von Euch nochmal beschreiben, weshalb dort zwei Werte angegeben sind?

Wenn den Vorwiederstand für Base berechne, komme ich auf 423 Ohm und 9,2mA, für den Fall dass ich dabei 4,23 an dem Vorwiderstand vernichten möchte. (Ich gehe von 5V aus)

Bei 0,7V sind es schon 430 Ohm und 9,35 mA. Ich glaube wohl, dass der nächst großere erst bei 460 Ohm liegt.




michael_x

Richtig!
Quote
Bei 0,7V sind es schon 430 Ohm und 9,35 mA. Ich glaube wohl, dass der nächst großere erst bei 460 Ohm liegt.
Der Basis-Vorwiderstand ist eher unkritisch. Zu bedenken ist, dass der fließende Strom nicht zu groß und nicht zu klein ist:

Bei zu kleinem Basisstrom geht der Transistor nicht in Sättigung: Ic hängt nicht nur an der Last, sondern wird durch den Transistor selbst begrenzt, was diesen mehr aufheizt als nötig. Der Verstärkungsfaktor hFE ( ~100 Ic/IB) käme ins Spiel...

Bei zu großem Strom wird evtl. der Signalpin überlastet, oder der max. Basisstrom des Transistors wird überschritten.

Faustregel: Ein Basisstrom von 5 .. 20 mA  ist immer ok für den BC337 und einen Arduino. Wenn du mit 10 mA "rechnest", hast du viel Spiel in beide Richtungen.

Bei (5V - 0.7V) geht also alles zwischen 1k und 220 Ohm, und die Standardgrößen 390, 470, 560 sind perfekt.

Ob dann tatsächlich 4,2V oder 4,4V am Vorwiderstand abfallen, kannst du nachsehen, ist aber egal...

guntherb

#12
Dec 14, 2017, 02:00 pm Last Edit: Dec 14, 2017, 02:02 pm by guntherb
Wie kommst du denn auf die 0,7 Volt ?
Aus dem Datenblatt.
Mir ist klar, dass der Wert in der Praxis deutlich niedriger liegt, aber mit dem Datenblattwert ist man auf der sicheren Seite. Und es geht hier nicht darum den Transistor bis zur Grenze auszureizen.

wird nur ein IC von 200mA angegeben. ICmax sehe ich leider nicht....
ja, aber oben drüber steht "Absolute Maximum Ratings"
Der BC 107 ist uralt. Ich kann mir vorstellen, dass moderne Clone davon bei sonst gleichen Eigenschaften einfach mehr können. Da die ja nicht teuer sind: probiers einfach aus. Schlimmstenfalls geht der Transistor in Rauch auf.

Base Emitter on Voltage VBE (on)  0,7V oder 0,77V

Kann jemand von Euch nochmal beschreiben, weshalb dort zwei Werte angegeben sind?
Der eine für IC=2mA, der andere für IC = 10mA. Steht links daneben.

Wenn den Vorwiederstand für Base berechne, komme ich auf 423 Ohm und 9,2mA, für den Fall dass ich dabei 4,23 an dem Vorwiderstand vernichten möchte. (Ich gehe von 5V aus)

Bei 0,7V sind es schon 430 Ohm und 9,35 mA. Ich glaube wohl, dass der nächst großere erst bei 460 Ohm liegt.
Wie kommst du auf die 9,2mA?

Grob kann man sagen, ca. 1/10tel des gewünschten Kollektorstromes (in deinem Falle 140mA) als Basisstrom ist ok. Wenn du es also rechnen willst: Rv = (5V-0,7V)/14mA = 307 Ohm. Alles zwischen 270 Ohm und 470 Ohm ist ok, die Grenzen sind hier sehr weit.
Grüße
Gunther

gregorss

wooww, Danke für Euere Hilfe.
...
Wenn Du in das Thema Arduino und Elektronik einsteigst, wirst Du es hierzuforum schon einmal richtig nett finden. Ein Weihnachtsmarkt ist ein Dreck dagegen, unter Anderem weil es hier nicht nach Käsefondue und Glühwein stinkt.

Wenn Du etwas aus einem Datenblatt nicht herauslesen kannst, guck auch mal in andere. Die Datenblätter sind teilweise sehr unterschiedlich, je nachdem, wie alt sie sind oder von wem sie stammen.

Gruß

Gregor
DU MUSST DEIN ÄNDERN LEBEN!

Go Up