Kazalo po Svet elektronike forumu Svet elektronike
Revija za prave elektronike
 
AlbumAlbum   Pomoč pogostih vprašanjPomoč pogostih vprašanj   IščiIšči   Seznam članovSeznam članov   Skupine uporabnikovSkupine uporabnikov   Registriraj seRegistriraj se 
 Tvoj profilTvoj profil   Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil   PrijavaPrijava 

kako izračunat

 
Objavi novo temo   Odgovori na to temo    Kazalo po Svet elektronike forumu -> Analogna elektronika
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
Boštjan
Profesionalec


Pridružen/-a: Tor Mar 2004 22:48
Prispevkov: 100

PrispevekObjavljeno: Tor Jan 29, 2008 1:01 pm    Naslov sporočila: kako izračunat Odgovori s citatom

V bascomu bi rad naredil izračun AD-ja 0-1023 v stopinje -20 do 120ºC
Vhod v AD je 0-5V iz merilnega ojačevalnika

LP Boštjan
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
Domenius
Profesionalec


Pridružen/-a: Čet Feb 2005 15:58
Prispevkov: 75
Kraj: Trbovlje

PrispevekObjavljeno: Tor Jan 29, 2008 1:13 pm    Naslov sporočila: Odgovori s citatom

Kateri senzor? Linearna ali nelinearna karakteristika?
_________________
It's electric!
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo Obišči avtorjevo spletno stran
Boštjan
Profesionalec


Pridružen/-a: Tor Mar 2004 22:48
Prispevkov: 100

PrispevekObjavljeno: Tor Jan 29, 2008 1:25 pm    Naslov sporočila: linearno Odgovori s citatom

pt100 ali pt1000
linearno
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
Gustav
Profesionalec


Pridružen/-a: Pon Jun 2005 17:19
Prispevkov: 768

PrispevekObjavljeno: Tor Jan 29, 2008 1:57 pm    Naslov sporočila: Odgovori s citatom

Najprej umeri senzor v kombinaciji z delilnikom, katerega si uporabil. Ko imas doloceno spodnjo in zgornjo mejo ter offset za poravnavo skale, je

temperatura = odcitek_ADCja * ((zgornja_meja_rezultata - spodnja_meja_rezultata) / (odcitek_ADCja_na_zgornji_meji - odcitek_ADCja_na_spodnji_meji)) + offset.

Ce bi recimo tvoj delilnik dal od sebe Vref- pri -20 stopinjah in Vref+ pri 120 stopinjah, bi to pomenilo, da je

temperatura = odcitek_ADCja * (140 / 1023) - 20

Odcitek 329 bi tako recimo pomenil, da je senzorju prijetno toplo Very Happy

Pazi na predznake ! Pazi na obseg temperaturega obmocja (120 - -20 je napacen rezultat - racunaj v stopinjah Kelvina, ce se ti zdi nelogicno) !
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
Boštjan
Profesionalec


Pridružen/-a: Tor Mar 2004 22:48
Prispevkov: 100

PrispevekObjavljeno: Tor Jan 29, 2008 8:21 pm    Naslov sporočila: decimalke Odgovori s citatom

Start Adc

Dim W As Word , P As Word , V As Word , Channel As Byte , I As Byte , Cols As Byte
Dim Ps As String * 3
Dim Nt As Integer , Ad As Integer , Izmerjena As Integer
Dim Vmesna As Integer
Cls

Do
W = Getadc(0)
V = W / 20
Nt = 140 / 1023
Vmesna = Nt - 20
P = W * Vmesna
Ps = Str(p)
Locate 1 , 1
Lcd "ADC=" ; W ; " "
Locate 1 , 10
Lcd P

Locate 2 , 0
Lcd "vm=" ; Vmesna

Locate 2 , 10
Lcd "n=" ; Napetost
Waitms 100
Loop
End

trenutno imam tak program pa ne dela nekaj ok. "vm" vmesna dobim -20
"NT" pa 0. Ali lahko procesor izračuna 140/1023 in kako rešiš decimalo
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
Vlado
Profesionalec


Pridružen/-a: Ned Jan 2004 16:11
Prispevkov: 556
Kraj: Ljubljana

PrispevekObjavljeno: Tor Jan 29, 2008 9:36 pm    Naslov sporočila: Kako izračunat Odgovori s citatom

Boštjan,
če je to vsa koda programa, potem ne more delati prav.
Pozabil si nastaviti ADC :
(CONFIG ADC = single, PRESCALER = AUTO, REFERENCE = opt).
Menim pa tudi da branje temperature vsakih 100 ms ni potrebno, prikaz na LCD-ju bo težko brati. Svetujem ti da na LCD podatke prikazuješ samo če se razlikujejo od prej prebranih z vsaj nekaj sekundnim zamikom.

