Hat jemand Erfahrungen mit Digital-Potis?

Hemi

Aktives Mitglied
Premium Benutzer
30. Nov. 2008
1.103
19
38
Korntal-Münchingen, Germany
Sprachen
  1. ANSI C
  2. C++
  3. PHP
  4. Java
Hallo Leute,

hat jemand Erfahrungen mit den Digital-Potis?

Speziell geht es um diesen Poti hier: MAX5494

Das Problem: Ich habe eine Widerstandsmatrix mit folgenden Werten (ca. 10% Abweichung):

-> 665 Ohm
-> 60,7 Ohm
-> 153 Ohm
-> 332 Ohm
-> 1590 Ohm

Das Problem bei dem Poti ist, dass sein Schieber schon allein schon 70 Ohm hat und der niedrigste Wert, den ich brauche, ist 60,7 Ohm.

Meine Idee dabei ist, die beiden Potis einfach parallel zu schalten und dadurch den Widerstand zu halbieren. Wenn ich beide auf 120Ohm stelle, habe ich am Ende meine 60 Ohm.

Was meint, würde es gehen?

Danke Euch schon mal.
 
Soll der als Potentiometer oder als Rheostat eingesetzt werden? Laut Datenblatt darf kein (nennenswerter) Strom durch den Wiper fließen, unbelastet hat der Wiperwiderstand aber keinen Einfluß auf die Wiperspannung.
 
Ich verstehe Dein Problem/die Aufgabe nicht. Du verwendest ein Poti, durch dessen Wiper quasi kein Strom fließen darf. Also hast Du einen unbelasteten Spannungsteiler. Die Spannung am Wipper resultiert also aus der Differenz der Terminals und dem Widerstandsverhältnis dazwischen. Da über den Wiperwiderstand (gefordert) kein Strom fließt, fällt dort keine nennenswerte Spannung ab.
Was hast Du denn am Wiper vorgesehen?
(Widerstandsmatrix sagt mir nichts.)
 
Mein Problem ist im Anhang:

t2.PNG

Hier hat man zwei Anschlüsse (eins oben und eins rechts unten) und je nach dem welcher Widerstand gerade "reingeschaltet" wird und ob der Widerstand mit 931Ohm gebrückt ist oder nicht, wird ein Zustand signalisiert.

Ich will das ganze Ding wegwerfen und durch so ein DigitalPoti ersetzen. Daneben steht auch so ein R & U Wert für den einen Zustand.
 
Ich habe jetzt noch nichts mit Digi-Potis gemacht (aber habe es in den nächsten Tagen vor).
Aber - rein logisch gesehen - sollte das doch klappen. Ich meine sogar als ich auf der suche nach einem IC war stand das in irgendeinem Datenblatt sogar drin. Leider finde ich das nicht mehr (IC kam nicht in Frage, daher nicht gespeichert).

Wenn ichs schaffe etwas Zeit dafür zu finden und die ICs zu verlöten (0,6RM... grml) kann ichs ja mal ausprobieren. Ist denn aber nicht der MAX, den hab ich nicht da. Geht ja aber ums Prinzip.
 
Hey Thomas,

ich glaube, es ist schnurz ob MAX, AD, oder MCP, es geht ja wirklich um's Prinzip.

EDIT: Bei AD auf der Seite habe ich ein AppNote, bzw. FAQ gefunden, wo es genau um dieses Thema geht: klick mich

Also müsste es wohl so gehen :)
 
Hast du schon die ersten Schritte gewagt?
Wie verhält sich der MAX im Gegensatz zu dem was angegeben ist?

Ich laufe hier nämlich grad in etwas komisches rein. Ich kann die Potis alle ansteuern, sie verändern auch ihre Werte dementsprechend, aber die liegen fernab von den Sollwerten...

Ich hab diese 4fach Potis genommen:
MCP 4462-103E/ST (10k)
MCP 4462-104E/ST (100k)

