0-5V kompass referanse

D

DrWhoF

Guest
Jeg må lage en enhet som tar to 0-5V signaler: en kommer 0-360 ° kompass (referanse) og en kommer fra et instrument fra innsiden av et rør.
Tube er overskriften er fra kompass og instument sin posisjon må beregnes med referanse til kompasset og output som ASCII via serieport.
Jeg trenger A / D-konvertering og litt matte for å beregne riktig posisjon av instrumentet.
Alle hjelpe er meget verdsatt.
DrWho<img src="http://www.edaboard.com/images/smiles/icon_biggrin.gif" alt="Very Happy" border="0" />
 
Hvis du er fornøyd med 10-bits konvertering, kan du gjøre det med PICAXE-08m, som har tre 10-bits A / D og seriell port ..

Compass: 0-359deg <=> 0-5VDC <=> 0-1023
Instrument: 0-359deg <=> 0-5VDC <=> 0-1023

Den absolutte posisjon i instrumentet kan beregnes på følgende måte:

Hvis [kompass] ≤ [Instrument] så [Resultat] = [Instrument] [kompass]
Hvis [kompass]> [Instrument] så [Resultat] = 1023 ([kompass] [Instrument])

Slik output [Resullt] i 0 ° -359 ° utvalget du nødt til å multiplisere den ved 360 og dele den med 1024, men i PICAXE-BASIC dette ikke burde være et problem ..

Rgds,
IanP

 
Hei Ianp.
Jeg har ikke picaxe-08m, men jeg har picaxe-18.
Kan jeg bruke det og du kan komme opp med noen picaxe-Basic-kode

<img src="http://www.edaboard.com/images/smiles/icon_cry.gif" alt="Gråter eller Veldig trist" border="0" />Takk<img src="http://www.edaboard.com/images/smiles/icon_biggrin.gif" alt="Very Happy" border="0" />
 
Prøv Thie kode:

Code:

"Mikro: PICAXE-08m eller PICAXE-18X

Input 1 [pin6] kompass som referanse [Ref]

Input 2 [pin5] koderen som instrument [Instr]setfreq M8 'seriell fart 9600bps ..start:

readadc10 1, W0 'Compass som referanse => Ref til W0

readadc10 2, W1 'Encoder som virkemiddel => Instr til w1hvis W0 <= w1 deretter CASE1 'Res = Instr - Ref

hvis W0> w1 deretter case2 'Res = 360 - (Ref - Instr)

goto startTilfelle 1:

w2 = w1 - W0

goto Calccase2:

w2 = 1023 - W0 w1 '0 / 359 => 0 / 1023 ..
med 10-bits ADC ..Calc:

W3 = w2 * 30 '12 * 30 = 360

W3 = w3 / 32 '32 * 32 = 1024

W3 = W3 * 12

W4 = W3 / 32sertxd (# W4, $ 0D, 0A $) 'sende W4 som ASCII [# W4]

'String format: [W4 CR LF]

pause 1000 'vente 1sec

goto startslutt
 
Jeg skal teste den på mandag.
thx<img src="http://www.edaboard.com/images/smiles/icon_neutral.gif" alt="Nøytral" border="0" />
 
Det fungerer fint, men det er lite problem når instrumentet er potensiometeret er mellom 5V og 0V (kontinuerlig rotasjon): lesingen kan være alt mellom 0 og 359deg.
Hvordan kan dette rettes opp?
DrWho

 
Høres ut som potten er død band feil ..
Avhengig av verdien av potensiometeret, bruk 10kΩ-100kΩ motstand å trekke spenningen ned til GND eller opptil Vcc ..
I tillegg bør du vurdere RF / CF - se:
ftp://ftp.campbellsci.com/pub/csl/outgoing/uk/technotes/31_nov05.pdf

Rgds,
IanP

 
THX<img src="http://www.edaboard.com/images/smiles/icon_biggrin.gif" alt="Very Happy" border="0" />
 

Welcome to EDABoard.com

Sponsor

Back
Top