Hallo iedereen ik ben bezig met een project om mijn graden uit te lezen (op een LCD )van men motor die uitlezing wil ik doen met een tientoeren pot. nu is mijn vraag hoe moet ik dat analoog register aan spreken in ASM en hoe moet ik daar mee omgaan?

Als je het aantal graden van een tientorenpot aan je motor wil meten, kan je er best een temperatuursensor op plakken.
Hoe je het register aan moet spreken en ermee moet omgaan, kan je lezen in het etiquettehandboek van de betreffende PIC, ook wel bekend als datasheet.

ik bedoel niet het aantal graden in warmte

maar wel de graden waartoe hij gericht staat (zoals 30° noord en zo)

en hoe kun je eigenlijk dan van een spanning de bineare code bepalen die op de uitgangen van de PIC komen te staan

[Bericht gewijzigd door on op (34%)]

Let je er in het vervolg op dat je het leesbaar en begrijpbaar maakt? Anders zal je altijd tegen die onnozelaars aanlopen die je expres verkeerd begrijpen.

Ik heb de indruk dat je zelf nog niets hebt bekeken, dan ben ik niet geneigd om je te helpen. Als jij nu eens de datasheet van je PIC goed doorneemt, en dan voornamelijk het hoofdstuk over de ADC, dan wil ik je gerust uitleg geven als je nog dingen niet snapt. Eigenlijk is het heel simpel, je volgt de datasheet en het werkt.

>> uitlezing wil ik doen met een tientoeren pot.

Hoe wil je in hemelsnaam met een potmeter iets 'uitlezen'?...

mechanisch koppelen met de as en zo de hoekverdraaing meten ?

Op 23 december 2007 22:58:01 schreef Videomodulator:
Let je er in het vervolg op dat je het leesbaar en begrijpbaar maakt? Anders zal je altijd tegen die onnozelaars aanlopen die je expres verkeerd begrijpen.

Ik heb de indruk dat je zelf nog niets hebt bekeken, dan ben ik niet geneigd om je te helpen. Als jij nu eens de datasheet van je PIC goed doorneemt, en dan voornamelijk het hoofdstuk over de ADC, dan wil ik je gerust uitleg geven als je nog dingen niet snapt. Eigenlijk is het heel simpel, je volgt de datasheet en het werkt.

Amen...

Een aantal goed geplaatste hoofdletters, komma's en punten zouden ook niet misstaan.
En met "men" bedoel je "Mijn", neem ik aan?

Er zijn potmeters die soepel lopen en die een precies deel van de aangelegde spanning kunnen weergeven op de loper.
Als je een 10 bits ADC hebt, kun je je draaiobject in ca 1000 stapjes een hele slag laten draaien.
Met een 1:2 vertraging kun je je 1000 stapjes gebruiken voor de helft van de uitslag.
Waar wil je hem voor gaan gebruiken?

Wel de potentionmeter komt op een buis, en die buis die draait dan met de rotor mee. Dus als de rotor draait dan draait de potentionmeter mee en zal dus de weerstandwaarde veranderen en akankelijk dan van die waarde van de potentionmeter moet dan het aantal graden op mijn LCD veranderen van 0° tot 360°

Gebruik een microcontroller met een AD converter.

De pot.meter tussen de 5 en de 0 volt aansluiten.
De loper van de pot.meter heeft dan een spanning van 0...5 volt, afhankelijk van de stand.

De stand van de pot.meter wordt dan ingelezen via de analoge ingang.

De analoge waarde (0...5 volt) wordt door de AD converter omgezet in een digitale waarde.

Deze waarde zo bewerken dat er de juiste waarde uitkomt.

Edit:
Welke micro gebruik je ?

Ok, die heeft dus meerdere ADC's (dat is dus goed).

Zoek eens in de datasheet naar de registers:
ADCON0
ADCON1
ADRESL
ADRESH

En daarna:
TRISA
CMCON

Als je de hele 360o wilt pakken, wordt het lastig met een gewone potmeter.
Als je op het uiterste komt, breekt je potmeter. Je moet dus al een 360o potmeter hebben.

En omdat je ook altijd een dood punt in je potmeter hebt, zul je 2 van die dingen gekoppeld moeten hebben.
Zodat je een tweede hebt als referentie, maar dan 90o verschoven tov de eerste.

