Arduino Ausgangsstrom verstärken

OP #5602614
Lesenswert?

Hallo *.*

Ich stehe wieder mal auf dem Schlauch. Ich möchte n LEDS am Ausgang 
Arduino Nano P10 dimmen. Hierzu habe ich folgende Schaltung gezeichnet, 
nur den relevanten Teil davon. Probleme macht der orange eingekreiste 
Bereich:

Ausgangslage:

- Wenn ich nur eine LED mit R direkt an P10 anschliesse, kann ich 
wunderbar dimmen (0 - 5V).

- Die LEDS müssen highside geschalten werden, da in der Anwendung die 
Masse fix an den Kathoden verbaut ist.

- Es sind bis zu 70 LEDS verbaut, wobei jede mit max 10mA betrieben 
wird.

- Die Quelle ist ein LM2940, max 1A, er ist sowohl die Quelle für den 
Arduino als auch für die LED Last.

Problem:

Mit einer LED klappt alles wunderbar (dimmen), nur nicht am Ausgang Q1. 
Problem dürfte sein, dass einer der Transistoren bereits voll austeuert, 
mangels korrekter Berechnung der Widerstände.

Hat jemand eine Idee, oder soll ich ein FET nehmen?

Q1 ist BD138, sorry die Bezeichnung fehlt leider.

Gruss, Philipp
Angehängte Dateien:
#5602622
Lesenswert?

4.7 Ohm ? Nicht doch eher 4k7 ?

600mA schalten wollen bei 5V mit 1k Basisvorwiderstand, also 5mA 
Basisstrom ? Das wird nichts, dein Transistor hat keine Stromverstärkung 
von 120, sondern eher von 20, braucht also 30mA Basisstrom also 130 Ohm 
Widerstand. Die 30mA schaltet der Q2 dann mit 4k7 Basisvorwiderstand.

Besser wäre nur eine Stromverstärkung von 10 zu fordern, also 68 Ohm an 
der Basis von Q1 und 680 Ohm vor Q2.
#5602635
Lesenswert?

Hallo,

wie willst Du aus dem AVR-Pin mit fast 1A Strom bekommen???
5V High-Pegel - 0,7V Ube für Q2 sind 4,3V, macht bei 4,7 Ohm fast 1A...

Dafür willst Du Q1 mit (5V - 0,7V Ube - 0,3V Uce von Q2) / 1k mit 4mA 
Basistrom für 600 mA Last schnell in die Sättigung bekommen?
600/1 = 100 * 3 (Übersteuerung) wäre eine Stromvertärkung von 300 für Q1 
bei dem Laststrom. Rechne eher mit 1/10tel davon, also 30.
Macht dann ca. 60mA nötigen Basisstrom und damit 4V/60mA ca. 56 Ohm oder 
weniger.
Die 4,7 Ohm auf 470 Ohm vergrößern.
Und dann über einen LogicLevel-MosFET für Q1 nachdenken.

Da hat jemand schneller gerechnet...

Gruß aus Berlin
Michael
OP #5602636
Lesenswert?

Ja, natürlich 4k7, habe den Schaltplan überarbeitet. Hab' hier leider 
nix anderes als das Fritzing Zeugs.

@Michael, danke, meinst Du das so, wie gezeichnet?

Ich muss dazu noch sagen, dass ich ganz bewusst nicht von einer 
Konstantstromregelung spreche, weil sowohl bei 10 oder 70 LEDS dieselbe 
Funktion erlangt werden soll, was das Dimmen anbelangt.

Beispiel:

Labornetzteil, begrenzt auf 1A. Ich kann n LEDS anschliessen und die 
über den Spannungsregler dimmen, solange die nicht (gesamt) mehr als 
1A ziehen. Der Strom stellt sich dabei an der LED ein. Ich hoffe ich 
habe mich verständlich ausgedrückt.

Diese Funktionalität möchte ich über der AR realisieren. Eine LED zieht 
dabei nie mehr als 10mA, wobei die mit max. 20mA betrieben werden könnte 
(weil in der Anwendung sind über 10mA zu hell).

@Amiga: Danke, es waren natürlich 4k7, wobei das auch falsch ist. Ich 
hoffe die labberkopische Überarbeitung passt besser.
Angehängte Dateien:
OP #5602652
Lesenswert?

Stefanus F. schrieb:
>> Mit einer LED klappt alles wunderbar (dimmen), nur nicht am Ausgang Q1.
>
> Was macht denn der Ausgang von Q1 anstelle des erwarteten Verhaltens?

Wie folgt:

Der Code dimmt probehalber im Loop von 0 - 255, resp, 0-5V am Ausgang. 
Mit einer LED geht das.

Am Ausgang von Q1 stelle ich folgendes fest: bei low = leuchtet nicht, 
irgenwann dazwischen steuert der voll durch, und die LED leuchtet fix. 
Also zusammengefasst die blinkt einfach nur.
Gast #5602660
Lesenswert?

68Ohm an die basis von Q1 und den R6 mit 220 Ohm direkt auf dessen 
BE-Strecke, also nach rechts rücken auf die andere Seite von R6.
480Hz oder 980 an D10? Wie schmal (in µs) ist der kürzeste Impuls? Der 
Transistor (beide!) muss sicher und schnell leiten UND sperren. Sperren 
in so kurzer Zeit ist meist das Problem, weil die Basis nicht schnell 
genug ausgeräumt bekommst. Stromverstärkung wurde ja schon genannt. Den 
4A-Typ verwenden. Da sinkt die Stromverstärkung bei 600mA nicht ganz so 
arg.
Evtl. geht ein BD438 besser...
Gast #5602665
Lesenswert?

Philipp G. schrieb:
>> Was macht denn der Ausgang von Q1 anstelle des erwarteten Verhaltens?

