www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

Nihanje ADC vrednosti
Pojdi na stran 1, 2  Naslednja
 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Osnove programiranja AVR-jev
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
marko11
Član
Član



Pridružen-a: Ned 14 Dec 2003 17:47
Prispevkov: 893
Aktiv.: 3.77
Kraj: Dobrepolje

PrispevekObjavljeno: Tor Nov 24, 2009 6:52 pm    Naslov sporočila:  Nihanje ADC vrednosti Odgovori s citatom

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, Brick wall 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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
kose19
Član
Član



Pridružen-a: Sre 02 Mar 2005 19:37
Prispevkov: 1228
Aktiv.: 5.18
Kraj: okolica Kobarida

PrispevekObjavljeno: Tor Nov 24, 2009 7:23 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
.
Član
Član



Pridružen-a: Ned 19 Sep 2004 22:04
Prispevkov: 16777193
Aktiv.: 70816.47

PrispevekObjavljeno: Tor Nov 24, 2009 8:05 pm    Naslov sporočila:   Odgovori s citatom

Brisana vsebina odstranjenega uporabnika.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Tonci
Član
Član



Pridružen-a: Tor 05 Avg 2008 18:14
Prispevkov: 629
Aktiv.: 3.06
Kraj: Domžale

PrispevekObjavljeno: Tor Nov 24, 2009 8:17 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
marko11
Član
Član



Pridružen-a: Ned 14 Dec 2003 17:47
Prispevkov: 893
Aktiv.: 3.77
Kraj: Dobrepolje

PrispevekObjavljeno: Tor Nov 24, 2009 8:26 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
matjazkariz
Član
Član



Pridružen-a: Sre 03 Nov 2004 18:09
Prispevkov: 1026
Aktiv.: 4.33

PrispevekObjavljeno: Tor Nov 24, 2009 8:35 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
.
Član
Član



Pridružen-a: Ned 19 Sep 2004 22:04
Prispevkov: 16777193
Aktiv.: 70816.47

PrispevekObjavljeno: Tor Nov 24, 2009 8:45 pm    Naslov sporočila:   Odgovori s citatom

Brisana vsebina odstranjenega uporabnika.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
mucek
Član
Član



Pridružen-a: Tor 01 Avg 2006 10:47
Prispevkov: 5529
Aktiv.: 24.06
Kraj: Domzale

PrispevekObjavljeno: Tor Nov 24, 2009 8:53 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
marko-x
Član
Član



Pridružen-a: Tor 02 Nov 2004 14:21
Prispevkov: 326
Aktiv.: 1.38
Kraj: prekmurje

PrispevekObjavljeno: Sre Nov 25, 2009 8:41 am    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
silvo_v
Član
Član



Pridružen-a: Pon 11 Jul 2005 22:00
Prispevkov: 146
Aktiv.: 0.62
Kraj: Domžale

PrispevekObjavljeno: Sre Nov 25, 2009 11:01 am    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
marko11
Član
Član



Pridružen-a: Ned 14 Dec 2003 17:47
Prispevkov: 893
Aktiv.: 3.77
Kraj: Dobrepolje

PrispevekObjavljeno: Čet Nov 26, 2009 7:29 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
lojzek
Član
Član



Pridružen-a: Pet 25 Jan 2008 8:00
Prispevkov: 3387
Aktiv.: 15.99

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

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
silvo_v
Član
Član



Pridružen-a: Pon 11 Jul 2005 22:00
Prispevkov: 146
Aktiv.: 0.62
Kraj: Domžale

PrispevekObjavljeno: Čet Nov 26, 2009 9:55 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
marko-x
Član
Član



Pridružen-a: Tor 02 Nov 2004 14:21
Prispevkov: 326
Aktiv.: 1.38
Kraj: prekmurje

PrispevekObjavljeno: Čet Nov 26, 2009 11:03 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
marko11
Član
Član



Pridružen-a: Ned 14 Dec 2003 17:47
Prispevkov: 893
Aktiv.: 3.77
Kraj: Dobrepolje

PrispevekObjavljeno: Ned Nov 29, 2009 1:49 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Osnove programiranja AVR-jev Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Pojdi na stran 1, 2  Naslednja
Stran 1 od 2

 
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
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