Sida 1 av 2

Digital potentiometer

Postat: 24 februari 2008, 16:05:04
av Skruven
Jag skulle behöva en digital potentiometer. Dvs. samma grundläggande funktion som en manuell (med vred), men att man kan styra den via t.ex. en frekvens som input. Önskan är att kunna styra den via parallellporten.

Har kollat lite på MCP 4011 (http://www.elfa.se/elfa-bin/dyndok.pl?dok=12524.htm), men den lär ju inte kunna ta in frekvenser som input.

Jag vill alltså kunna styra närmare 0V - 5V via parallellporten, helst genom att ge olika frekvenser som input. Då kanske MCP 4011 är helt fel?

Det måste vara en så simpel lösning som möjligt, så helst inga förslag om PIC:ar och AVR, om det nu inte är ett måste. :)

-------

Kan en annan alternativ lösning till ovanstående vara att utnyttja datorns audio out-uttag som ger olika små spänningar och sedan förstärka dessa med någon komponent?

Tack på förhand!

Postat: 24 februari 2008, 16:37:47
av xxargs
frekvenberoende ?? du menar analog sinuston vars frekvens skall styra en pots inställning?? - sådana fins inte som 'färdiga' kretsar kan jag nästan garantera. Dessutom är inte 'ton-tekniken' särskillt passande för användning mot parallellport då bakomliggande OS (windows) har svårt att garantera en stabil 'ton' ut från parallellport medans den håller på med andra sake - windows är ingen realtidssystem..

Dom flesta digitala potar kräver någon form av seriell protokoll som att ladda register (D/A-omvandlare) eller steppupp/steppned med pulsning som din länkande krets.

Pulsningen i sig borde inte vara så svår att få till mha. parallellporten så länge du kan ställa ut '1' och '0' på datautgångarna i ditt program samt att '1'/'0'-sekvensen följer timingchemat och använder två dataledare enligt databladet.

Observera dock att den här typen av koppling inte är galvaniskt skild mot datorns jord och datorns signaler - vill du ha isolation så måste du låta signalerna gå via optokopplare och inte ha någon gemensam jordledare mellan din digitalpot och datorn.

Postat: 24 februari 2008, 16:39:50
av Icecap
Varför styra med frekvenser?

När du vill styra med LPT-porten är den krets ju just det helt rätta sätt att styra på så varför babbla om frekvenser?

Med ett digitalt signal väljer du om den ska räkna upp eller ner och med ett annat räknar du ATT den ska gå ett steg. Du behöver alltså 2 bit från parallellporten och då kommer det igen: varför då frekvensstyrning?

Postat: 24 februari 2008, 16:51:30
av MadModder
Det finns digitala potentiometrar som man anger en absolut position till. Man sänder helt enkelt digital data till den som säger typ "ställ dig på 60%" och så gör den det. Bra mycket enklare än att pyssla med analog styrning av en digital potentiometer. Det är ju som att gå över ån efter vatten. :P
Har sett nån sån nån gång med parallell indata, så vill man absolut ha ett vred för att ställa poten så går det med en ADC.

Postat: 24 februari 2008, 16:57:08
av oJsan
Hej!
Jag tror att du krånglar till ett enkelt problem. Vad vill du _egentligen_ göra? När jag läser din sista mening om ljudkort så tolkar jag det som att det du är ute efter är nog helt enkelt en DAC, dvs. Digital-to-Analog-Converter.
Du vill kunna styra ut en signal på 0-5V och har en parallellport att tillgå.
En väldigt enkel variant är en R/2R-stege:
http://www.tkk.fi/Misc/Electronics/circuits/r2r.html

Vill du ha en stabilare lösning så är en DA-omvandlare att föredra:
http://www.elfa.se/elfa-bin/dyndok.pl?dok=2012822.htm
Andra schemat uppifrån: http://www.tkk.fi/Misc/Electronics/circuits/dacs.html

Postat: 24 februari 2008, 17:09:11
av MadModder
Kör man med R2R rekommenderar jag en opamp som utgångssteg, eftersom allra minsta ström tagen från utgången påverkar utsignalen negativt.

Postat: 24 februari 2008, 17:11:15
av Skruven
Som oJsan säger så krånglar jag nog till ett väldigt simpelt problem känns det som. Det jag behöver är precis det MadModder beskriver, en potentiometer som man kan ange absolut position på.

Enkelt förklarat så vill jag kunna välja att utspänningen ska vara allt mellan 0V och 5V (eller kanske mer) och kunna styra den via enkla kommandon från parallellporten.

