 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
Peter Član


Pridružen-a: Sre 30 Jun 2004 12:55 Prispevkov: 375 Aktiv.: 1.58 Kraj: Pod krvavcem nekje
|
Objavljeno: Sre Mar 22, 2006 3:07 pm Naslov sporočila: At tiny26 in KTY10-5 |
|
|
Lep pozdrav mene pa zanima če se je kdo od vas že lotil izdelave termometra z
AT TINY26 in pa KTY10-5 (KTY11-5). Jaz sem namreč izdelal vezje na testni ploščici pa me zanima kako odčitavat temperaturo na vhodu, če vemo da je vhod mikrokrmilnika od 0 do 5V. in pa da prikažemo temperaturo na 1 decimalno mesto npr: 10.5°C
Celo številčni del vem približno kako dobim 1024 delimo z 5 in dobimo volte ki so na vhodu potem pomnožimo z nekim faktorjem da dobimo v stopinjah temperaturo samo to deluje takrat ko mi spreminjamo napetost vhoda od 0 do 5V kaj pa takrat ko se le to spreminja le okoli 2 pa do 4V v tem primeru pa je stvar drugačna.
Lp Peter
_________________ Vse se da pokvarit, le če se dovol časa ukvarjaš z njo!!! |
|
Nazaj na vrh |
|
 |
. Član

Pridružen-a: Ned 19 Sep 2004 22:04 Prispevkov: 16777193 Aktiv.: 70831.26
|
Objavljeno: Sre Mar 22, 2006 3:46 pm Naslov sporočila: |
|
|
Brisana vsebina odstranjenega uporabnika.
|
|
Nazaj na vrh |
|
 |
Domenius Član



Pridružen-a: Sre 30 Nov 2005 14:15 Prispevkov: 1188 Aktiv.: 5.02 Kraj: Medvode
|
Objavljeno: Sre Mar 22, 2006 3:46 pm Naslov sporočila: |
|
|
Jaz sicer nisem delal z KTY10-5 (KTY11-5), ampak z KTY81-122 senzorjem. Vezavo sem naredil po spodnji sliki. Program sem napisal v BascomAVR in mislim da bo dovolj za orientacijo tudi če pišeš v katerem drugem programu.
Koda: |
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc
Vadc = Getadc(channel)
Vadc = Vadc * 48
Vadc = Vadc / 10 'tukaj dobiš npr 2451 kar pomeni da je 2,451V
|
Vadc je odčitana vrednost voltaže - ni čisto natančna, je pa zadovoljiva glede na odstopanja upornosti senzorja. Potem pa po enčbi na sliki izračunaš upornost KTY senzorja.
Temperaturo iz upornosti pa dobiš po formuli iz data sheeta. Čeprav sem meni zdi bolj enostavno upoštevati, da se upornost skoraj linearno spreminja z tempareturo - je bolj enastavno izračunati, pa še manj pomnilnika in flasha porabiš.
Jaz sem si naredil tako, da pri izračunih temperature izkoriščam linearnost in rezultati merjenja (natančnost) je dobra - za tempareture od -10°C do 70°C - v tem območju sem testiral.
Opis: |
|
Velikost datoteke: |
4.01 KB |
Pogledana: |
5692 krat |

|
_________________ It's electric!
Nazadnje urejal/a Domenius Tor Jun 20, 2006 2:44 pm; skupaj popravljeno 1 krat |
|
Nazaj na vrh |
|
 |
Domenius Član



Pridružen-a: Sre 30 Nov 2005 14:15 Prispevkov: 1188 Aktiv.: 5.02 Kraj: Medvode
|
Objavljeno: Sre Mar 22, 2006 3:49 pm Naslov sporočila: |
|
|
Boris, za kakšno sekundo si me prehitel . Sokrat, ti je to kaj poznano ?
_________________ It's electric! |
|
Nazaj na vrh |
|
 |
Peter Član


