Go Down

Topic: Regelbares Netzteil komm nicht weiter. (Read 2196 times) previous topic - next topic

Rene_Merten

Feb 03, 2013, 12:21 am Last Edit: Feb 03, 2013, 02:47 pm by Rene_Merten Reason: 1
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: [Select]
// 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

uwefed

#1
Feb 03, 2013, 12:25 am Last Edit: Feb 03, 2013, 01:06 am by uwefed Reason: 1
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

Rene_Merten

#2
Feb 03, 2013, 12:44 am Last Edit: Feb 03, 2013, 12:58 am by Rene_Merten Reason: 1
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 :)  Nur ml so am rande.

Rene_Merten

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.

uwefed

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

Rene_Merten

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

uwefed

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

Rene_Merten

#7
Feb 03, 2013, 02:31 am Last Edit: Feb 03, 2013, 02:40 am by Rene_Merten Reason: 1
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.

mkl0815

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.

Rene_Merten

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.

mkl0815

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 8) 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.

Rene_Merten

#11
Feb 03, 2013, 03:00 pm Last Edit: Feb 03, 2013, 05:17 pm by Rene_Merten Reason: 1
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: [Select]
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: [Select]
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.

MaFu


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: [Select]
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: [Select]
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.
_______
Manfred

uwefed

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

Rene_Merten

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.


Go Up