MadModder: Var hittar jag en sådan potentiometer som du beskrev?

Postat: 24 februari 2008, 17:15:57
av oJsan
Vad är det du ska styra med potentiometern? Förhoppningsvis så kanske det går att styra med en spänning istället och då är en AD-omvandlare lämpligare.

Precis som MadModder skrev så bör en R/2R-stege följas av en buffer/spänningsföljare.

Postat: 24 februari 2008, 17:19:02
av xxargs
Dessutom måste man ha bra motstånd med låg spridning i värdena mellan exemplaren, annars kan man får att flera olika inmatade värden ger samma utspänning - speciellt i närheten av 'stora' omslag som '127' - '128' (8 bitars ADC) och däromkring då den 8 motståndsgrenen skall passa precis steget ovanför när dom 7 första motståndsgrenarna kopplas bort...

Postat: 24 februari 2008, 17:20:17
av MadModder
Jag kan inte hitta den... :P

Men om du "bara" vill kunna ställa in en spänning någonstans mellan 0 och 5V så är en digital potentiometer helt fel väg att gå. Du ska ha en DAC, digital till analog-omvandlare. Om du bygger din idé med en digital potentiometer, så är resultatet en väldigt långsam DAC...

Jag skulle ha gjort en R/2R-stege, och sen en opamp efter det. Med extern matningsspänning kan man då få till 0-12V om man vill, i 256 steg...

Det finns ju SIL-kapslar med R/2R-innehåll. Borde väl vara hyffsat rätt värden på alla motstånd då?
http://www.elfa.se/elfa-bin/dyndok.pl?l ... k=7015.htm
Hmm, 2%... kanske lite mycket.

[edit]

En annan sak att tänka på när det gäller R/2R till en parallellport, är att det inte är säkert att det är 5V ur den, så en cmos buffer eller line driver innan är att föredra. Nu börjar det nästan bli lönsamt att skaffa en färdig DAC-krets. :D

Postat: 24 februari 2008, 17:26:23
av oJsan
Som sagt, vad ska du styra. För en stabilare lösning bör du välja DAC, men det beror ju som sagt på vad du ska ha de hela till....

Postat: 24 februari 2008, 17:38:56
av Skruven
Tack för svaren! :D

oJsan: Jag vill kunna styra ett par motorer och reglera dess hastighet.

Helst vill jag utnyttja så få pinnar som möjligt på parallellporten... R/2R-stegen är ju en riktigt bra idé, men om man kunde använda endast en pinne på parallellporten på något sätt vore det optimalt. Eller har jag missuppfattat nåt?

Postat: 24 februari 2008, 18:01:41
av MadModder
Nä, det är helt riktigt.

Till min server har jag gjort en fläktkontroll med två kanaler á 4 bitar. Det ger då 16 steg per styck. Jag har gjort mig två egna digitala potentiometrar mha 8 optokopplare som kopplar ihop motstånd på olika sätt, och detta kopplat till varsin L200. Funkar skitbra, men det är inte helt optimalt, och tar upp alla 8 datapinnar. :D I mitt fal gör det dock inget, för jag har gjort mig ett litet bussystem som ger mig 8st adresserbara 8-bitarsutgångar...

Här är mitt schema över fläktmodulen: http://madmodders.se/temp/fanmodule.gif

En seriell DAC vore ju optimalt, och så en buffer/spänningsföljare på det för att orka driva motorn. Då kan du ha fler motorstyrningar.

Postat: 24 februari 2008, 18:30:10
av Skruven
En seriell DAC vore ju optimalt, och så en buffer/spänningsföljare på det för att orka driva motorn. Då kan du ha fler motorstyrningar.
Går denna att använda? Eller finns det ännu simplare?
Seriell DAC (http://www.elfa.se/elfa-bin/setpage.pl? ... k=7015.htm)

Har du nåt exempel på en buffer/spänningsföljare? :)

Postat: 24 februari 2008, 19:02:21
av MadModder
Det du länkar till är ett motståndsnät.
Här är en seriell dac http://www.elfa.se/elfa-bin/dyndok.pl?l ... 019571.htm

Exempel... nja. Finns ju hur många som helst. MCP6002 eller TS462CN kanske ... och sen en effekttransistor efter det kopplad som emitterföljare.

Finns väl smidigare lösningar än så, t.ex mha PWM (pulsbreddsmodulering) och h-bryggor för att byta håll mm. Men det får någon annan ta. :D