Verschaltung und Quelltext zum testen ist identisch.

Code:
10K bei 0x000:
wiper 0: 126,0
wiper 1: 126,7
wiper 2: 126,3
wiper 3: 125,5

10K bei 0x100:
wiper 0: 8,25k
wiper 1: 8,33k
wiper 2: 8,35k
wiper 3: 8,26k

100K bei 0x000:
wiper 0: 133,8
wiper 1: 133,9
wiper 2: 133,8
wiper 3: 133,5

100K bei 0x100:
wiper 0: 51,15k
wiper 1: 51,20k
wiper 2: 51,42k
wiper 3: 51,23k
Statt 75 Ohm 133. o..k, geht noch (kommt vielleicht durchs BreadBoard). Statt 10KOhm nur 8. o..k, is noch in der Toleranz. Aber statt 100KOhm nur 51, das verwirrt mich... Gemessen mit PeakTech 2025, VCC (3.3V) und I2C Master ist mein Raspberry Pi.

Quelltext:
Code:
#!/usr/bin/env python 
# 

import sys 
import time 
import os 
import smbus 
 
# Import GPIO module 
try: 
    import RPi.GPIO as GPIO 
except RuntimeError: 
    print("33[91mError importing RPi.GPIO!33[0m") 
    print("This is probably because you need superuser privileges. " 
          "You can achieve this by using 'sudo' to run this script.") 
except: 
    print("33[91mError importing RPi.GPIO!33[0m") 
    print("Unexpected error: ", sys.exc_info()[0]) 
#end try 

 
 
# Some global variables 
I2cBus = 1    # I2C bus number (0 for revision 1, 1 for rev. 2 boards) 

 
 
# Helper routine which converts a string into an integer (like "int") 
# but also allows hexadecomal input (0x prefix) 
def intEx(string): 
 
    if str(string).startswith("0x"): 
        return int(string[2:], 16) 
    else: 
        return int(string) 
    #end if 

#end def 

 
 
# Open I2C and perform a scan 
I2C = smbus.SMBus(I2cBus) 
for i in range(0x03, 0x78): 
    try: 
        I2C.write_quick(i) 
        print("Device found at " + hex(i)) 
    except: 
        pass 
    #end try 
#next 
print("") 
 
# Ask for i2c address 
Val1 = intEx(input("I2C Address (0x00..0x7F or 0..127) : ")) 
 
# Ask for address and value and apply 
while (1==1): 
    Val2 = intEx(input("Reg Address (0x00..0x0F or 0..15)  : ")) << 4 
    Val3 = intEx(input("Value      (0x00..0x100 or 0..256): ")) 
    if Val3 == 0x100: 
        I2C.write_byte_data(Val1, Val2 + 1, 0x00) 
    else: 
        I2C.write_byte_data(Val1, Val2, Val3) 
    #end if 
#end while


Edit:
Ich habs grad ausprobiert. Parallelschaltung halbiert den Widerstand auch bei Digi-Potis :)

Edit2:
Mein PeakTech 1085 kann den Poti garnicht messen 0.0
 
Hallo Heinrich,

