Pulser från potentiometer

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
pern
Inlägg: 700
Blev medlem: 14 juli 2004, 08:47:36
Ort: Landskrona

Pulser från potentiometer

Inlägg av pern »

Här är en sak jag funderat över ett bra tag nu på hur man löser det, om det nu är möjligt över huvud taget.

Vad jag vill kunna göra är att generera pulser när jag rör på en potentiometer. Oavsett vilket håll jag vrider den på så skall den generera pulser så länge jag rör på den. Säg för enkelhets skull att max antal är 128 pulser. Rör jag då den från min till max så skall 128 genereras, stoppar jag på mitten så skall 64 ha genererats osv. Jag måste också kunna detektera om jag vrider till höger eller till vänster. Eller rättare sagt upp eller ner, eftersom det skall vara en skjutpotentiometer.

Problemet är att jag skulle vilja lösa det utan en microprocessor med AD omvandlare även om det nu hadde varit det enklaste. Dvs med bara vanliga kretsar, TTL osv.

En tanke jag har är att använda en rotary encoder och "bygga" en egen skjutpotentiomer, dvs så som de första funkade. Jag har även en bunte ALPs reglar som skulle kunna få bistå med grunden ;-)

Någon som har någon ide ??
GalFisk
Inlägg: 312
Blev medlem: 11 mars 2006, 23:53:11
Ort: Horndal

Inlägg av GalFisk »

Hur snabb/precis måste den vara?
En ide vore att mata utspänningen till en A/D, och sen låta en räknare räkna sig upp/ner tills den fick samma värde, så fort värdet ändrades. Ska du ha 128 pulser huttar du dom Q0 på en 8 bitars räknare.
Användarvisningsbild
JimmyAndersson
Inlägg: 26586
Blev medlem: 6 augusti 2005, 21:23:33
Ort: Oskarshamn (En bit utanför)
Kontakt:

Inlägg av JimmyAndersson »

Lättaste varianten: En rotary encoder och en PIC-processor.

Eller kanske: En faslig massa schmitt-triggers och några logik-grindar. :)
Användarvisningsbild
oJsan
EF Sponsor
Inlägg: 1541
Blev medlem: 11 november 2005, 21:36:51
Ort: Umeå
Kontakt:

Inlägg av oJsan »

Det första jag kom att tänka på var att koppla potten till en AD-omvandlare (låt säga 8-bitars, D0-D7) och ta pulserna från näst lägsta biten, D1... eller kommer den att "fladdra" för mycket vid omslagsgränserna?!
Problemet återstår dock hur man ska detektera riktningen, men det går säkert att klura ut nått bra sätt med analog elektronik... typ derivatan av spänningen från potten. Sånt går väl att bygga rätt enkelt med en OP, eller? Är inte helt hemma på det där tyvärr...

(Edit: D1 åsyftade 128 pulser för hela skalan)
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Om jag förstår rätt så vill du ha en signal som *ser ut* precis som
från en vanlig roterade encoder med två fasförskjutna utsignaler ?

Men fysiskt ska det se ut som en pot modell "regel" ?

LSB från en ADC kommer att fladda ordentligt vid vissa lägen. Det blir
nästan omöjligt att inte få "falska" pulser.

Slutligen, lika intressant (om inte mer) som hur man eventuellt skulle
lösa det tekniskt, är vad det ska vara till !
Användarvisningsbild
oJsan
EF Sponsor
Inlägg: 1541
Blev medlem: 11 november 2005, 21:36:51
Ort: Umeå
Kontakt:

Inlägg av oJsan »

Men vad blir egentligen skillnaden på fladder från en ADC eller från en rotationsencoder? Båda måste ju avstudsas... men iofs, en mekanisk brytare (rotationsavkodare) är ju lättare att avstudsa med en konding.
Ja precis.. vad ska du använda det till? Det känns som ett "udda" problem.. går det inte att gå runt hela problemet genom att använda andra lösningar, och börja "längre bak" i problematiken helt enkel?..
pern
Inlägg: 700
Blev medlem: 14 juli 2004, 08:47:36
Ort: Landskrona