> Wie folgt:
> Der Code dimmt probehalber im Loop von 0 - 255, resp, 0-5V am Ausgang.
> Mit einer LED geht das.

Die LED hast du an einen anderen Ausgang als D10 angeschlossen, richtig?

> Am Ausgang von Q1 stelle ich folgendes fest: bei low = leuchtet nicht,
> irgenwann dazwischen steuert der voll durch, und die LED leuchtet fix.
> Also zusammengefasst die blinkt einfach nur.

Dann hast du mit Sicherheit den Ausgang nicht als PWM Pin konfiguriert. 
Digitale Ausgänge verhalten sich nämlich genau so, wenn man mit 
analogWrite darauf zugreift:

Auszug aus wiring_analog.c:
1
// Right now, PWM output only works on the pins with
2
// hardware support.  These are defined in the appropriate
3
// pins_*.c file.  For the rest of the pins, we default
4
// to digital output.
5
void analogWrite(uint8_t pin, int val)
6
{
7
  // We need to make sure the PWM output is enabled for those pins
8
  // that support it, as we turn it off when digitally reading or
9
  // writing with them.  Also, make sure the pin is in output mode
10
  // for consistenty with Wiring, which doesn't require a pinMode
11
  // call for the analog output pins.
12
  pinMode(pin, OUTPUT);
13
  if (val == 0)
14
  {
15
    digitalWrite(pin, LOW);
16
  }
17
  else if (val == 255)
18
  {
19
    digitalWrite(pin, HIGH);
20
  }
21
  else
22
  {
23
    ...
24
    PWM Timer benutzen
25
  }

Es wird Zeit dass du deinen Quelltext zeigst und auch einen Plan, wie du 
die LEDs angeschlossen hast.
OP #5602667
Lesenswert?

4ms oder 4000 us, der Dimmeffekt soll für das Auge angenehm erscheinen, 
als nix Wildes gefordert. Ich überarbeite dann mal den Plan.

@stefan:

Doch, die LED ist an P10 und funzt wunderbar:
1
void setup()
2
{
3
  // PIN declarations
4
  pinMode(iPwrPinOut, OUTPUT);
5

6

7
// Loop
8

9
void ChangeBrightness(int iValue)
10
{
11
if (iValue > iOldVal)
12
  {
13
  for (int i = iOldVal; i <= iValue; i++)
14
    {
15
    delay(20);
16
    analogWrite(iPwrPinOut, i);
17
    }
18
  }
19
  
20
if (iValue < iOldVal)
21
  {
22
  for (int i = iOldVal; i >= iValue; i--)
23
    {
24
    delay(20);
25
    analogWrite(iPwrPinOut, i);
26
    }
27
  }
28

29
iOldVal = iValue;
30
analogWrite(iPwrPinOut, iValue);
31
}
Gast #5602669
Lesenswert?

Stefanus F. schrieb:

Im Auszug aus wiring_analog.c fehlte ein relevanter Block:
1
// Right now, PWM output only works on the pins with
2
// hardware support.  These are defined in the appropriate
3
// pins_*.c file.  For the rest of the pins, we default
4
// to digital output.
5
void analogWrite(uint8_t pin, int val)
6
{
7
  // We need to make sure the PWM output is enabled for those pins
8
  // that support it, as we turn it off when digitally reading or
9
  // writing with them.  Also, make sure the pin is in output mode
10
  // for consistenty with Wiring, which doesn't require a pinMode
11
  // call for the analog output pins.
12
  pinMode(pin, OUTPUT);
13
  if (val == 0)
14
  {
15
    digitalWrite(pin, LOW);
16
  }
17
  else if (val == 255)
18
  {
19
    digitalWrite(pin, HIGH);
20
  }
21
  else
22
  {
23
      ... (Timer einstellen)
24

25
      case NOT_ON_TIMER:
26
      default:
27
        if (val < 128) {
28
          digitalWrite(pin, LOW);
29
        } else {
30
          digitalWrite(pin, HIGH);
31
        }
32
    }
33
  }
Gast #5602673
Lesenswert?

> Doch, die LED ist an P10 und funzt wunderbar:

Ich sehe in deinem Schaltplan kein P10.

Dein Quelltext ist unvollständig, ich kann nicht sehen, welche Werte 
iPwrPinOut und iValue haben.

Hast du das richtige Arduino Modell in der IDE eingestellt? Hast du eine 
Library eingebunden, die diesen Pin vielleicht anders verwendet?
OP #5602682
Lesenswert?

Stefanus F. schrieb:
>> Doch, die LED ist an P10 und funzt wunderbar:
>
> Ich sehe in deinem Schaltplan kein P10.
>
> Dein Quelltext ist unvollständig, ich kann nicht sehen, was iPwrPinOut
> und iValue ist.

P10 bezieht sich auf Pin 10 vom Ardu, korrekter müsste ich D10 
schreiben. Eine LED an D10 mit Vor R funzt wunderbar.
1
// declarations
2
#include <EEPROM.h>
3
const int iPwrPinOut = 10; 
4
const int iIlluMax = 255; //
5
const int iIlluMin = 1; //
6
const int iIncreaseStep = 10; //
7
const int iBrightnessIGNDefault = 120;
8
const int iBrightnessIlluDefault = 15;
9

10
int iBrightnessIGN = 0; // default brightness when ignition is on
11
int iBrightnessIllu = 0; // default brighness illuminiation switch is on
12
int iCurrentVal = 0;
13
int iOldVal = 0;
14

15
// setup
16
  // PIN declarations
17
  pinMode(iPwrPinOut, OUTPUT);
18
  pinMode(iSwitchUpPin, INPUT);
19
  pinMode(iSwitchDownPin, INPUT);
20
  pinMode(iIGNPinIN, INPUT);
21
  pinMode(iIlluPinIN, INPUT);
22
  
23
  // verify eeprom data
24
  iBrightnessIGN = EEPROM.read(0);
25
  if (iBrightnessIGN >= iIlluMax || iBrightnessIGN <= iIlluMin) // validate invalid values
26
  {
27
    iBrightnessIGN = iBrightnessIGNDefault;
28
  }
29
  
30
  iBrightnessIllu = EEPROM.read(1);
31
  if (iBrightnessIllu >= iIlluMax || iBrightnessIllu <= iIlluMin) // validate invalid values
32
  {
33
    iBrightnessIllu = iBrightnessIlluDefault;
34
  }
35

36
// Loop
37

38
  if (bIlluON == true)
39
  {
40
      iCurrentVal = iBrightnessIllu;
41
    ChangeBrightness(iCurrentVal);
42
  }  
43
  else

@axi: Stimmt das so?
Angehängte Dateien:
Gast #5602685
Lesenswert?

https://forum.arduino.cc/index.php?topic=410287.0
PIN10 sollte aber lt. Recherche schon ein PWM-Pin sein.
Timer1 am Uno. Sollte also gehen hier.

Noch nen anderen Transistor rausgesucht.
https://www.mouser.de/ProductDetail/ON-Semiconductor-Fairchild/KSB1151YS?qs=sGAEpiMZZMshyDBzk1%2fWi6kfu%252bQlsU6SqXBhbm8Z5mo%3d

Infos so generell hierzu ua.
https://www.electronics-tutorials.ws/transistor/tran_4.html
Gast #5602693
Lesenswert?

Nochmal frage ich nicht nach dem GANZEN Quelltext. Mit diesen Fragmenten 
ist nur eine Aussage möglich: Es sollte funktionieren.

Tut es aber nicht, also ist gezieltes Vorgehen angesagt.

Reduziere dein Programm auf ein Minimum, womit das Problem 
nachvollziehbar und messbar wird.
1
void setup()
2
{
3
    pinMode(10, OUTPUT);
4
    digitalWrite(10, HIGH);
5
}
6

7
void loop()
8
{
9
}

Und jetzt misst du die Spannungen an D10, am Kollektor von Q2 und am 
Kollektor von Q1.
1
void setup()
2
{
3
    pinMode(10, OUTPUT);
4
    digitalWrite(10, LOW);
5
}
6

7
void loop()
8
{
9
}

Messe erneut die Spannungen an D10, am Kollektor von Q2 und am Kollektor 
von Q1.

Teile uns die Messergebnisse mit.
OP #5602694
Lesenswert?

ÄXl schrieb:
> der, in der Nachricht eingebette, Quellcode lässt sich nicht
> kompilieren.
> Sorry - ich bin da überfragt.

Das ist korrekt, funktionieren tut der wunderbar aber wie gesagt die 
Transistor Beschaltung nicht.

Ich habe es mal vereinfacht damit er sich kompilieren lässt:
1
const int iPwrPinOut = 10; 
2

3
// =============================================================
4
// Setup
5
void setup()
6
{
7
  // PIN declarations
8
  pinMode(iPwrPinOut, OUTPUT);
9
}
10

11
// =============================================================
12
// Main Loop
13
void loop()
14
{
15
  for (int i = 0; i <= 255; i++)
16
    {
17
    delay(20);
18
    analogWrite(iPwrPinOut, i);
19
    }
20
}

Das geht mit einer LED an Ausgang D10. Funktion: Dimmen.

Nun möchte ich das mit 10 - 70 LEDs realisieren. Stimmt der Plan?
Gast #5602697
Lesenswert?

> Das ist korrekt, funktionieren tut der wunderbar aber wie
> gesagt die Transistor Beschaltung nicht.

Das kann nur ein Irrtum sein. Die "analogen" Ausgänge liefern 
abwechselnd pulsieren High und Low. Demnach geht die LED an und aus. Das 
hast du auch bestätigt. Also funktioniert die Schaltung.

> Stimmt der Plan?

Das habe ich Dir bereits bestätigt. Nochmal: Der Schaltplan ist in 
Ordnung.

Der Fehler muss im Programm stecken.
OP #5602703
Lesenswert?

@Stefan: Eine grüne LED mit Vorwiderstand funktioniert wunderbar an D10. 
Aber meine Schaltung ist wohl grundauf falsch dimensioniert, bitte lies 
hierzu die beiden Beiträge von den Michaels:

>600mA schalten wollen bei 5V mit 1k Basisvorwiderstand, also 5mA
>Basisstrom ? Das wird nichts, dein Transistor hat keine Stromverstärkung
>von 120, sondern eher von 20, braucht also 30mA Basisstrom also 130 Ohm
Gast #5602708
Lesenswert?

Du willst also weder den Quelltext noch die Schaltung untersuchen, 
sondern lieber diskutieren.

Ich verrate Dir was: Dieses Problem kann man nicht weg diskutieren. Ich 
bin raus. Bei so wenig Kooperation kann ich Dir nicht helfen.

Was traurig ist, denn diese Schaltung und das Programm sind Kinderkram.
Gast #5602714
Lesenswert?

Philipp G. schrieb:
> Der Code dimmt probehalber im Loop von 0 - 255, resp, 0-5V am Ausgang.
> Mit einer LED geht das.

Der Ausgang vom Arduino Nano liefert nie ein Analogsignal, auch wenn 
die Funktion analogwrite() heißt. Das Signal ist immer ein PWM-Signal, 
also ein Digitalsignal (entweder 0V oder 5V), mit einstellbarem 
Tastverhältnis.
#5602733
Lesenswert?

Hallo,

Wolfgang schrieb:
> Was soll dieser niederohmige R6?
> BJTs werden mit Strom gesteuert und der kann nicht fließen, wenn Q2
> sperrt.

er verküzt die Ausräumzeit der Basis und beschleunigt damit das 
Abschalten.
Man kann auch noch einen Kondensator parallel zu r5 schalten um die 
Einschaltzeit zu verkürzen.

Ob es bei der genutzen PWM-Frequenz Sinn macht?

genauso macht R7 durchaus Sinn obwohl der AVR ja aktiv Low/High 
schaltet. Beim Reset und damit tristate der Pins verhindert er aber 
Dreckeffekte durch Einsreuungen.

Gruß aus Berlin
Michael
Beitrag #5602741 wurde von einem Moderator gelöscht.
OP #5602761
Lesenswert?

Stefanus F. schrieb:
> Du willst also weder den Quelltext noch die Schaltung untersuchen,
> sondern lieber diskutieren.

@Stefan:

Grundsätzlich, ich schätze und respektiere Deine Meinung sehr, du bist 
immer sehr hilfsbereit. Ich habe oben einen kleinen Code geliefert mit 
dem sich das Problem durchaus reproduzieren lässt. Du hast aber insofern 
Recht, dass ich Vorbehalte habe den gesamten Quelltext zu posten. Dies 
aus dem Grund, dass dieser fast 400 Zeilen umfasst, und noch etwas 
besser strukturiert werden muss. Es fehlen zum Beispiel Entprell 
Routinen an den Tastern, und es wird viel mit delays gearbeitet. Die LED 
an D10 funktioniert aber durchaus. Ich wollte halt vermeiden, dass dann 
seitenlang am Coding diskutiert wird und das eigentliche Problem, die 
Dimensionierung der Widerstände, vergessen geht. Dies mitunter aus dem 
Grund, dass ich offensichtlich das nicht auf die Reihe bekomme, das 
Coding schon. Dennoch Danke Stefan!

@Achdugrüneneune: Auch dir vielen Dank.

Ausblick:

Ich realisiere heute Abend die Schaltung von @grüneneune und berichte.

bis dann, Philipp

edit:

Der_Sauerläner schrieb im Beitrag #5602741:
> Wenn du ein Schematik Programm brauchst um schaltpläne zu zeichnen oder
> gar Layouts...dann nutze KiCAD...ist kostenlos, Open Source...und wird
> ständig gepflegt...besser als das mieserable Fritzung.

Ich weiss, habe ich zuhause. Ich darf (hier) leider nix installieren :) 
Daher der dilettantische Schaltplan.
Gast #5602764
Lesenswert?

Nach lesen dieses Threads fallen mir 2 Dinge auf:

1:
Das immer wieder auftretende  pinMode(iPwrPinOut, OUTPUT) ist flüssiger 
als Wasser.
Überflüssig.


2.
Statt des 2 Stufigen bipolaren Treibers, würde ich einen FET einsetzen.
z.B. einen IRLML9301 oder IRLML2244
Weil gerade auf Halde, es gibt sicherlich noch mehr brauchbare Typen.


--

Philipp G. schrieb:
> - Es sind bis zu 70 LEDS verbaut, wobei jede mit max 10mA betrieben
> wird.
Wie werden die 10mA gewährleistet?
#5602949
Lesenswert?

Philipp G. schrieb:
> Stimmt das so?

R6 muss keine 220R habenn.

Ach Du grüne Neune schrieb:
> So sollte es eigentlich funktionieren, auch bei einer PWM-Frequenz bis
> zu 10kHz. Noch niederohmiger brauchen die Widerstände nicht sein!

Sicher nicht, sie sind schon viel zu niederohmig.

Wolfgang schrieb:
> Was soll dieser niederohmige R6?

Tja, man will sich gegenseitig überbieten,
und keine Sau rechnet hier korrekt.

Michael U. schrieb:
> er verküzt die Ausräumzeit der Basis und beschleunigt damit das
> Abschalten.
> Ob es bei der genutzen PWM-Frequenz Sinn macht?

Natürlich nicht.

> genauso macht R7 durchaus Sinn

Nö.
OP #5602956
Lesenswert?

Michael B. schrieb:
> Ach Du grüne Neune schrieb:
>> So sollte es eigentlich funktionieren, auch bei einer PWM-Frequenz bis
>> zu 10kHz. Noch niederohmiger brauchen die Widerstände nicht sein!
>
> Sicher nicht, sie sind schon viel zu niederohmig.

Jetzt geht's gegen Abend zu und Du prophezeist mir dass die grüneneune 
Schaltung doch falsch ist? Wenn Du bessere Werte hast immer gerne.
Gast #5602975
Lesenswert?

Leute, ihr diskutiert hier marginale Verbesserungen, die am Problem des 
TO völlig vorbei gehen.

Seine Last geht berets AN und AUS.

Nur nicht dann, wann er es will (keine PWM erkennbar). Das könnt ihr 
nicht mit Widerständen und Kondensatoren kurieren!
OP #5602987
Lesenswert?

Stefanus F. schrieb:
> Nur nicht dann, wann er es will (keine PWM erkennbar). Das könnt ihr
> nicht mit Widerständen und Kondensatoren kurieren!

pff. Ich versteh' langsam nix mehr.

Stefan D10 macht PWM 490Hz.

Ich probier dann halt einfach beide Schaltungen, grüne neune und die vom 
Laberkopp.

Schade ist halt dass ich nicht beurteilen kann welche davon besser 
geeignet ist.
Gast #5603002
Lesenswert?

Stefanus F. schrieb:
>> Nur nicht dann, wann er es will (keine PWM erkennbar). Das könnt ihr
>> nicht mit Widerständen und Kondensatoren kurieren!

Philipp G. schrieb:
> pff. Ich versteh' langsam nix mehr.
> D10 macht PWM 490Hz.

Genau das bezweifle ich.

Stefanus F. schrieb:
> Was macht denn der Ausgang von Q1 anstelle des erwarteten Verhaltens?

Philipp G. schrieb:
> Am Ausgang von Q1 stelle ich folgendes fest:
> bei low = leuchtet nicht, irgenwann dazwischen steuert
> der voll durch, und die LED leuchtet fix.
> Also zusammengefasst die blinkt einfach nur.

Wenn sie blinken kann, dann kann sie auch PWM darstellen.

Was ist bei den Messungen gemäß Beitrag #5602693 heraus gekommen?
OP #5603008
Lesenswert?

Nu wie gesagt stefan, bin hier immer noch auf der Ar...t

Also ich mach das jetzt so:

Die Pläne von grüneneune und Michael drucke ich mal aus und realisiere 
beide als Drahtigel.

Und für dich stefan mache ich einen mini dimming code (siehe oben) plus 
ein YouTube Vid. davon.

Das halt alles frühestens um 19:00.

Bis dann.
Gast #5603022
Lesenswert?

Philipp G. schrieb:
> Nu wie gesagt stefan, bin hier immer noch auf der Ar...t

Ach so, das habe in der tat vergessen. Ich habe heute Urlaub.

> Und für dich stefan mache ich einen mini dimming code (siehe oben) plus
> ein YouTube Vid. davon.

Eigentlich interessieren mich zuerst die Spannungspegel bei statischen 
High und Low Signalen. Denn wenn die schon nicht funktionieren, ist 
alles Weitere Zeitverschwendung.
OP #5603058
Lesenswert?

Arduino Fanboy D. schrieb:
> Philipp G. schrieb:
>> Schade ist halt dass ich nicht beurteilen kann welche davon besser
>> geeignet ist.
>
> Kannst du dir das nicht selber ausrechnen?
> Was fehlt dir?

Wenn ich das hier lese:

Michael B. schrieb:
> Tja, man will sich gegenseitig überbieten,
> und keine Sau rechnet hier korrekt.
>
> Michael U. schrieb:
>> er verküzt die Ausräumzeit der Basis und beschleunigt damit das
>> Abschalten.
>> Ob es bei der genutzen PWM-Frequenz Sinn macht?
>
> Natürlich nicht.
>
>> genauso macht R7 durchaus Sinn
>
> Nö.

scheinen sich die beiden Herren ja auch nicht einig zu sein, und in 
Sachen Analogtechnik räume ich mal beiden eine recht hohe Fachkompetenz 
ein.

Ach was schrieb:
> Das ist egal. Die taugen beide nichts.

Dieser User scheint hingegen eine klare Meinung zu haben.

Also du siehst, dann muss ich gar nicht anfangen.
#5603228
Lesenswert?

So.

Ich habe die Labberkopp Schaltung als Drahtigel direkt an den Ardu 
gehängt, für das sie nicht funktioniert geht sie ganz gut;)

