hi the relay idea works goodhello,
For so low value of resistor 1,2,4..
you cannot use normal transistor, you must use relay ! or FET for value over 100 ohms
for higher value (more > 1K) you can maybe use Analog switch as CD 4066
but what is the context of use for these resistors ?
What voltage accross ? U
maximum current ? I
so power per resistor ?
The best way is tu use relays to have galvanique insulation and no residual ohms with contact...
20 bits variable resistor ? so means 20 relays !
and 1048576 different values possible ?
or use motorised potentiometer 10 turns, with accoupled encoder !
but U ? I ? P ?
you better have to be more precise in your request.
forget your first drawing.
Dear Donno
Hi
you can use a transistor as a variable resistor instead of DC signal . but if you want AC signal , you should try Jfets !
Bu before helping you , tell me what you need ( what happened that you decided to do it , ( i predicted some things ) perhaps there are many better ways for your aim .)
Best Wishes
Goldsmith
**broken link removed**
this link will tell u how to do that getting good linearity as well
Digital Potmeters have limited range and only certain values that i why i am thinking of making a DIY one
'{$STAMP BS2p}
'{$PBASIC 2.5}
' ----[ Title ]-----------------------------------------------------------
' File...... DS2890.bsp
' Purpose... Using the DS2890 Digital Potentiometer With the BS2p
' Author.... Jared Hoylman
' E-mail.... webmaster(at)jhsys.8k.com
' Started... 23 DEC 2003
' Updated... 24 DEC 2003
' ----[ Program Description ]---------------------------------------------
' This program illustrates how to communicate with the DS2890 digital
' potentiometer.
' ----[ Revision History ]------------------------------------------------
' 24 DEC 2003 - Original Release
' ----[ I/O Definitions ]-------------------------------------------------
OW_Pin CON 0
' ----[ Constants ]-------------------------------------------------------
WIPERPOS_READ CON $F0 ' Read Wiper Pos
WIPERPOS_WRITE CON $0F ' Write Wiper Pos
WIPERPOS_INC CON $C3 ' Increment Wiper Pos
WIPERPOS_DEC CON $99 ' Decrement Wiper Pos
CONTROLREG_READ CON $AA ' Read Control Register
CONTROLREG_WRITE CON $55 ' Write Control Register
ROM_SKIP CON $CC ' Skip ROM Addressing
RESET_NONE CON %0000 ' No Reset Pulse
RESET_BEFORE CON %0001 ' Reset Pulse Before Data
RESET_AFTER CON %0010 ' Reset Pulse After Data
RELEASE CON $96 ' Finished
' ----[ Variables ]-------------------------------------------------------
WiperPos VAR Byte ' Used to read/write the Wiper Position
Config VAR Byte ' Used to receive the Config Reg Value
Verify VAR Byte ' Used to verify a write
' ----[ Main Code ]-------------------------------------------------------
Main:
' Gradually Increase Wiper to almost max
DO WHILE WiperPos < 250
GOSUB IncrementWiperPos
PAUSE 10
LOOP
' Move wiper between 0 and 250 multiple times
WiperPos = 0: GOSUB WriteWiperPos: PAUSE 200
WiperPos = 250: GOSUB WriteWiperPos: PAUSE 200
WiperPos = 0: GOSUB WriteWiperPos: PAUSE 200
WiperPos = 250: GOSUB WriteWiperPos: PAUSE 200
WiperPos = 0: GOSUB WriteWiperPos: PAUSE 200
WiperPos = 250: GOSUB WriteWiperPos: PAUSE 200
WiperPos = 0: GOSUB WriteWiperPos: PAUSE 200
WiperPos = 250: GOSUB WriteWiperPos: PAUSE 200
WiperPos = 0: GOSUB WriteWiperPos: PAUSE 200
WiperPos = 250: GOSUB WriteWiperPos: PAUSE 200
' Gradually Decrease Wiper to min
DO WHILE WiperPos > 0
GOSUB DecrementWiperPos
PAUSE 10
LOOP
GOTO Main
END
' ----[ Subroutines ]-----------------------------------------------------
ReadWiperPos:
OWOUT OW_Pin, RESET_BEFORE, [ROM_SKIP, WIPERPOS_READ]
OWIN OW_Pin, RESET_AFTER, [Config, WiperPos]
RETURN
WriteWiperPos:
OWOUT OW_Pin, RESET_BEFORE, [ROM_SKIP, WIPERPOS_WRITE, WiperPos]
OWIN OW_Pin, RESET_NONE, [Verify]
IF (Verify <> WiperPos) THEN WriteWiperPosError
OWOUT OW_Pin, RESET_AFTER, [RELEASE]
RETURN
IncrementWiperPos:
OWOUT OW_Pin, RESET_BEFORE, [ROM_SKIP, WIPERPOS_INC]
OWIN OW_Pin, RESET_AFTER, [WiperPos]
RETURN
DecrementWiperPos:
OWOUT OW_Pin, RESET_BEFORE, [ROM_SKIP, WIPERPOS_DEC]
OWIN OW_Pin, RESET_AFTER, [WiperPos]
RETURN
WriteWiperPosError:
DEBUG "Write Wiper Position Error!", CR
END
Hey! I say only in the event of a big emergency!
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?