beschreib doch mal bitte dein eigentliches Problem. Wo wird denn diese Widerstandsmatrix eingesetzt?
Sollen nur die 4 Werte eingestellt werden oder auch noch Zwischenwerte? Wenn es nur um diese 4 Werte geht, könntest du auch bei den Widerständen bleiben und den Schalter durch Reed-Relais ersetzen.
(z.B. http://www.reichelt.de/MS-7175-L-5V...&ARTICLE=27674&artnr=MS+7175-L+5V&SEARCH=reed ) Die Relais kannst du auch direkt vom Controller ansteuern.

- gp177 -
 
@Thomas: Ich habe spiele gerade mit einem MCP42050, habe keinen MAX da, müsste ich erst bestellen. Also, der verhält sich eigentlich genau so wie im Datenblatt beschrieben, die Abweichung sind zwar da, aber nicht wirklich erwähnenswert.

Parallelschaltung habe ich noch nicht ausprobiert.

@GP: Mein eigentliches Problem, na gut. Ich habe im Auto eine Schaltung, die so aussieht:

schaltung.png

Da sieht man ein PIC mit einem ULN und vier Reeds. Die Schaltung funktioniert. Das Problem sind aber genau diese beknackten Reeds, sie fallen regelmässig aus. Ich habe schon 5 Stück austauschen müssen, innerhalb von vier Jahren!!! Das geht echt auf den Sack langsam. Deswegen will ich diese Dinger rauswerfen und was komplett elektrisches/elektronisches austauschen.
 
Vielleicht wären analog-Schalter-ICs 'ne Alternative zu mechanischen Reeds? 4066 oder so, aber aus dem Hut kann ich Dir den Kontaktwiderstand nicht sagen...

Unklar ist mir der Zusammenhang zwischen den beiden Plänen (in #6 hast Du 2 Anschlüsse, zwischen denen Du einen von 8 diskreten Widerstandswerten einstellen/auswählen kannst. In #11 findet sich eine ähnliche Verschaltung von Widerständen und Schaltern wieder, die beiden Anschlüsse wären hier Pin6 und Pin12 der Stiftleiste.
ABER: Wenn Du das ganze durch einen(!) einstellbaren Widerstand ersetzt, fehlen die Signale auf den anderen Pins der Stiftleiste (4, 5, 10, 11).
Diesbezüglich passen die beiden Pläne auch nicht zusammen - die Reihenfolge der Widerstände und Schalter ist vertauscht, man könnte also in #6 die vier Signale nicht mal ebenso abgreifen, da die Widerstände quasi immer mit Pin5 der Stiftleiste Verbunden sind...)

Kannst Du zu den Signalen auf der Stiftleiste mehr sagen?
 
Hallo Lotar,

die Schaltung in #6 ist von BMW, so ist die ursprüngliche Schaltung im Auto, da ist so ein Stock unter dem Lenkrad. So wird es im Original gesteuert. Im Leerlauf ist der Widerstand 931Ohm, so wie auf dem Bild zu sehen. Dann, je nach Zustand, wird der jeweilige Widerstand (1,2,3) angesprochen und der 4 entweder reingeschaltet oder überbrückt. So funktioniert es im Original.

Die #11 ist die nachgebaute Schaltung von einem Kollegen, bei der er die Kontante 0,1,2,3,4 durch ReedRelais ersetzt hat. Wenn Du die Leitungen verfolgst, wirst Du es sehen.

Die Erklärung zu der Stiftleiste:

Pin 9: Eingang vom Lenrkad, bzw. seinen Knöpfen, hier liegt ein 8-Bit Signal an, änlich dem DCF77. In diesem Signal sind die Zustände kodiert, also Setzen/Aus/Beschleunigen/Bremsen.
Pin 11, 4, 10 und 5: Sind für den besagten originalen Stock, wenn man ihn behalten möchte, für meinen Fall uninteressant.
Pin 12: Ausgang zum Motorsteuergerät
Pin 6: Ausgang zum Motorsteuergerät

Über Pin 6 und 12 wird dem Steuergerät signalisiert, was es zu tun hat, Gas geben, bremsen, .... Diese zwei Pins gehen direkt an die beiden Pins aus der Schaltung #6.

Pin 3: Ist eine Anzeige
Pin 1+2, 4+8: Spannungsversorgung.
 
Hallo Heinrich,

so ganz klar ist die Sache für mich immer noch nicht - kommt es auf die Widerstände an, oder sind die Spannungen wichtig. Wenn es "nur" auf die entspr. Spannung ankommt, wäre evtl. auch ein DA-Wandler eine Option.
Oder die Relais durch (Power-) Mosfets ersetzen, die haben einen hinreichend kleinen Widerstand - ob das realisierbar ist, kann ich nicht beurteilen, da ich die Schaltung nicht kenne - Stichwort Widerstände einseitig auf + bzw. GND ?
Wäre noch interessant, warum die Reedrelais ausfallen. (Kontaktprobleme - zu geringer Strom; mechanischer Ausfall; Kontakte "kleben" - zu starke Magnetisierung oder zu hoher Strom)

- gp177 -
 
Hallo GP,

ob es "nur" auf die Spannung ankommt, weiß ich nicht. Ich muss mal den Schaltplan vom SG raussuchen, dann sehe ich es. Die MCU im SG wird höchstwahrscheinlich irgendwas von Motorola sein.

Warum die Relais ausfallen, keine Ahnung, sie bleiben einfach hängen und tun nichts. Temperaturmässig sind sie für -20 bis +70 zugelassen. Zwar kein Automotivbereich, aber dürfte trotzdem reichen.
 
Hier sieht man die Schaltung, wie sie im Fahrzeug verbaut ist.

eml.png

Der Kasten oben und unten auf dem Bild ist das Steuergerät, das dazwischen ist der Schalter.

So wie es aussieht, liegen an einem der Pins vom SG +5v an, der andere Pin ist wohl Masse. Wobei da oben sieht mir eher nach einem Spannugsteiler aus?
 
Hallo Heinrich,

ja, wieder so ein typische KFZ-Schaltplan, (ich hasse diese Dinger, da sind alle KFZ-Hersteller gleich) leider keine Funktion zu erkennen.
Aber nochmal zu der Sache mit den Relais,
Warum die Relais ausfallen, keine Ahnung, sie bleiben einfach hängen und tun nichts.
Was bedeutet das genau ?
Kontakt ständig geschlossen oder schließt nicht oder Spule hochohmig ?

- gp177 -
 
Hi,

Was bedeutet das genau ?
Kontakt ständig geschlossen oder schließt nicht oder Spule hochohmig ?

außerdem können sich bei Kontaktabbrand die Kontakte verhaken und dauernd geschlossen bleiben. Es bilden sich durch den Abbrand kleine Spitzen und Vertiefungen auf der Kontaktoberfläche. Die haken dann irgendwann ineinander.

Gruß
Dino
 
Ich müsste noch den Schaltplan vom Steuergerät haben, also die richtige Schaltung, aus dem Schaltplan wird man nicht schlau, da kann man nur in etwa erahnen was passiert. Ich habe es nur gestern nicht gefunden... :(

Was das genau bedeutet: der ULN steuert das Relais an und das Relais tut aber gar nichts, einfach nur tot, schliesst nicht die Kontakt und dementsprechend wird auch nicht der Widerstand zugeschaltet. Ich habe schon etliche getauscht und langsam geht es mir auf den Sender das Ding auszubauen und da rumzulöten. Die Spule habe ich durchgemessen, die scheint in Ordnung zu sein.

Hi,

außerdem können sich bei Kontaktabbrand die Kontakte verhaken und dauernd geschlossen bleiben. Es bilden sich durch den Abbrand kleine Spitzen und Vertiefungen auf der Kontaktoberfläche. Die haken dann irgendwann ineinander.

Gruß
Dino

Moin Dino,

genau das ist meine Vermutung. Glaube die Reedrelais sind in dem Fall eine denkbar schlechte Alternative. Deswegen auch die Idee mit dem Digital Poti.

Ich glaube, ich baue es einfach mal, stecke es an das Steuergerät an und schaue, was mir die Diagnose sagt, ob das SG die Zustände sauber erkennt, das kann man ja über die "Stellgliederdiagnose" auslesen. Da wird angezeigt, welcher Zustang der Tempomat aktuell hat.
 
Also wenn schon die Kontakte abbrennen würde ich mal vermuten dass etwas mehr Strom und Spannung fließt als VCC (5V z. B.) und 20mA was die meisten als Limit haben (wenn nicht sogar noch weniger). Nicht dass du dir den Poti toastest.
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)