Stromstärke steuern

Hallo alle zusammen,

ich habe eine Spule an den Arduino angeschlossen.
Was ich jetzt tun möchte:
Bei konstanter Spannung von z.B. 1,25V (kann aber auch anders sein)
eine Stromstärke von 0A bis 2A steuern.
Natürlich mittels Software :wink:

Nun weiß ich, dass über einen Ausgang am Arduino keine 2A zur Verfügung gestellt werden können.

Klar kann ich eine Spannungsquelle dazuschalten. Aber damit kann ich ja nicht den vollen Bereich von 0A bis 2A einstellen.

Habe mal meine bisherige Idee mit eingestellt:

Gibt es schon vorhandene Schaltungen oder ist die Lösung zu einfach, als dass sie mir einfällt? ;D

Hoffe mir kann jemand helfen.
Grüße Ithen

Also zuerst:
das was Du hier zeigst (sorry wenn ich mal absolut ehrlich bin) ist eine absolut sinnfreie Schaltung oder anders gesagt elektronischer Schwachsinn.
Es wäre hilfreich wenn Du mal beschreibst was Du wirklich machen möchtest.
Was Du schon mal richtig erkannt hast ist das der Arduino keine 2 Ampere treiben kann.
Informiere Dich im Netz mal zum Thema Einstellbare Stromquelle.
Warum ist denn eine Stromeinstellung so wichtig ??
Also mal bitte "Butter bei die Fische" und erklär mal was Du willst.
Dann hat der geneigte Forum-User auch einen besseren Ansatz zur Hilfestellung.

LC_Data

Wie LC_Data richtig sagt, macht deine Schaltung keinen Sinn.

Das Thema heisst, wie bereits erwähnt, "Einstellbare oder verstellbare Stromquelle"

Eine mögliche Schaltung zeigt der folgende Stromlaufplan aus dem Elektronik-Kompendium.

Die Last selbst wird am Punkt +Is und an einer externen Spannungsversorgung, welche den gewünschten Strom liefern kann, angeschlossen.

Arbeite dich mal durch das Thema:
http://www.elektronik-kompendium.de/public/schaerer/pstst1.htm

Anschliessend kannst du uns genau sagen was du willst. Eventuell findest du schon eine geeignete Schaltung.

Hinweis:
für diese Schaltung sollten Elektronik-Grundkenntnisse vorhanden sein. Oder du findest jemanden mit Elektronik-Wissen, welcher dich dabei unterstützt.

Strom auf Steckbrett:
ich empfehle dir den Leistungsteil der Schaltung, also der Transistor T2, der Shunt R3 und die Anschlüsse für die Last auf einer Lochrasterplatine aufzubauen und nicht über das Steckbrett zu betreiben. Die Kontakte sind meist nicht für diese Stromstärken ausgelegt.

Wow...
danke erstmal für die Antworten.
Mit einer solchen Reaktion hab ich jetzt aber so garnicht gerechnet.

Also vlt ist es noch wichtig: Ich habe Grundkenntnisse in der Elektrotechnik.
Nicht mehr und nicht weniger.

Mein Ursprünglicher Plan war, dass ich einen Linearregler nehme und ihn als Konstantstromquelle verwende.
Nach der Schaltung:

Die Spule, die ich verwende, kann mit Imax=2A betrieben werden.
Der Widerstand beträgt ca. 1,1Ohm
Ergo sollte sich eine Spannung von 2,2V einstellen.
Tja und das funktioniert dann nicht mit der Konstantstromquelle.

Das klappt auch soweit gut, wenn ich die Spule direkt mit einem Labornetzteil benutze, also völlig unabhängig von irgendwelchen Schaltungen oder Linearreglern.

Nun möchte ich aber kein Potentiometer benutzen, wie im Bild zu sehen ist, zumindest kein Analoges. Und ich möchte wie schon beschrieben die Stromstärke, welche von der Spule abgegriffen wird von 0A bis 2A quasi "ansteuern" können. Und zwar mit dem Arduino. So in etwa, dass ich einen Wert am Computer eingebe und die Stromstärke an der Spule eingestellt wird. Damit kann ich dann das Magnetfeld der Spule so beeinflussen, wie ich das brauche.

