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



Pridružen-a: Ned 14 Dec 2003 17:47 Prispevkov: 893 Aktiv.: 3.77 Kraj: Dobrepolje
|
Objavljeno: Tor Nov 24, 2009 6:52 pm Naslov sporočila: Nihanje ADC vrednosti |
|
|
Pozdravljeni!
Uporabljam:
ATmega8, notranji oscilator 1MHz in ADC(5) vhod,
Bascom AVR
Problem je to, da mi ADC vrednost precej niha, tudi za 8 vrednosti.
Nekje tukaj na forumu sem čital, da se to nihanje da odpraviti z večkratnim odčitavanjem.
Citiram:
Sicer pa nihanja lahko zmanjšaš tudi softwersko z računanjem povprečja (z majhno zakasnitvijo zajameš na primer 10 meritev,
jih sešteješ in deliš z 10).
To je vse OK, problem pa nastopi, ker se mi niti malo ne sanja, kako naj izpišem kodo za računanje povprečja, lepo prosim za kakšen namig, kako naj pristopim k stvari.
LP,marko
----------------------------------------
Nisem elektronik, zato sprašujem, za nekatere so to čisto običajne zadeve.
Hvala. |
|
Nazaj na vrh |
|
 |
kose19 Član


Pridružen-a: Sre 02 Mar 2005 19:37 Prispevkov: 1228 Aktiv.: 5.18 Kraj: okolica Kobarida
|
Objavljeno: Tor Nov 24, 2009 7:23 pm Naslov sporočila: |
|
|
I As Byte , A As (toliko da ti prenese seštevek vseh 10 meritev)
.
.
.
For I = 1 To 10 'ponovi 10x
A=A+ADC
Next
A=A/10
Lcd A ' izpiše na lcd display
.
.
A v zadnji vrstici je rezultat
nekaj takega _________________ - Absens, carens -
- Tisti, ki ga ni, bo prikrajšan - |
|
Nazaj na vrh |
|
 |
. Član

Pridružen-a: Ned 19 Sep 2004 22:04 Prispevkov: 16777193 Aktiv.: 70816.56
|
Objavljeno: Tor Nov 24, 2009 8:05 pm Naslov sporočila: |
|
|
Brisana vsebina odstranjenega uporabnika. |
|
Nazaj na vrh |
|
 |
Tonci Član

Pridružen-a: Tor 05 Avg 2008 18:14 Prispevkov: 629 Aktiv.: 3.06 Kraj: Domžale
|
Objavljeno: Tor Nov 24, 2009 8:17 pm Naslov sporočila: |
|
|
borisz lahko malce več o tem? Nimam ravno takih problemov, ampak za 1 do 2 mi ponavadi niha, me pa na splošno zanima vzrok tega efekta in sama odpravitev?
Mogoče slabo napajanje oziroma nihanje reference? |
|
Nazaj na vrh |
|
 |
marko11 Član



Pridružen-a: Ned 14 Dec 2003 17:47 Prispevkov: 893 Aktiv.: 3.77 Kraj: Dobrepolje
|
Objavljeno: Tor Nov 24, 2009 8:26 pm Naslov sporočila: |
|
|
borisz je napisal/a: |
Takšno nihanje odpraviš s pravilnim načrtovanjem tiskanega vezja.
|
Kako pa se pravilno skonstruira tako vezje, na kaj je treba paziti? Jaz imam to sedaj napravljeno na probni ploščici.
LP, |
|
Nazaj na vrh |
|
 |
matjazkariz Član


Pridružen-a: Sre 03 Nov 2004 18:09 Prispevkov: 1026 Aktiv.: 4.33
|
Objavljeno: Tor Nov 24, 2009 8:35 pm Naslov sporočila: |
|
|
Pomeri z osciloskopom, če dejansko ta nihanja na merjeni liniji obstajajo, ali se kje na tvojem vezju pojavijo. Preveri tudi kaj pravi tvoj napajalni del vezja. Če so na merjeni liniji ter če je frekvenca dovolj velika, dodaj na vhod na vezju preprost filter z uporom in kondenzatorjem. Če pa so ta nihanja z zelo nizko frekvenco, ti pa res ne ostane drugega kot softversko povprečit.
Spodaj je en primer kode za povprečit rezultat. Ne zaseda mnogo spomina (ni potreben buffer za na primer zadnjih 10 vrednosti) in ni časovno potraten:
Koda: |
Average_Tank_Level_Val = ((Average_Tank_Level_Val<<3) - Average_Tank_Level_Val + True_Tank_Level_Val)>>3; |
To sem uporabil za glihanje branja nivoja goriva v rezervoarju, kjer je frekvenca valovanja prenizka, da bi jo filtriral. Average... je povprečena, True... pa trenutna izmenrjena vrednost. Če bi rad povprečil še na daljši čas preprosto namesto 3 vpiši 4,5... _________________ LP, Matjaž |
|
Nazaj na vrh |
|
 |
. Član

Pridružen-a: Ned 19 Sep 2004 22:04 Prispevkov: 16777193 Aktiv.: 70816.56
|
Objavljeno: Tor Nov 24, 2009 8:45 pm Naslov sporočila: |
|
|
Brisana vsebina odstranjenega uporabnika. |
|
Nazaj na vrh |
|
 |
mucek Član


 
Pridružen-a: Tor 01 Avg 2006 10:47 Prispevkov: 5529 Aktiv.: 24.06 Kraj: Domzale
|
Objavljeno: Tor Nov 24, 2009 8:53 pm Naslov sporočila: |
|
|
Sam sem še največkrat imel probleme z ne dovolj stabilno napetostjo na Vref pinu, ki mi je povzročala skakanje merjene vrednosti gor ali dol. Poskusi za finto uporabiti interno referenco oz. za test na Vref poveži nek stabilen napetostni vir (baterijo).
LP, Grega |
|
Nazaj na vrh |
|
 |
marko-x Član

Pridružen-a: Tor 02 Nov 2004 14:21 Prispevkov: 326 Aktiv.: 1.38 Kraj: prekmurje
|
Objavljeno: Sre Nov 25, 2009 8:41 am Naslov sporočila: |
|
|
Enkrat sem imel problem z nihanjem ADC vrednosti.
Zadevo sem uredil z elektrolitom (1uF) na vhodu Adc in daljšim časom zajema Adc (50 - 100 ms).
Preveri z osciloskopom napajalno napetost (nihanje) in vhodno napetost na ADC. |
|
Nazaj na vrh |
|
 |
silvo_v Član

Pridružen-a: Pon 11 Jul 2005 22:00 Prispevkov: 146 Aktiv.: 0.62 Kraj: Domžale
|
Objavljeno: Sre Nov 25, 2009 11:01 am Naslov sporočila: |
|
|
Možen vzrok za nihanje vrednosti AD pretvorbe je tudi previsoka ura za AD pretvorbo. Ta ura mora biti med 50 in 200 kHz.
Lp |
|
Nazaj na vrh |
|
 |
marko11 Član



Pridružen-a: Ned 14 Dec 2003 17:47 Prispevkov: 893 Aktiv.: 3.77 Kraj: Dobrepolje
|
Objavljeno: Čet Nov 26, 2009 7:29 pm Naslov sporočila: |
|
|
silvo_v je napisal/a: |
Možen vzrok za nihanje vrednosti AD pretvorbe je tudi previsoka ura za AD pretvorbo. Ta ura mora biti med 50 in 200 kHz.
Lp |
Kje ali kako nastaviš to uro V Bascom AVR?
marko-x
Citiram: |
daljši časom zajema Adc (50 - 100 ms). |
Kako se nastavi ADC čas zajemanja?
LP,
___________________________________________
Kdor zna, je tako preprosto. |
|
Nazaj na vrh |
|
 |
lojzek Član



Pridružen-a: Pet 25 Jan 2008 8:00 Prispevkov: 3387 Aktiv.: 15.99
|
Objavljeno: Čet Nov 26, 2009 9:31 pm Naslov sporočila: |
|
|
Pa če napravo napajaš s svitcherjem, ti tudi to lahko moti odčitavanje. Ko sem jaz zamenjal navaden napajalnik s svitcherjem, mi je meritev temperature skakala tudi za 2°C, v primerjavi s prejšnjimi 0,1- 0,2 °C. Merim pa s KTY sondami in uporabljam povprečje treh zaporednih meritev. |
|
Nazaj na vrh |
|
 |
silvo_v Član

Pridružen-a: Pon 11 Jul 2005 22:00 Prispevkov: 146 Aktiv.: 0.62 Kraj: Domžale
|
Objavljeno: Čet Nov 26, 2009 9:55 pm Naslov sporočila: |
|
|
marko11 je napisal/a: |
Kje ali kako nastaviš to uro V Bascom AVR?
|
Deljenje urinega signala se izvede s spodnjimi tremi biti registra ADCSRA.
Bascoma ne poznam, v C-ju pa zapišem takole:
ADCSRA = 0x83; // AD enable + prescaler (1M/8=125 kHz)
Lp |
|
Nazaj na vrh |
|
 |
marko-x Član

Pridružen-a: Tor 02 Nov 2004 14:21 Prispevkov: 326 Aktiv.: 1.38 Kraj: prekmurje
|
Objavljeno: Čet Nov 26, 2009 11:03 pm Naslov sporočila: |
|
|
Malo sem se nerodno izrazil, izza ukaza Getadc(0) sem povečal pauzo na 100ms
(Waitms 100).
Zadeva se je izkazala kot dobra rešitev v mojem primeru. |
|
Nazaj na vrh |
|
 |
marko11 Član



Pridružen-a: Ned 14 Dec 2003 17:47 Prispevkov: 893 Aktiv.: 3.77 Kraj: Dobrepolje
|
Objavljeno: Ned Nov 29, 2009 1:49 pm Naslov sporočila: |
|
|
mucek je napisal/a: |
Sam sem še največkrat imel probleme z ne dovolj stabilno napetostjo na Vref pinu, ki mi je povzročala skakanje merjene vrednosti gor ali dol. Poskusi za finto uporabiti interno referenco oz. za test na Vref poveži nek stabilen napetostni vir (baterijo).
LP, Grega |
Tako kot je Grega predlagal, vse skupaj sem priklopil na akumulatorsko baterijo, sedaj pa ADC ne "skače" več.
Torej je potrebno sfiltrirati vhodno napetost?
LP,marko
______________________________________________________
Če veš, je tako preprosto! |
|
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: 493 dni
Powered by phpBB © 2001, 2005 phpBB Group
|