Hallo,
Fragen ohne Ende, möchte ja was dazu lernen.
Benötige eine Erklärung warum dies nicht linear ist und somit zu extreme Verluste führt.
Der Verwendete IC hat (10 k Ohm gesamt) werden durch int. Multiplexer pro Schritt ca. 40 Ohm gegen GNC zugeschalten
(„Schleifer" = Ausgang) Wo liegt mein Denkfehler wo die Verluste herkommen sollen denn bei 5 Volt und diesem Widerstand können doch nur max. 0.5 mA fließen???
Trotz alledem hier mein Testcode in Bascom.
' Achtung: nicht mehr aktuell und nicht noch mal getestet
Für ein I²C Digitalpoti DS1803-10 erst wird Poti1 „hochgedreht“ dann Poti 2 und zum Schluss beide als Tandem zurück drehen.
'*********** war mein erster Test mit disen IC's *****************************
'* *
'* ist die Poti-Demo zum kennen lernen wie die 2 Potis angesprochen werden. *
'* für Test alle Werte auf Terminal ausgeben *
'* *
'************************************************* ****************************
'!!!! Regfile natürlich anpassen !!!!
$regfile "m32def.dat"
$crystal = 16000000
$hwstack = 32
$swstack = 32
$framesize = 40
$baud = 19200
'gibt den Erstellungszeitpunkt im europäischen Format DD-MM-YY hh:nn:ss aus
Print "Erstellt am " ; Version(1)
Waitms 100
'+++ Ist Hardware Variante +++
$lib "i2c_twi.lbx"
Config Twi = 100000 'Bus-Takt = 100kHz
'+++++++++++++++++++++++
'**** Variablen für IC-Poti ****
Dim Poti0 As Byte 'ist Daten Variable Poti0
Dim Poti1 As Byte 'ist Daten Variable Poti1
Dim Potix As Byte 'ist Daten Variable tandem Poti
Dim W0 As Single 'Echtwert
Dim W1 As Single 'Echtwert
Do
For Poti0 = 0 To 255 'Poti0 = Zähler. Später durch Ereignis ersetzen
I2cstart
I2cwbyte &B01010000 'control-byte(=IC "Addr"für schreiben)
I2cwbyte &B10101001 'ist Poti0
I2cwbyte Poti0 'Byte-Wert schreiben
I2cstop 'Bus frei geben
'ab hier Umrechnung in Volt
'abgleichen da ein Transistor npn als Stromtreiber nachgeschaltet ist.
W0 = 0.018 * Poti0
Print "Volt-P0 = " ; W0
Next
'zweites Poti
For Poti1 = 0 To 255 'Poti1 = Zähler. Später durch Ereignis ersetzen
I2cstart
I2cwbyte &B01010000 'control-byte
'hier kommt der Unterschied
I2cwbyte &B10101010 'ist Poti1
I2cwbyte Poti1 'Byte-Wert schreiben
I2cstop
'ab hier Umrechnung in Volt
W1 = 0.018 * Poti1 'abgleichen
Print "Volt-P1 = " ; W1
Next
'beide Potis gleichzeitig abregeln
Print "beide Potis gleichzeitig abregeln"
For Potix = 255 To 0 Step -1 'Potix = Zähler. Später durch Ereignis ersetzen
I2cstart
I2cwbyte &B01010000 'control-byte
'hier kommt der Unterschied
I2cwbyte &B10101111 'Potix = Poti0 und Poti1= Tandempoti
I2cwbyte Potix 'zu schreibende Werte
I2cstop
W0 = 0.018 * Potix 'Nur Test
W1 = 0.018 * Potix
Print "Poti0 " ; W0 ;
Print " Poti1 " ; W1
Next
Wait 5
Loop
'********* End Test *********
- - - Aktualisiert - - -
Hallo ich bin’s noch mal,
habe mal auf der Schnelle ein kleines Projekt aufgebaut und den I²C Digital ein MOSFET statt Transistor als Stromtreiber nachgeschaltet. Bitte beachten die Spannung ist führend Strom liefert in Abhängigkeit der Spannung der MOSFET.
Als Verbraucher ein 12 Lüfter 6 Watt.
Ergebnis er läuft sehr sauber an und dreht auch sauber Hoch/Herunter und nichts wird warm . Somit bin ich mich fast sicher, wenn keine Leistung „verbraten“ wird, ist alles OK
Wenn der Verbraucher nur so viel Spannung bekommt und somit nur soviel Strom ziehen kann ist es doch Optimal
Oder nicht ??
.
Mit freundlichen Grüßen
fredred
Lesezeichen