Mit beiden Schaltungen, der verstellbaren aus dem Elektronik-Kompendium und auch der Schaltung mit dem LM317 wird ein konstanter Strom generiert.
Je nach Widerstand der angeschlossenen Last, stellt sich ein Spannungsabfall über der Last ein. Dabei muss beachtet werden, dass die Spannung für den Lastkreis genügend gross ist. Sonst kann die Schaltung nicht als Konstantstromquelle betrieben werden.

Zu beachten ist bei den Schaltungsbeispielen, dass bei der verstellbaren Lösung die Last gegen Plus geschaltet wird, beim LM317 wird die Last gegen 0V geschaltet.

Für einen ersten Test würde ich die LM317-Schaltung mit einem festen Widerstand versehen. Hast du geprüft ob die Eingangsspannung genügend gross ist? Über dem Regler selbst und dem Widerstand gibt es auch noch einen Spannungsabfall, welcher berücksichtigt werden muss.

Hallo Ithen

Grundsätzliches: Du kannst nicht an einer Spule oder Widerstand die Spannung konstant halten und den Strom regel wollen. Der Strom ist laut ohmschen Gesetz von der Spannung abhängig. I=U/R wobei R der Widerstand der Spule ist nachdem sich der Strom stabilisiert hat. Im Moment und kurz nach einem Spannungwechsel muß der Strom mit Integralrechnung berechent werden, da die Induktivität der Spule der Stromänderung entgegenwirkt.

Die einzige Möglichkeit um einen Strom zu regeln ist einen analogen Wert vom Arduino zu bekommen. Die PWM-Ausgänge sind dazu nicht geeignet, weil sie keine Gleichspannung ausgeben, sondern eine gepulste Gleichspannung von 5V, dessen Mittelwert einer regelbaren Gelichspannung gleichkommt.

Also Du brauchst einen D/A-Converter und dann ein Netzteil das je nach Eingangswert den Strom regelt.

Welche Spule ist das? Eine mit Eisenkern oder Ferritkern oder eine Luftspule; Was machst Du mit der Spule? Wie Oft und wie schnell soll sich der Strom ändern?

Es ist noch zu sehen ob Du eine Konstantstromquelle oder Dir eine Konstantspannungsquelle genügt. Laut ohmschen Gesetz ist I =U/R. Der einzige Unterschied ist der Verlauf bei Änderungen. Eine Konstantstromquelle erhöht die Spannung bis der eingestellet Strom fließt und kann leicht eine Spannung notwendig sein die relativ groß ist (hängt von der Indultanz der Spule ab).
Eine Gleichspannungsquelle regelt auf die gewählte Spannung; der Strom erhöht sich langsam ( je nach größe der Induktivität der Spule) bis auf den Wert, der durch den Ohmschen Widerstand der Spule definiert ist.

Also Erklähre bitte mal was Du genu machen willst.

Viele Grüße Uwe

@Webmeister:
Jo das ist eben mein Problem. Die Werte die durch die Schaltung mit dem LM317 bereitgestellt werden, reichen nicht für die Spule, die ich betreiben will.
Da beim LM317 nur 1,25V da sind, kann sich der Strom nicht einstellen beim gegebenen Widerstand der Last von 1,1Ohm.

In einem anderen Projekt habe ich diese Schaltung schonmal mit einem Poti benutzt, was sehr gut geklappt hat. Aber eben die 2,2V, 2A usw. werden nicht bereitgestellt. Nun sitze ich hier und überlege mir Möglichkeiten, das bereitzustellen, was ich brauche.
So kam mir eben die Idee, eine zweite Stromquelle parallelzuschalten um den Maximalstrom zu erhöhen. Aber damit kann ich eben nicht 0A bis 2A durchfahren mit dem Arduino. Zumindest hab ich z.Z. keinen Plan wie ich das bewerkstelligen könnte.