Beschreibung:
Ich habe zwei Relais zwecks galvanischer Trennung mit denen ich die LEDS 
in unterschiedlichen Helligkeitsstufen ansteuere. Beim Wechsel wird je 
nach dem auf ein anderes Level gedimmt.

Vid: Testled hängt am BD138, el. Last mit 500mA auch daran. Wenn ich die 
Last auf 100mA drossle, ist die Helligkeit dann (natürlich) anders. Das 
macht in meinem Fall aber nichts da ich eh die Helligkeit über die 
Taster regle.

@stefan: gucksch du vid. Die LED IST an D10 dran.

https://www.youtube.com/watch?v=3Z29kw4Iq9k
OP #5604000
Lesenswert?

ÄXl schrieb:
>> Ich habe zwei Relais zwecks galvanischer Trennung mit denen ich die LEDS
>> in unterschiedlichen Helligkeitsstufen ansteuere. Beim Wechsel wird je
>> nach dem auf ein anderes Level gedimmt.
>
> Das verwirrt mich.

Es handelt sich um zwei Signale welche ich unbedingt getrennt haben 
möchte vom Rest der Schaltung. Sowohl untereinander, also auch gegen das 
Board zu.

Weiss jemand warum das PWM Signal auf dem DSO dermassen 'suboptimal' 
aussieht?
#5604009
Lesenswert?