Inlägg av pern »

Vad jag behöver är helt enkelt en Rotary Encoder fast byggd som en skjutpotentiometer.

Verkar som jag får ge upp tanken på "enkla" kretsar. Det hadde bara varit roligt om det gått att göra. Lite fusk att använda en uP till ett så litet problem.

Men det får nog trots allt bli en liten PIC med AD omvandlare och själv generera pulserna på 2 IO-stift.
Användarvisningsbild
grym
EF Sponsor
Inlägg: 17616
Blev medlem: 16 november 2003, 12:22:57
Ort: i det mörka småland

Inlägg av grym »

skulle gå att göra analogt

potten till ov och 5v
om man tar och sätter ett högpassfilter från potten med lämpligt värde så får man en tid eller spänning som är relativt propotionell med slaget
sen kan man ha en komperator som känner av när man har en spänning och den släpper av eller på en frekvens
gör man det för både negativ och positiv spänning så får man på ett ungefär vad du ville ha

tror inte det är så exakt men skulle gå att labba och och prova i varjefall
Användarvisningsbild
oJsan
EF Sponsor
Inlägg: 1541
Blev medlem: 11 november 2005, 21:36:51
Ort: Umeå
Kontakt:

Inlägg av oJsan »

pern: Vad är egentligen vitsen med en rotary encoder med fasta ändlägen?! Jag kan helt enkelt inte förstå vad det ska vara användbart till.. please, skriv vad du tänker använd den till! :roll:

Om du löser det med en PIC, hur blir det då vid omslagspunkterna för LSB? Kommer det då bli samma sak som kontaktstuds för en rotationsenkoder? En mjukvaru-husteres borde ju iofs kunna lösa det problemet...
pern
Inlägg: 700
Blev medlem: 14 juli 2004, 08:47:36
Ort: Landskrona

Inlägg av pern »

Med rotary encoder menar jag mer principen med att generera pulser, detektera riktning mm.

Vad jag skall ha det till specifikt i detta fallet är att jag håller på att bygga en låda med 1 skjutpotentiometer och 8 tryckknappar. Dessa skall användas för att styra vissa funktioner i ett DJ-program. Programmet kan även mixa musikvideos och tryckknapparna är till för att styra video-effekter och skjutpotentiometern är en Video X-fader.

Eftersom det enklaste sättet att kommunicera med programmet är via ett vanligt tangentbord så använder jag som grund ett slaktat USB-tangentbord (bara kretsen och kabeln). Så skjutpotentiometern skall simulera/generera tangentnedtryckningar när jag använder den.

Visst, jag hadde kunnat bara använda en rotary encoder istället för potentiometern. Men en skjutpotentiometer är mer användbar och som X-Fader funkar det inte heller med en rotary lika bra.

Allt skall sedan byggas in i en 19" 1U - låda och läggas brevid en DJ-mixer.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

OK, då är dete lite tydligare...

Du har ju även sådana saker som att regeln i princip kan dras hur fort som
helst, medans knapptryckningarna på USB tangt-bordet antagligen har en
övre maxgräns. Jag tror att det bli svårt att realisera med vanlig diskret
elektronik, utan det behövs någon "intelligens" mellan (t.ex en AVR/PIC)
som översätter spänningen från skjutpotten till rätt antal tryckningar
(utan att trycka för fort) på tangentbordet.

Eftersom potten har fasta ändlägen, så behövs det någon slags nollställning.
D.v.s om det skulle missas några pulser, så kan ju räknaren i applikationen
som USB tngt-bordet styr, komma i ofas med potten. En vanlig encoder har
ju inte det problemet, eftersom det bara är att vrida "lite till"...
pern
Inlägg: 700
Blev medlem: 14 juli 2004, 08:47:36
Ort: Landskrona

Inlägg av pern »

Det är inget problem med att man kan dra regeln hur fort som helst som jag ser det. Detta eftersom man kan styra hur X-faderns "arbetskurva" skall vara i programmet som effekt. Dessutom så mixar man ju inte video på samma sätt som ljud normalt (Scratch-mix). Utan man gör mest mjuka övergångar, eller använder effekter för snabba klipp.


Det enklaste och billigaste är nog att använda en PIC här. Men det är inte lika spännande/utmanande konstruktionsmässigt.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Jo, men de flesta tangentbord (det var väl ett tangentbord mellan
regeln och "programmet" eller hur ?) tillåter inte att man trycker hur
fort som helst. Om du drar regeln från min till max så skall det vara
(t.ex) 128 tryck "upp" på tangentbordet, om jag har förstått rätt.
Dessa kan inte komma hur tätt som helst.
pern
Inlägg: 700
Blev medlem: 14 juli 2004, 08:47:36
Ort: Landskrona

Inlägg av pern »

Ja , det var ett tangentbord.

Jag förstår vad du menar . Min tanke var att hitta en lämplig mix mellan tangentbordets bufferstorlek och antal steg som behövs för fullt utslag. Det är inte så kinkigt faktiskt , i praktiken skulle det nog räcka med antal steg = max kbd buffer. Och i praktiken borde man nog kunna multiplicera det med 2-5 utan att få problem. Jag tror inte man flyttar regeln fullt ut på några mS .

Dessutom om man nu skulle vilja video-scratcha så gör man det enklast i programmet genom att koppla ihop ljud och video X-fadrarna, och mixa allt med ljud X-Fadern.

Så jag ser inget större problem med detta, man lär sig nog snabbt var gränsen går. Och det behöver inte vara perfekt, allt är bättre än att behöva "dra" en regel på en bildskärm med musmarkören.
Användarvisningsbild
JimmyAndersson
Inlägg: 26586
Blev medlem: 6 augusti 2005, 21:23:33
Ort: Oskarshamn (En bit utanför)
Kontakt:

Inlägg av JimmyAndersson »

"Det enklaste och billigaste är nog att använda en PIC här. Men det är inte lika spännande/utmanande konstruktionsmässigt."

Frågan är ju om den utmaningen ligger hos dig om någon annan löser det. :wink:

"Säg för enkelhets skull att max antal är 128 pulser."

För enkelhets skull.. hur många pulser behöver du *på riktigt* ?


Låt säga att man i programmet använder pil-upp och pil-ner för att mixa.
Är programmets "regel" i mitten när du startar programmet? Då måste även din skjutpot vara exakt i mitten innan du startar programmet.

Jag tror inte att du kommer undan utan att använda en A/D-omvandlare.

Ett annat stort problem är att du troligen vill registrera hur fort man rör regeln. Detta har jag tyvärr svårt att se hur man löser utan en doktorsavhandling i kärnfysik om man inte använder t.ex en PIC-processor.


Blundar man för att du vill registrera hur fort man rör regeln så går det att lösa sähär:

*Koppla skjutpoten som en spänningsdelare där mittenläget ger 0V och max vänster/höger ger 5V på varsin anslutning. Koppla på en A/D-omvandlare på "vänster sida" och en för höger.

*Koppla upp en 8-bitars räknare för varje sida och anslut en klockpulsgenerator som ger en frekvens som tangenbordet/datorn hinner registrera.

*Använd en t.ex AND-grind för varje sida som kopplas mellan A/D-omvandlaren och räknarens utgång. När dessa har samma värde så får du en puls som stannar/reset'ar räknaren.

*Använd antingen ett "grindnät" (hopkopplade grindar) eller någon komparator-lösning för att få en puls varje gång räknarens utgång förändras. Denna kopplas med t.ex en optokopplare till tangentbordets knapp.



Eller ungefär såhär:

*Koppla skjutpoten som en spänningsdelare och anslut till en analog ingång på en PIC-processor.

*Programmera en timer och A/D-omvandlare. Jämför förra omvandlingen med den nya för att simulera hur fort regeln rör sig. Skicka ut lika många pulser som A/D-omvandlarens "tal" visar.
Skriv svar