Pridružen-a: Sre 30 Jun 2004 12:55 Prispevkov: 375 Aktiv.: 1.58 Kraj: Pod krvavcem nekje
|
Objavljeno: Sre Mar 22, 2006 4:04 pm Naslov sporočila: |
|
|
Ja res je da senzor ni linearen zato bi potreboval pa Lookup tabelo da iz nje prebereš vrednosti oziroma da lineariziraš vrednosti odčitka da je nakoncu res taprava temperatura prikazana
Sem priklopil po sliki pa nisem bil najbolj zadovoljen z rezultatom.
LP peter
_________________ Vse se da pokvarit, le če se dovol časa ukvarjaš z njo!!! |
|
Nazaj na vrh |
|
 |
Domenius Član



Pridružen-a: Sre 30 Nov 2005 14:15 Prispevkov: 1188 Aktiv.: 5.02 Kraj: Medvode
|
Objavljeno: Sre Mar 22, 2006 4:39 pm Naslov sporočila: |
|
|
Če ni dobrega rezultata je potem verjetno nekaj narobe z referenčno napetostjo. Na AREF priklopi +5V, vmes pa daj kondenzator 100nF proti masi. Moj KTY ima pri sobni temperaturi upornost 1k . Za drug upor sem dal tudi 1k , da se napetost porazdeli. Poizkusi za drug upor uporabiti isto vrednost kot jo ima tvoj senzor pri sobni temperaturi.
_________________ It's electric! |
|
Nazaj na vrh |
|
 |
Domenius Član



Pridružen-a: Sre 30 Nov 2005 14:15 Prispevkov: 1188 Aktiv.: 5.02 Kraj: Medvode
|
Objavljeno: Sre Mar 22, 2006 5:02 pm Naslov sporočila: |
|
|
Pogledal sem data sheet od KTY11-5 in mislim, da bi lahko upošteval približno linearnost. Sam sem se najprej spravil pisati program, ki bi temperaturo izračunal po formuli na sliki (enaka je tudi za tvoj senzor), pa sem ugotovil da z upoštevanjem "linearnosti" dobim skoraj enake izračune (+- 1°C) - v območju od 5°C do približno 40°C pa čisto enake. Program sem napisal tako, da izpisuje cele številke, brez decimalk, tako da je možno, da je razlika v decimalkah. Seveda je pa odvisno kako natančno rabiš.
Opis: |
|
 Download |
Ime datoteke: |
Formula.GIF |
Velikost datoteke: |
2.43 KB |
Downloadano: |
33 krat |
_________________ It's electric! |
|
Nazaj na vrh |
|
 |
Domenius Član



Pridružen-a: Sre 30 Nov 2005 14:15 Prispevkov: 1188 Aktiv.: 5.02 Kraj: Medvode
|
Objavljeno: Sre Mar 22, 2006 5:08 pm Naslov sporočila: |
|
|
Pripenjam še program:
Koda: |
$sim
$regfile = "m8def.dat"
$crystal = 8000000
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portb.3 , Db6 = Portb.4 , Db7 = Portb.5 , E = Portc.1 , Rs = Portc.0
Config Lcdbus = 4
Cursor Off
Cls
Dim Vadc As Word , Temperatura As Long , R As Word
Dim Beta As Long, Channel as Byte
Deflcdchar 0 , 8 , 20 , 8 , 3 , 4 , 4 , 3 , 32
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc
Channel = 3
Do
Vadc = Getadc(channel)
Vadc = Vadc * 48
Vadc = Vadc / 10
R = 5000000 / Vadc
R = R - 1823
Beta = 1187 * R
Temperatura = Beta / 10000
Cls
Lcd "T=" ; Temperatura ; Chr(0)
Wait 1
Loop
|
_________________ It's electric! |
|
Nazaj na vrh |
|
 |
Domenius Član