Philipp G. schrieb:
> Es handelt sich um zwei Signale welche ich unbedingt getrennt haben
> möchte vom Rest der Schaltung. Sowohl untereinander, also auch gegen das
> Board zu.

Schaltungen in Prosa, weil man zu faul ist, einen Schaltplan zu 
zeichnen, sind immer Mist.


Philipp G. schrieb:
> Weiss jemand warum das PWM Signal auf dem DSO dermassen 'suboptimal'
> aussieht?

Weiss jemand, warum du glaubst, daß die Leute hier deinen DSP Bildschirm 
sehen können, obwohl du sogar zu faul bist ein Photo zu machen ?
OP #5604026
Lesenswert?

Lothar M. schrieb:
> Philipp G. schrieb:
>> Weiss jemand warum das PWM Signal auf dem DSO dermassen 'suboptimal'
>> aussieht?
> Ich würde sagen: weil du keinen (ohmschen) Lastwiderstand oder einen zu
> hochohmigen Lastwiderstand angeschlossen hast.

Die Last besteht aus der elektronischen Last (ja labberkopp auch die 
sieht man im Video), sowie der LED mit Vorwiderstand.
Gast #5604041
Lesenswert?

Das Signal sieht wirklich nicht so gut aus. Bis auf den Peak werden 
zumindest schon mal die schrägen Flanken durch deine beiden (NPN und 
PNP) hintereinander geschalteten Emitterschaltungen begradigt, wenn du 
sie auch tatsächlich mal dahinterschalten würdest und oszilloskopierst.
Angehängte Dateien:
OP #5604048
Lesenswert?