@Uwe:
Danke auch dir für deine Antwort.
So wie du es beschrieben hast, ist mir das auch schon klar geworden.
Das mit der Spannungsquelle ist mir aber noch nicht in den Sinn gekommen.
Aber ich hab so das Gefühl, dass du mich schon ganz gut verstanden hast. Denn ich wollte sehr vereinfacht gesagt, das Magnetfeld der Luftspule verändern und mich dabei an der Stromstärke orientieren können. Am besten über eben einen Analogen Ausgang des Arduinos.

Eine Luftspule hat eine relativ kleine Induktivität. Müßte mit einem Programmierbaren Netzteil funktionieren.

Grüße Uwe

Vielleicht gibt es einen Kompromiss (der ja so ähnlich auch schon vorgeschlagen wurde...)?
Da die Stromregelung doch wohl recht träge vor sich gehen kann, kann sie wie ja bereits angedacht der Arduino übernehmen.

  • Strommessung (über 0,1 Ohm Shunt, fallen 0,2 V ab bei 2A, die sich bei einer Spannungsreferenz von 1,1 V gut messen lassen.
  • Die Regelung wird mit einem LM 317 (gut gekühlt im TO3 Gehäuse, oder besser ein LM 350...) durch direkte Spannungsansteuerung am ADJ -Pin gemacht. Hierzu reicht wirklich der PWM-Ausgang mit Tiefpass!

Aber Achtung! Wg möglicher Programmierfehler eine Strombegrenzung einbauen, sonst könnte der LM überlastet werden! Das einfachst wäre ein PTC (="Polyfuse", zB PFRA200) am Eingangspin.

hallo deSilva

Ich befürchete ein PWM Ausgang mit Tiefpass ist zu träge um den Strom vernünftig zu regeln.
Es sei den man erhöht die PWM- Frequenz.

Grüße Uwe

Uwe - im Prinzip hast Du Recht - ich erwarte aber bei einer induktiven Last eine hohe Trägheit. Natürlich gibt es ein sehr starke Veränderung der Stromanforderung:

(a) Aufbau des Feldes t1 = L/R, Strom nimmt gewaltig zu
(b) Hoher Anlaufstrom.
(c) Strom nimmt ab im Regelbetrieb. t2=?
(d) Je nach Laständerung und vorgesehenen Einstellungen dann Schwankungen.

Bei Bürstenmotoren gibt es dann noch häßliche Effekte beim Umpolen..

Ich habe so spontan keine Werte für einen 20W Motor gefunden....


Ergänzung: Das war natürlich ein sehr unausgereifter Vorschlag von mir.. Es geht ja nicht nur um Programmierfehler, sondern der Regler muss ja auch einen definierten ADJ Eingang bekommen, wenn der Arduino nicht läuft..
Möglichkeiten:

  • Einen Regler mit "enable" Eingang nehmen (das sind aber meist Schaltregler, was aber auch keinen großen Unterschied macht...)
  • Strombegrenzung durch zusätzliche Rückkopplung; ich habe da vor einiger Zeit diesen Schaltplan gesehen
    http://www.pollin.de/shop/downloads/D350042D.ZIP der eine ganz pfiffige Lösung enthält (allerdings um den Preis eines 0,5 V Offsets durch die Entkopplungsdioden..)

Noch eine Ergänzung

Sehr hilfreich können digitale Potentiometer sein, z.B. DS 1267 - es gibt aber auch preiswertere Chips..

Hier findet man vielleicht auch noch was: SPI / I2C-justierbarer Spannungsregler - Mikrocontroller.net

Hallo deSilva
Hatten wir diese Diskussion nicht mit einer Luftspule von Ithen als Verbraucher angefangen?
Grüße Uwe

Hatten wir diese Diskussion nicht mit einer Luftspule von Ithen als Verbraucher angefangen

Äh... wird wohl :sunglasses: Ich verliere manchmal die Übersicht....

Zu PWM: man kann mit einfachen Arduinomitteln ein ganz ordentliches Sinussignal @ 10 Hz erzeugen.

float theTime =0.0;
void loop() {
  theTime += 0.2;
  int theValue = round(127.5*(1+sin(theTime)));
  analogWrite(ledPin, theValue);
   delay(2);
  }

Am Ausgang hängt ein Tiefpass mit 47k/220n.

Hallo deSilva
Schön; zu was brauche ich ein sinusförmiges Signal mit 10 Hz?
Grüße Uwe

Hier auf der Seite 4 einige Anregungen zum Regeln der LM 317 Spannung mit PWM http://www.avrfreaks.net/modules/FreaksFiles/files/155/STK500_Schematics.pdf

Das Hacken der PWM bringt Einiges:

  pinMode(ledPin, OUTPUT);
  
  TCCR2A = _BV(COM2A1) | _BV(COM2B1) | _BV(WGM21) | _BV(WGM20);
  TCCR2B = _BV(CS20);

Man kann jetzt auf den delay(1) verzichten, weil genug Pulse während der Gleitkommaoperationen generiert werden.

void loop() {

  ...

    OCR2B = theValue;
    //delay(1);
  }

Der Sinus sieht jetzt auch mit 200 Hz gut aus; der Tiefpass besteht aus 10k/10n (nicht weiter berechnet, lag gerade auf dem Tisch :slight_smile: )

Schön; zu was brauche ich ein sinusförmiges Signal mit 10 Hz?

Ich wollte die Leistungsfähigkeit der PWM mal antesten. M.M. nach ist das - jedenfalls die 200 Hz Version - ausreichend für eine Regelung. Eine Spannungsänderung kommt in 1/(200*31) s = ca 150 Mikrosekunden durch.

Das macht Sinn.
Danke für Deine Antwort.
Uwe

Danke erstmal allen, die sich an der Diskuission beteiligen.
War ein paar Tage im Urlaub, jetzt muss ich mich erstmal hier durcharbeiten.

Grüße Ithen

Aloha,
hab mir jetzt mal alles angeschaut.
Um ehrlich zu sein, finde ich das alles sehr aufwendig für mein Vorhaben.
Habe mir jetzt mal gedacht, dass ich eine Schaltung aufbaue, die mit einem Netzteil gespeist wird.
In der Schaltung soll ein Digitalpotentiometer vorhanden sein, welches ich mit dem Arduino anstuern kann. Nach kurzer Suche, habe ich festgestellt, dass es eine Menge DigiPotis gibt, aber alle Hochohmig.
Nun meine Überlegung. Wenn man versucht den Gesamtwiderstand einer Parallelschaltung zu nutzen, dann verhält sich ein Poti in seiner Einstellung nicht mehr linear. Das ist aber wichtig für mich. Kann ich da ein logarithmisch einstellbares Poti nehmen?

Hab mal so meine Idee hochgeladen.

Mittlerweile brauche ich für die Spule einen Strom von maximal I=3A
Der Widerstand der Spule beträgt 1,5Ohm
Das Poti mit dem kleinsten Widerstand, welches ich gefunden hab, hat immernoch 1kOhm.
Ergo, ich müsste 3000V bereitstellen. Finde das nicht so praktisch.
Daher die Idee den Widerstand R durch eine Parallelschaltung zu ersetzen, die einen kleineren Gesamtwiderstand hat.
Geht sowas? Gibt es dafür Beispiele?

Grüße Ithen

Hallo Ithen
Vergiß das mit dem digitale Poti; Die vertragen einen Strom in der Größenordnung von einigen mA.
Du brauchst ein Netzteil das über ein Interface programmierbar ist.
Da das eine Luftspule ist mit einem Widerstand von 1,5Ohm brauchst du ca 4,5V für 3A. Etwas mehr wenn Du den Strom konstant halten willst.
Grüße Uwe