Pridružen-a: Sre 30 Nov 2005 14:15 Prispevkov: 1188 Aktiv.: 5.02 Kraj: Medvode
|
Objavljeno: Sre Mar 22, 2006 5:39 pm Naslov sporočila: |
|
|
Še razlaga programa oz. Do-Loop zanke:
Del ki se začne z Vadc je merjenje napetosti na senzorju - merim z 10 bitnim ADC. Pri R=5000000 / Vadc je številka 5000000 = Vdd x R1 iz formule pri shemi vezave. Potem se od R (upornost KTY senzorja) odšteje R1 (in dobimo realno upornost senzorja), potem pa se od R še enkrat odšteje številka 823. To pa zato, ker je pri 0°C potem tudi izračunana upornost KTY senzorja tudi 0. To ni več realna upornost, pomaga pa pri računanju temperatur manjših od 0°C, ker samodejno doda negativni predznak - ker je potem izračunana nerealna upornost manjša od 0. Zato torej od R odštejemo 1823. Beta je samo ena vmesna točka, kjer upornost zmnožimo z faktorjem k (1187), ki ga dobimo iz enačbe premice y=k*x - x je upornost, y pa temperatura. Pri ukazu Temperatura = Beta / 10000 pa samo delimo, da dobimo prave številke - namesto npr. 243541 dobimo 24). Tukaj bi se dala natančnost še s parimi programskimi vrsticami povečat, tako da npr. 249853 ne bi bilo na koncu 24 ampak 25.
Tisti Chr(0) pa je samo znak, kjer sta skupaj stlačena °C na mestu, kjer je ponavadi samo ena črka ali številka oz. znak.
Upam da razumete razlago.
_________________ It's electric! |
|
Nazaj na vrh |
|
 |
Peter Član


Pridružen-a: Sre 30 Jun 2004 12:55 Prispevkov: 375 Aktiv.: 1.58 Kraj: Pod krvavcem nekje
|
Objavljeno: Sre Mar 22, 2006 8:38 pm Naslov sporočila: |
|
|
Sedaj pa vidim kako sit ti to izvedel je precej drugačno od mene je jaz sem samo z napetosti ven izračunal temperaturo tu pa upoštevaš še druge faktorje kot je upornost upora. Domenius hvala za dobre nasvete veš na vse pa človek ne pomisli bom pa poiskusil ta tvoj program tudi jaz uporabljam bascomAVR
_________________ Vse se da pokvarit, le če se dovol časa ukvarjaš z njo!!! |
|
Nazaj na vrh |
|
 |
Domenius Član



Pridružen-a: Sre 30 Nov 2005 14:15 Prispevkov: 1188 Aktiv.: 5.02 Kraj: Medvode
|
Objavljeno: Sre Mar 22, 2006 10:15 pm Naslov sporočila: |
|
|
Ni problema . Mislim da z mojim programom ne boš dobil točnih rezultatov saj se senzorja razlikujeta - sicer nisem gledal karakteristik vendar imata po mojem mnenju drugačne - drugače ne vem zakaj bi imela različni oznaki. Mogoče zaradi območja merjenja? Ne vem. Poizkusi napisati svoj program (če moj ne bo delaval) s pomočjo opisa programa. Če pa boš imel probleme z razbiranjem oz. razumevanjem opisa programa (priznam, sem malce čudno napisal) pa povej, pa ti ga bom jaz napisal.
Pa nekaj bi te prosil: bi lahko uporabljal vejice in pike ker je malo težje brati tvoje poste. Hvala.
Lp, Domen
_________________ It's electric!
Nazadnje urejal/a Domenius Sre Mar 22, 2006 10:50 pm; skupaj popravljeno 1 krat |
|
Nazaj na vrh |
|
 |
milan62 Član

Pridružen-a: Ned 04 Jan 2004 23:19 Prispevkov: 2391 Aktiv.: 10.09 Kraj: Kranj
|
|
Nazaj na vrh |
|
 |
Peter Član


Pridružen-a: Sre 30 Jun 2004 12:55 Prispevkov: 375 Aktiv.: 1.58 Kraj: Pod krvavcem nekje
|
Objavljeno: Čet Mar 23, 2006 12:19 pm Naslov sporočila: |
|
|
MI747
Hvala za stran sem pogledal. Vendar je moja šibka točka nemščina, tako da razumem samo nekaj stvari
Domenius ja se bom potrudil napisat program. Negre se mi toliko, da mi nekdo napiše program. Bolj je važno to, da mi nekdo da neke napotke glede pisanja programa.
LP Peter
_________________ Vse se da pokvarit, le če se dovol časa ukvarjaš z njo!!! |
|
Nazaj na vrh |
|
 |
|
|
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 Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 492 dni
Powered by phpBB © 2001, 2005 phpBB Group
|