Ach Du grüne Neune schrieb:
> Das Signal sieht wirklich nicht so gut aus. Bis auf den Peak werden
> zumindest schon mal die schrägen Flanken durch deine beiden (NPN und
> PNP) hintereinander geschalteten Emitterschaltungen begradigt, wenn du
> sie auch tatsächlich mal dahinterschalten würdest und oszilloskopierst.

Woher könnte dieser single Peak neben dem abgeschrägten Rechteck 
zustande kommen? Soll ich dem Ausgang einen fetten C gönnen?

Philipp G. schrieb:
> wenn du
>> sie auch tatsächlich mal dahinterschalten würdest und oszilloskopierst.

Den Satz verstehe ich jetzt grad nicht.
#5604068
Lesenswert?

Philipp G. schrieb:
> Woher könnte dieser single Peak neben dem abgeschrägten Rechteck
> zustande kommen? Soll ich dem Ausgang einen fetten C gönnen?

NEIN, natürlich nicht, willst du bei jedem Umschalten einen Kurzschluss 
gegen den nicht/schon geladenen Kondensator haben ?

Das PWM Signal sieht ok aus bis auf den Peak. Der könnte aus falscher 
Programmierung stammen (kurz den Ausgang als Eingang und wieder zurück 
oder so) oder er ist eine Einstreuung aus einem anderen Kanál in die 
Masseleitung.

