Pages: [1] 2   Go Down
Author Topic: Regelbares Netzteil komm nicht weiter.  (Read 1580 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Jr. Member
**
Karma: 0
Posts: 78
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Habe vor ein regelbares Netzteil zu bauen 0-15V. Auf einem LCD soll erst mal nur die Ausgagspannung angezeigt werden. Wenn das geht, kommt ein Ampermeter hinzu, und ich möchte später mittels 2 Taster die Ausgangsspannung eingestellt können.

Denke mal, das mesite hab ich schon, nur hängt es wie ich im void loop teil vdd defeniere. Zum verständniss mal erst, der Analog Eingang kann doch maximal 5 volt ab richtig?

Das würde ja bedeuten, wenn ich den Spannungsteiler R1 und R2 so auslege, das maximal 5 Volt rauskämen bei max 15V, wäre es doch genauer, als wenn ich von 1.5V ausgehe?

Hier mal erst der Code.

Code:
// Netzteil
#include <LiquidCrystal.h>
 // RS auf Arduino 7
 // Enable auf Arduino pin 6
 // D4 auf Arduino 5
 // D5 auf Arduino 4
 // D6 auf Arduino pin 3
 // D7 auf Arduino pin 2
 // A1 Eingang Spannungsmessung
 // R/W auf Masse


LiquidCrystal lcd(7, 6, 5, 4, 3, 2);
  int vddInput = 1;
  float vdd = 0.0;
  float R1 = xxxxxxxx;   
  float R2 = xxxxxxxx;
  int refresh = 1000;
  int value = 0;

void setup()
{
  pinMode(vddInput, INPUT);
  lcd.begin(16, 2);
}

void loop()
{
 value = analogRead(vddInput);
 xxxxxxxxxxxxxxxxx
 lcd.setCursor(0,1);
 lcd.print(vdd);
 lcd.print("V");
 delay(500);
 }

Lg. Rene
« Last Edit: February 03, 2013, 08:47:51 am by Rene_Merten » Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 251
Posts: 21240
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bevor wir hier Ratschläge bezüglich dem Analogeingang geben, verrat uns mal, wie Du die Ausgangspannung mithilfe 2 Tasten regeln möchtest.
Grüße Uwe
« Last Edit: February 02, 2013, 07:06:45 pm by uwefed » Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 78
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Da mach ich mir jetzt noch keine gedanken zu, denn das wird wohl etwas komlezierter. Denke, das wird nur mit einem Digitalem Poti möglich, das dann über den I2C angesteuert werden könnte.

Aber wie gesagt, später mal.

PS: Hätte auch einen fertigen Code mir ausem Netz suchen können, gibs bestimmt, aber dann hätte ich null dabei gelernt. Zudem habe ich Grippe, da ist das Köpfenanstregen nicht so der hit smiley  Nur ml so am rande.
« Last Edit: February 02, 2013, 06:58:07 pm by Rene_Merten » Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 78
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ne andere möglichkeit wäre PWM, aberd das wird nicht vernümftig funktionieren. Auch nicht mit einem Elko dran. Viel zu ungenau. Ein Digitales Poti ist da die bessere wahl.
Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 251
Posts: 21240
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ich rate Dir mit der Spannungsregelung anzufangen, da dies der problematischere Teil ist und es keinen Sinn hat, daß Du die Spannung und den Strom messen kannst, aber das Netzteil gar nicht regeln kannst, da Du nicht weißt wie.

Du schreibst Du willst ein Netzteil von 0 bis 15V ( brauchst Du wirklich 0V oder kann das Netzteil ab zB 1,5V anfangen?
Welchen maximalen Ausgangsstrom soll das Netzteil haben? Soll der strom ebenfalls geregelt werden können (Maximalstrom eingestellt werden)?

Grüße Uwe
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 78
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Det Trago hat 2x15V 870mA. Der Strom braucht nicht geregelt werden. 0-15 war nur eine allgemeine Angabe. Der LM fäng eh erst bei 1.25V an. Desweiteren ist eh die Frage, eie genau das ganze nachher mit eimem Digitalen Poti überhaupt noch ist. PWM wird man eh vergessen können, hab ich ja schon erwähnt. Hinzu kommt dann noch, das mann dann ethliche male drücken muss, bis man den gewünschten Wert hat.

Die Platine wird auf alle fälle so ausgelegt, das irgendwann noch änderungen machbar sind. Ein Anschluss für mein Programieradapter kommt auch mit drauf.

Wichtig ist für mich mal erst, ob es genauer ist, wenn ich 15V zu 5V als berechnung nehm, oder 15V zu 1.5V
Dann kann ich die Wiederstände berechnen. Ohne die Werte gehts eh net weiter.

LG. Rene
Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 251
Posts: 21240
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Die digitalen Potentiometer vertragen nur maximal 5V am den Widerstandsanschlüssen und meist nur einige µA. Die digitalen potentiometer kannst Du nicht als Spannungsteiler für einen LM317 verwenden.
Grüße Uwe
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 78
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hab mal Dad seine Bücher durchstöbert. Bin nun bei IN 30V zu OUT 5V ausgehe sind R1 15K und R2 3K.

Dann hätte ich den teil fertig.
float R1 = 15000;   
float R2 = 3000;

Morgen gehts weiter.

Zusatz: Fällt mir gerade ein, das wird net gehen, weil ich erst eine Ref. Spannung brauche um rückrechnen zu können. Oder hab ich einen denkfehler?

Nu bin ich aber wirklich weg. Night.
« Last Edit: February 02, 2013, 08:40:36 pm by Rene_Merten » Logged

Offline Offline
Edison Member
*
Karma: 21
Posts: 1419
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Wie wäre es mit einem HFC4051? Das ist ein Analog-Multiplexer. Über den kann man einen analogen Ein/Ausgang auf einen von 8 Ein/Ausgängen schalten. So kannst Du eine Widerstandskaskade mit "normalen" Widerständen für den LM317 verwenden und über drei digitale Eingänge am Chip (3 Bit = 8 Schaltzustände) entscheiden auf welchen Widerstand geschaltet wird und somit die Spannung bestimmen. Wenn Du bei 3V anfängst, kannst Du dann in Schritten von 1,5V bis 15V einstellen. Man kann die 4051 auch kaskadieren, dann könntest Du mit 2 von den Dingern in 1V Schritten locker von 2 bis 15V einstellen.
Im Playground gibt es eine kurze Übersicht über das Bauteil: http://playground.arduino.cc/learning/4051
Mario.
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 78
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Das wäre auch eine möglichkeit. Anstelle der taster dann ein Drehimpulsschalter wie bei Aotoradios. Eine erhöhung oder absenkung in 0,5 Volt schritten würde reichen.

PS: Mit einem Digitalen Poti müsste doch gehen, weil der LM läst sich auch anstelle des Potis von VRef gegen Masse auch mit einem einem NPN Transystor steuern, der dann vom Digitalen Poti dampf auf der Basis bekommt. Dann reichen die paar mA die das Digitale Poti kann auch aus, und die max 5V kann man auch ausser acht lassen, da Schwellspannung 0,7V.

Aber ich denke, das es mit einer Wiedertsanskaskade genauer wird. 3 x HFC4051 in 0,5 volt schritten.
Logged

Offline Offline
Edison Member
*
Karma: 21
Posts: 1419
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ich gehe dann mal davon aus, das Du 3 HFC4051 "parallel" einsetzen willst, also 3x8=24 Ausgänge. Dabei musst Du dann aber darauf achten, das Du immer nur bei einem einzigen 4051 das 
Bei den 4051 muss Du dann aber darauf achten, das Du immer nur bei einem 4051 den INHIBIT Eingang auf LOW ziehst, sonst sind immer mehrere Ein/Ausgänge aktiv.
Normalerweise verwendet man immer einen zusätzlichen HFC4051 beim kaskadieren, über den dann die INH-Eingänge der restlichen (maximal smiley-cool HFC4051 geschaltet werden. Damit kann man sicherstellen, das wirklich immer nur eine Strecke aktiv ist. Mit 9 HFC4051 kann man so 64 Wege schalten. Das sieht man auch sehr gut im Playground Beispiel.
Mario.
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 78
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bin gerade an der Spannungsanzeige, wobei momentan nur "müll" rauskommt. Dachte es geht ohne R1 und R2 einzubeziehen, und würde reichen, wenn ich gemessenden Wert mal den Teilungsfaktor nehme.

Code:
void loop()
{
 value = analogRead(vddInput);
 vdd = (value * 3.0);
 lcd.setCursor(0,1);
 lcd.print(vdd);
 lcd.print("V");
 delay(500);
 }

Habe mir andere beispiele angesehen, und verstehe nicht genau, warum die den Wert aus dem Analog Eingang mal 5 nehmen und dann durch 1024 teilen. Warum 1024?

Code:
value = analogRead(analogInput);
vout = (value * 5.0) / 1024.0;
vin = vout / ( R2 /( R1 +R2 )); 

PS: Hab mir noch nen paar andere möglichkeiten angesehen, alle nehmen 1024. Wieso nicht glatt durch 1000 um die komma stelle zu verschieben? Keine ne erklärung dafür.
« Last Edit: February 03, 2013, 11:17:48 am by Rene_Merten » Logged

Munich/Germany
Offline Offline
God Member
*****
Karma: 11
Posts: 643
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Bin gerade an der Spannungsanzeige, wobei momentan nur "müll" rauskommt. Dachte es geht ohne R1 und R2 einzubeziehen, und würde reichen, wenn ich gemessenden Wert mal den Teilungsfaktor nehme.

Code:
void loop()
{
 value = analogRead(vddInput);
 vdd = (value * 3.0);
 lcd.setCursor(0,1);
 lcd.print(vdd);
 lcd.print("V");
 delay(500);
 }

Habe mir andere beispiele angesehen, und verstehe nicht genau, warum die den Wert aus dem Analog Eingang mal 5 nehmen und dann durch 1024 teilen. Warum 1024?

Code:
value = analogRead(analogInput);
vout = (value * 5.0) / 1024.0;
vin = vout / ( R2 /( R1 +R2 )); 

PS: Hab mir noch nen paar andere möglichkeiten angesehen, alle nehmen 1024. Wieso nicht glatt durch 1000 um die komma stelle zu verschieben? Keine ne erklärung dafür.
Weil analogRead() Werte von 0 (bei 0V) bis 1023 (bei 5V) liefert. Und mit value * 5.0 / 1024.0 kannst Du den gemessenen Wert in Spannung umrechnen.
Logged

_______
Manfred

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 251
Posts: 21240
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Genaugesagt muß man durch 1023 teilen nicht durch 1024. Dies weil ein 10 bit Analog-Digital-Wandler max b11 1111 1111 messen kann und das ist 1023.

Uwe
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 78
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Also ist 0V=0 und 5V=1023 richtig. Nu hab ich es verstanden, und genau darum gings mir, nicht irgendwas fertiges zu nehmen, sondern es selbst zu realisieren. Also muss ich den Weg gehen, damit meine Ausgabe nachher stimmt.

Thanks.

Logged

Pages: [1] 2   Go Up
Jump to: