Go Down

Topic: Regelbares Netzteil komm nicht weiter. (Read 1 time) previous topic - next topic

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