Philipp G. schrieb:
> Die Last besteht aus der elektronischen Last (ja labberkopp auch die
> sieht man im Video)

Videos ? Nein, ich bin nicht damit aufgewachsen alles in Form von 
bewegten Bildern sehen zu müssen, dann auch noch hochkant verwackelt 
unterbelichtet, für mich ein Paradebeispiel der Volksverdummung.

> sowie der LED mit Vorwiderstand.

oder es ist die elektronische Last, solche sind bekannt für jede Art von 
Signalverzerrungen.
Gast #5604107
Lesenswert?

Pack an den Ausgang einen 10 Ohm Widerstand als Last und schliesse dort 
parallel deinen tastkopf an. Die Spitze an den 10R/Kollektor und diese 
kleine Masseklemme an die andere Seite vom Widerstand, der auch an Masse 
liegt. Dieses Signal interessiert dich. kein anderes. Deine 
Elektronische Last ist hier fehl am Platze.
Sind die Widerstände zwischen Basis-Emitter der beiden Transistoren 
bestückt? (die, die man ja nicht braucht, weil das ja alles sooo einfach 
ist?) An analogWrite() sollte es nicht liegen. dein delay(20) sorgt 
dafür, das mindestens 20msekunden lang das gleiche Signal ausgegeben 
wird. Wenn beim neusetzen des Tastverhältnisses ein Glicht auftritt, 
dann nur alle (ca.20millisekunden, aber nicht in jeder Periode)
Nimm Dir bitte ein Blatt und einen Stift und male uns auf, was Du dort 
KONKRET anstellst. Die Jungs, die sich auskennen, sind idR.. keine 25 
mehr und allesamt keine Fans der neuartigen Möglichkeiten, seine Werke 
zu präsentieren.
Kariertes Blatt, weicher Bleistift, im Raster aufmalen und n Bild 
machen.
OP #5604133
Lesenswert?

ÄXl schrieb:
> Sind die Widerstände zwischen Basis-Emitter der beiden Transistoren
> bestückt? (die, die man ja nicht braucht, weil das ja alles sooo einfach
> ist?) An analogWrite() sollte es nicht liegen. dein delay(20) sorgt
> dafür, das mindestens 20msekunden lang das gleiche Signal ausgegeben
> wird. Wenn beim neusetzen des Tastverhältnisses ein Glicht auftritt,
> dann nur alle (ca.20millisekunden, aber nicht in jeder Periode)

Ich sagte doch bereits, ich habe die lapperkopische Schaltung aufgebaut. 
Da wahrt ihr ja euch nicht ganz einig, also die da, als Anhang. Er 
scheint ja heute einen schlechten Tag zu haben, aber seine Rechnerei 
scheint ja stimmen.

Es ist genau so bestückt wie Du im Anhang siehst, 1:1. Somit Nein, der 
1K R zwischen B E bei Q2 ist nicht bestückt.
Angehängte Dateien:
Gast #5604249
Lesenswert?

Die schrägen Flanken kommen vom BD138.
Die Ansteuerung ist zu hochohmig. Wurde aber oben schonmal gesagt.
Und ja: man muss das ausrechnen. Aber dann richtig...
Anschliessend hat man die überschlägigen Größen und kann sich daran 
machen, Werte einzusetzen, die es auch zu kaufen gibt.
Nochmal, die Stromverstärkung des BD138 bricht auf lächerliche Werte 
zusammen, wenn dort "ordentlich" Strom gezogen wird.
Brauchst Du denn die vollen 5Volt am Ausgang? Deine LEDs bekommen doch 
sowieso einen Vorwiderstand. Dann nimm einen NPN in der Ausgangsstufe 
und beschalte ihn als Spannungsfolger (Kollektorschaltung). Dann 
bekommen deine LEDs nur noch 4.x Volt, aber der Ausgangsstransistor ist 
nicht in der Sättigung.
Da allerdings Betriebsspannung der LEDs und deines Arduinos beide gleich 
groß sind, kannst Du auch (ohne etwas beachten zu müssen) einen P-Kanal 
FET einsetzen. Source an Plus, Drain an deine LEDs und Gate an D10.
Angehängte Dateien:
Gast #5604300
Lesenswert?

ÄXl schrieb:
> Da allerdings Betriebsspannung der LEDs und deines Arduinos beide gleich
> groß sind, kannst Du auch (ohne etwas beachten zu müssen) einen P-Kanal
> FET einsetzen. Source an Plus, Drain an deine LEDs und Gate an D10.
Habe ich schon probiert....
Scheint nicht gewünscht zu sein.

Ist vielleicht zu einfach?
Gast #5604317
Lesenswert?