Die dingen kosten overigens ca 80 Euro. Even ter info...
Ze werden bij een vorige baas van me gebruikt voor scheepsbesturing waarvan de schoefas 360o moest kunnen draaien.
De besturingshandels hadden dit systeem. Die bouwden wij.

Waarom maak je geen gebruik van een rotary encoder? Daarmee kun je evengoed meten wat voor hoek en welke richting de as heeft gedraait, alleen zit je niet aan een begin / eindwaarde, zoals met een potmeter die een keer niet verder wil.

Als je de hele 360o wilt pakken, wordt het lastig met een gewone potmeter.
Als je op het uiterste komt, breekt je potmeter. Je moet dus al een 360o potmeter hebben.

Het gaat hier om een 10 slagen pot.meter.

Waarom maak je geen gebruik van een rotary encoder?

Daarbij heb je wel het probleem dat je nooit zeker weet of je geen pulsje ben kwijt geraakt.
Ook als je de spanning inschakeld, dan weet je niet waar de as staat.
Nog beter is een absolute encoder, maar die dingen zijn erg duur !
http://en.wikipedia.org/wiki/Rotary_encoder

Het makkelijkst is het om de VRef voor de AD converter zo af te stellen dat een 360 graden uitslag van de potmeter direct de digitale waarde 360 (of 720, dan heb je 0.5 graden resolutie) geeft. Dan valt er weinig te rekenen...

Dat is een mogelijkheid, gaat helaas wel ten kosten van de nauwkeurigheid.

Het beste lijkt mij om zoveel mogelijk de 10 bits te benutten, en ook het spannings verloop zo groot mogelijk te houden.

zou ik dan het best mijn Vref instellen op op de spanning die overeenkomt met 180°?

om dan zo de rest van de graden daaruit af te leiden.

of wat zouden jullie mij aanbevelen als Vref.

PS: ik werk hierbij met PIC16F876

Hoeveel ohm is de pot.meter, en wel gedeelte gebruik je ervan ?

wel het idee is om een tientoeren potentionmeter te gebruiken. en de motor kan maar max. 1 keer rond draien dus het weerstand bereik zal wel klein zijn.

ik denk zelfs dat er dus van 0° tot 360° amper 2,5V verschil op zit.

Over welke weerstands waarde de potentionmeter zal krijgen, ben ik er nog niet voledig uit.

Want ik zou graag een zo groot mogenlijk spanningsverloop hebben zodat men uitlezing preciezer is.

zou ik dan een tientoeren pot. gebruiken van een grote weerstandswaarde of een tientoeren pot. gebruiken van een kleine weerstandswaarde.

Je bent alvast bedankt voor de goede tips die je me gaf.

Als de motor maar 1 keer rond kan draaien dan zou je een gewone pot.meter kunnen gebruiken.
De pot.meter aandrijven via een paar tandwieltjes met een verschillend aantal tanden.

Zodat de pot.meter as net iets langzamer draait.

Ik denk aan een goede 10K pot.meter.

Edit:
Waar is het voor ?
Want wie weet is de encoder oplossing ook prima te gebruiken !

Het dient om een digitale uitlezing van het aantal graden te krijgen op een LCD schermpje.

Want tot nu toe werk ik met een analoge uitlezing maar dat is onduidelijk en onbetrouwbaar.

Mijn idee van die tientoeren pot. was omdat ik een lineare gebied nodig heb van de potentionmeter.En de gewone potentionmeters hebben eerder een logaritmis gebied wat dus onnauwkeurigheden kan veroorzaken op de uitlezing.

Er zijn ook Lin (Lineair) pot.meter !
De pot.meter moet dus wel een Lineair type zijn.

http://nl.wikipedia.org/wiki/Potentiometer

>> Dat is een mogelijkheid, gaat helaas wel ten kosten van de nauwkeurigheid.

Een halve graad is zelfs voor een satelliet-rotor nauwkeurig genoeg. (Als het tenminste geen 5 mtr grote schotel is :) )

720 is al zo'n 9 1/2 bit precisie...

Het probleem waar ik nu nog mee zit te sukkelen is dat ik niet weet welke waarde ik aan Vref zou moeten geven.

zou ik vref 0Volt geven of zou ik Vref de spanning geven die gelijk is aan de spanning waneer de motor op 180° staat?

Laat de ADC eens van 0 ... 5 volt werken.

Welke waarde krijg je dan in de uiterste standen ?