Citiram:
Ali lahko procesor izračuna 140/1023 in kako rešiš decimalo

za to obstaja ukaz FUSING, vendar prej moraš vrednost pretvoriti v string.

Vlado
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
Gustav
Profesionalec


Pridružen/-a: Pon Jun 2005 17:19
Prispevkov: 768

PrispevekObjavljeno: Tor Jan 29, 2008 10:45 pm    Naslov sporočila: Odgovori s citatom

Glede Bascoma ti bo pomagal kdo drug (sam ga ne uporabljam in ga ne poznam dovolj dobro, primeri so napisani v psevdo-kodi in so zgolj po nakljucju morda podobni Bascomu), lahko pa odgovorim na del tvojega vprasanja:

Nikjer ne pise, da morajo biti racunske operacije razporejene ravno tako, kot jih ti preberes (obvezuje te samo precedenca operatorjev, vse ostalo je tvoja stvar !). Ce ves, da dolocen MCU ne podpira dela s plavajoco (ali celo samo s fiksno) vejico, lahko vsaj premislis kako se da zamenjati vrstni red operacij tako, da izgubis karseda malo infomacije med koraki.

Cetudi Bascom morda zna izvesti FP operacije v SW, je precej verjetno, da bo enako natancna - a obenem bistveno hitrejsa - celostevilska operacija z zamenjanim vrstnim redom. Torej ja, MCU to najbrz lahko izracuna, a lahko se toliko "lepse" izracuna tole:

spremenljivka = odcitek * 140
spremenljivka = spremenljivka / 140
spremenljivka = spremenljivka + 20

(ob tem mora biti "spremenljivka" dovolj obseznega tipa, da lahko nosi zmnozek 1023 * 140, torej vsaj 18 bitov, oz. v tvojem primeru 32, ker je to prva okrogla vrednost, razen ce bos sam napisal funkcijo za mnozenje)

Torej, najprej jo povecas (mnozis) kolikor je to mozno, potem sele razcepis (delis), ne pa obratno, kakor si se tega lotil ti. 140 / 1023 je namrec manj kot 1, kar je v celem stevilu zapisano kot 0, torej je omenjeni rezultat povsem pricakovan (-20).

Ob tem te moram ocitno se enkrat opozoriti, da je bil prejsnji primer s konkretnimi stevilkami zgolj to (primer) in da velja samo ob nastetih predpostavkah, katere si ocitno gladko ignoriral. Ni prevec verjetno, da bosta skrajna odcitka ravno 0 in 1023 ... celo nasprotno; stavim da vsaj eden od nju ni, precej verjetno pa tudi drugi ne. Vrednosti je torej potrebno prilagoditi dejanskim razmeram, ki so odvisne vsaj od uporabljenega senzorja in delilnika: kalibracija.
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
Boštjan
Profesionalec


Pridružen/-a: Tor Mar 2004 22:48
Prispevkov: 100

PrispevekObjavljeno: Sre Jan 30, 2008 11:21 am    Naslov sporočila: aha Odgovori s citatom

Hvala lepa zato sem torej dobil nič, nikakor se mi ni posvetilo, zato so tudi obstali vsi nadaljni izračuni. Plavajočo vajico pa moram malo ponovit.
lp Boštjan
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
kos19
Profesionalec


Pridružen/-a: Čet Feb 2006 18:25
Prispevkov: 55

PrispevekObjavljeno: Čet Jan 31, 2008 9:26 pm    Naslov sporočila: Odgovori s citatom

Na tak način sem jaz preračunaval za izpis napetosti na dve decimalki.

W=vrednost adc merjene napetosti 19.94V

W1 = W * 100 '102000
W2 = W1 / 5115 '102000/5115=19,94
V = W * 10000 '1020*10000=10200000
V1 = V / 5115 '10200000/5115=1994
W3 = W2 * 100 '19*100=1900
V2 = V1 - W3 '1994-1900=94
If V2 <= 9 Then
Locate 1 , 5
Lcd "0" ; V2 ; "V "
Else
Locate 1 , 1
Lcd " U" ; "= " ; W2 ; "." ; V2 ; "V "
End If
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo    Kazalo po Svet elektronike forumu -> Analogna elektronika Časovni pas GMT + 1 ura, srednjeevropski - zimski čas
Stran 1 od 1

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
You cannot attach files in this forum
You cannot download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group