ÄXl schrieb:
> Wird denn was warm?

Genau. Das darf natürlich nicht passieren. Die Schaltung enthält auch 
die wichtigen B-E Widerstände. Wobei ich den R3 mit 10R etwas 
hochohmiger machen würde (z.B. 100R), es fallen jetzt gerade mal knapp 
die 0,6 Volt für Q3 ab. Ansonsten würde ich es genauso machen.  :)

Wenn das alles zu knapp wird, kann man auch für Q3 einen BD244 nehmen.
OP #5604347
Lesenswert?

ÄXl schrieb:
> Brauchst Du denn die vollen 5Volt am Ausgang? Deine LEDs bekommen doch
> sowieso einen Vorwiderstand. Dann nimm einen NPN in der Ausgangsstufe

Nein, maximum 4.0V

ÄXl schrieb:
> Wird denn was warm? Sonst lass es halt so...

Als ich kurz bei der el. Last 500mA eingegeben habe, wurde der BD138 
natürlich warm, aber noch 'anfassbar' warm, also so 50°C, aber dem werde 
ich eh einen Kühlkörper verpassen.

ÄXl schrieb:
> Da allerdings Betriebsspannung der LEDs und deines Arduinos beide gleich
> groß sind, kannst Du auch (ohne etwas beachten zu müssen) einen P-Kanal
> FET einsetzen. Source an Plus, Drain an deine LEDs und Gate an D10.

Wenn das denn besser wäre? Ich versuche es heute abend mal.

edit: Ich habe nur den  SI2305 zuhause:

D10 über R220 an Gate, Drain ist out, Source an +5V. Und zwischen +5V 
und Gate noch einen 10K R, geht das?
#5604352
Lesenswert?

ÄXl schrieb:
> Die schrägen Flanken kommen vom BD138.
> Die Ansteuerung ist zu hochohmig. Wurde aber oben schonmal gesagt.

Oben wurde gsagt, daß das schon so passt.

Die Flanken sind ausreichend.

Steilere Flanken, wie du sie mit Gewalt erwingst, erhöhen nur 
sinnloserweise die Störabstrahlung der Schaltung hin zu höheren
Frequenzen und reissen die EMV Grenzwerte.

Es ist nicht immer klug, das Maximum rauszuholen. Oftmals ist
ausreichend auch einfach genug.
#5661902
Lesenswert?

Praxistest, ich muss das hier noch einmal hochholen. Aktueller 
Schaltplan liegt bei. Schaltung ist aufgebaut und funktioniert.

Ausgangslage:

80 LED beleuchtete Schalter habe ich vor sieben Jahren mit einer 
einfachen analogen Steuerung betrieben. Hierfür habe ich damals zu 
Linearregler gegriffen.

Soll:

Vor wenigen Wochen habe ich die Schaltung komplett neu mit einem Arduino 
Nano auf Atmega 328 Basis neu gemacht, damit ich die LEDs nach Wunsch 
auf Knopfdruck in der Helligkeit regeln kann. Die 80 LEDs werden neu mit 
PWM gedimmt. Der Schaltplan liegt als Anhang bei. Am Ausgang sind 
jeweils zwei LEDs in serie geschalten, und das 40 mal parallel.

Fehlerbeobachtung:

Sieben Jahre lang hat das ganze mit einem einfachen Linearregler 
funktioniert. Mit der neuen Schaltung leuchten 76 LEDs mit derselben 
Intensität, 2 davon flackern dunkel und zwei weitere leuchten gar nicht.

Jemand eine Idee? Hänge ich 4.4V an den Strang (2.2V pro gelber LED) 
leuchten natürlich alle.

@Aexl/Michael: Der BUD138 hat einen Kühlkörper spendiert bekommen. 
Selbst bei 1.5A Last bei der kalt, soweit so gut. In der Praxis bleibt 
die Last unter 600mA.
Angehängte Dateien:
Gast #5661957
Lesenswert?

Philipp G. schrieb:
> Die 80 LEDs werden neu mit
> PWM gedimmt. Der Schaltplan liegt als Anhang bei. Am Ausgang sind
> jeweils zwei LEDs in serie geschalten, und das 40 mal parallel.


Ich wiederhole meine Frage nochmal:

> Philipp G. schrieb:
>> - Es sind bis zu 70 LEDS verbaut, wobei jede mit max 10mA betrieben
>> wird.
> Wie werden die 10mA gewährleistet?

?

Philipp G. schrieb:
> 2 davon flackern dunkel und zwei weitere leuchten gar nicht.

Schon mal drüber nachgedacht, dass da was kaputt oder falsch 
angeschlossen ist?
#5662083
Lesenswert?

Arduino Fanboy D. schrieb:
>> Philipp G. schrieb:
>>> - Es sind bis zu 70 LEDS verbaut, wobei jede mit max 10mA betrieben
>>> wird.
>> Wie werden die 10mA gewährleistet?
>
> ?

Steht im Schaltplan oben, über den BUD138.

Arduino Fanboy D. schrieb:
> Philipp G. schrieb:
>> 2 davon flackern dunkel und zwei weitere leuchten gar nicht.
>
> Schon mal drüber nachgedacht, dass da was kaputt oder falsch
> angeschlossen ist?

Nicht möglich, mit Labornetzteil leuchten alle 80 konstant. Vielleicht 
haben zwei davon einfach Altersschwäche im PWM Betrieb, was sich dann 
natürlich auf vier auswirkt.
Gast #5662090
Lesenswert?

Deine Beschreibung lässt erahnen, dass die parallel geschalteten LEDs 
nicht gut selektiert wurden. Wenn das so ist, dann wirst du sehr bald 
noch weitere Probleme bekommen.

Möglicherweise fällt am Transistor zu viel Spannung ab, so das nicht 
alle LEDs leuchten können. Ich hätte für so viel Strom einen MOSFET 
verwendet und den Minus-Pol geschaltet, zum Beispiel mit einem IRLU024N.

>  mit Labornetzteil leuchten alle 80 konstant

Auch jetzt noch? Drehe ma die Spannung langsam runter, ich gehe davon 
aus, dann dann genau diese LEDs zuerst aus gehen. Wenn die LEDs gut 
selektiert sing, dann gehen sie alle gleichzeitig aus.

Eventuell hilft es, den Plus-Pol am linken Ende und den Minus-Pol am 
rechten Ende in die Lichterkette einzuspeisen, anstatt beides am selben 
Ende.
#5662109
Lesenswert?

Stefanus F. schrieb:
> Auch jetzt noch? Drehe ma die Spannung langsam runter, ich gehe davon
> aus, dann dann genau diese LEDs zuerst aus gehen. Wenn die LEDs gut
> selektiert sing, dann gehen sie alle gleichzeitig aus.
>
> Eventuell hilft es, den Plus-Pol am linken Ende und den Minus-Pol am
> rechten Ende in die Lichterkette einzuspeisen, anstatt beides am selben
> Ende.

Gute Idee Stefan, das versuche ich.

Arduino Fanboy D. schrieb:
> Ich sehe weder eine Strombegrenzung auf 10mA, noch einen BUD138.

BD138, hast Recht. Der Strom wird nicht aktiv begrenzt, nur 
steuertechnisch so klein gehalten, dass dieser nie höher wird, also 
quasi in der Software.
Gast #5662112
Lesenswert?

Philipp G. schrieb:
> Der Strom wird nicht aktiv begrenzt, nur
> steuertechnisch so klein gehalten, dass dieser nie höher wird, also
> quasi in der Software.

Dir ist aber schon klar, dass dein Arduino Board keine analoge Spannung 
ausgeben kann, sondern 100% Spannung pulsieren lässt? Die LED's bekommen 
den maximal möglichen Strom aufgebrummt, vertragen sie das?
Gast #5662121
Lesenswert?

Philipp G. schrieb:
> Der Strom wird nicht aktiv begrenzt, nur
> steuertechnisch so klein gehalten, dass dieser nie höher wird, also
> quasi in der Software.

Ach!
Also wieder: "Vorwiderstand braucht man nicht!"
(dachte ich mich doch schon)

Die 10mA sind als ein reines Fantasiegebilde!


Das ist problematisch!

Viel besser:
Jeder LED Strang, also die 2 in Reihe, brauchen einen Vorwiderstand.
Gast #5662140
Lesenswert?

Philipp G. schrieb:
> Das Labornetzteil sagt aber was anderes. Warum?

Das Labornetzteil sagt gar nichts. Es misst höchstens etwas, und wer 
viel misst, der misst viel Misst.

Hinterfrage also: Was genau misst das Instrument in dem Netzteil 
eigentlich? Wir reden hier von PWM mit vermutlich tausend Impulsen pro 
Sekunde. Kann dieses Instrument dieses Signal überhaupt sinnvoll 
darstellen? Wozu sind in digitalen Schaltungen Oszilloskope gut?
#5662207
Lesenswert?

Stefanus F. schrieb:
> Hinterfrage also: Was genau misst das Instrument in dem Netzteil
> eigentlich? Wir reden hier von PWM mit vermutlich tausend Impulsen pro
> Sekunde. Kann dieses Instrument dieses Signal überhaupt sinnvoll
> darstellen? Wozu sind in digitalen Schaltungen Oszilloskope gut?

Hm, es misst halt irgendwas, quasi gerundet, nur nicht den Peak der 
Amplitude. Hast ja Recht.

Wie wäre es mit einer Diode in Arbeitsrichtung? Verbrät 0.7V somit nur 
noch 4.3V pro LED paar, also max. 2.15 pro LED.
#5664869
Lesenswert?

Arduino Fanboy D. schrieb:
> Und ich weiß nicht, was du mit R20 meinst.
> Einen R20 finde ich in deinem Schaltplan nicht.

Doch, weisst Du, weil:

Arduino Fanboy D. schrieb:
> Das ist problematisch!
>
> Viel besser:
> Jeder LED Strang, also die 2 in Reihe, brauchen einen Vorwiderstand.

Du das ja selber vorgeschlagen hast.

Also eine LED kann maximal 150mA für 0.1ms duty cycle ab, sagt das 
Datenblatt. Da bin ich ja weit drunter.

Alternative wäre halt, einen 50 Ohm Widerstand vor jedes LED Paar zu 
setzen.
Persönliche Seite #5665110
Lesenswert?

Philipp G. schrieb:
> Einen R20 vor jedes LED Paar als Alternative?

Ja, ein 20 Ω Widerstand vor jedem LED Paar ist genau die richtige 
Lösung. Manche schreiben auch 20 R.

Man darf LEDs nicht an einer Spannungsquelle betreiben, das mögen sie 
nicht. Oft funktioniert es trotzdem, weil viele Spannungsquellen "weich" 
sind, also einen hohen Innenwiderstand haben. Mehr im Artikel -> LED.

Somit hast du etwa: (5 V -0,4 V -2,2V -2,2V) / 20 Ω = 0,010 A = 10 mA

Die 5 V sind die Versorgungsspannung.
Die 0,4 V sind ungefähr der Spannungsabfall über dem BD138.

Teste vorher an einem Strang und variiere den Widerstand bis die 
Helligkeit passt.


Wenn die Leds am Ende der Kette (wo der Stromanschluss ist) heller sind, 
dann mach es wie von Stefanus vorgeschlagen:

Stefanus F. schrieb:
> Eventuell hilft es, den Plus-Pol am linken Ende und den Minus-Pol am
> rechten Ende in die Lichterkette einzuspeisen, anstatt beides am selben
> Ende.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren