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 

AVR-merjenje napetosti?
Pojdi na stran Prejšnja  1, 2
 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> AVR, LPC900, x51
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
upornik
Član
Član



Pridružen-a: Ned 09 Jan 2005 22:35
Prispevkov: 261
Aktiv.: 1.10
Kraj: Celje

PrispevekObjavljeno: Sob Sep 13, 2008 8:56 pm    Naslov sporočila:   Odgovori s citatom

Dkone, žal nimam kode v Bascomu, ampak v C-ju...
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
dkone
Član
Član



Pridružen-a: Sre 07 Mar 2007 18:53
Prispevkov: 2116
Aktiv.: 9.51
Kraj: Krško

PrispevekObjavljeno: Ned Sep 14, 2008 11:25 am    Naslov sporočila:  Re: Inteligentni brzinomer Odgovori s citatom

sailor je napisal/a:
Živjo Denis,
izgleda, da se počasi približuješ posameznim elementom tistega, kar bi jaz rabil?
Bova res naredila diplomo?
gl, DD+


Tako ja,cilj mi je narediti konkreten V/A meter za dvojni usmernik,ki ga tudi počasa končujem,zato sem se lotil izdelave metra,čeprav jih je na tem forumu kar nekaj,pa vendar sem se marsikaj naučil ob sami izdelavi.


upornik je napisal/a:
Dkone, žal nimam kode v Bascomu, ampak v C-ju...


Upornik,a bi vseeno prilepil program?Ali pa poslal na ZS...

_________________
Denis
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
upornik
Član
Član



Pridružen-a: Ned 09 Jan 2005 22:35
Prispevkov: 261
Aktiv.: 1.10
Kraj: Celje

PrispevekObjavljeno: Pon Sep 15, 2008 1:01 am    Naslov sporočila:   Odgovori s citatom

Koda:
/********************************inicializacija A/D pretvornika*********************************/
void inicializacija_AD()
{
   // RIGHT adjust A/D rezultat.
   ADMUX &= 0b11011111;
   
   //izbira A/D vhoda (PORTC.1)
   ADMUX |= 0b00000001;

   // Nastavi referneco A/D pretvornika na interno 2,56V z zunanjim kondenzatorjem na AREF pinu
   ADMUX |= 0b01000000;
     
   // Omogoči, da se pojavi prekinitvena rutina po končani A/D pretvorbi
   ADCSRA |= 0b00001000;
   
   // Set A/D prescalar to 64 --> 125KHz frekvenca vzorčenja pri frekvenci 8MHz
   ADCSRA |= 0b00000110;


   // Omogočimo A/D pretvornik
   ADCSRA |= 0b10000000;   

   // ukaz za generalno vključitev prekinitev
   sei();
}

/*****************************funkcija AD_pretvorba_napetost()**********************************/
void AD_pretvorba_napetost()
{
// začni A/D pretvorbo
ADCSRA |= 0b01000000;
//počakaj, da se pretvorba konča
_delay_ms(1);

}
/***********************************************************************************************/


/****************************prekinitvena rutina A/D pretvornika********************************/

ISR(ADC_vect)
 
{
//v sprem. napetost vpišemo vrednost A/D pretvorbe
napetost = ADC;
return;
}
/***********************************************************************************************/





//definicija globalne spremenljivke napetost
unsigned_int napetost;

//glavni program
void main()
{
inicializacija_AD();

//definicija spremenljivk
unsigned int povprecje_napetosti, rezultat=0;

//neskončna_zanka
while(1)
{
  for(int i=0; i<5; i++)
 {
 AD_pretvorba_napetost();
 rezultat = rezultat + napetost;
 }
povprecje_napetosti=rezultat/5;

unsigned int desetice = povprecje_napetosti/10;
unsigned int decimalka = povprecje_napetost%10;

_delay_ms(100);
}

return(0);
}


Iz tistega programa sem težko skopiral del programa, zato sem tu na novo napisal izračun kar v glavnem programu. V glavnem programu se približno na malo več kot 100ms izračuna povprecje 5 merjenj.
Lahko da je kje kakšna napakica, ker nisem prevedel programa.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
lojzek
Član
Član



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

PrispevekObjavljeno: Pon Sep 15, 2008 9:28 am    Naslov sporočila:   Odgovori s citatom

Rolling Eyes Sem rešil problem nihanja napetosti. Kaj bi bilo narobe drugega, kot moja napaka in površnost pri branju datasheeta. Za branje sem izbral nepriklopljen kanal... Se pravi sem napetost spreminjal na prvem kanalu, bral pa drugega Rolling Eyes

Ampak mi je vseeno nekaj kazalo, in to celo podobno pravim rezultatom.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
opazovalec
Neznanec
Neznanec



Pridružen-a: Sre 27 Avg 2008 13:11
Prispevkov: 4
Aktiv.: 0.02

PrispevekObjavljeno: Pon Sep 15, 2008 3:05 pm    Naslov sporočila:   Odgovori s citatom

Moj problem ima povsem enak naslov, zato objavljam kar v tej temi.

Pri odprtih sponkah mi ADC predvornik na atmegi32 izmeri raznorazne vrednosti. Kdo pozna kakšen enostaven način (programski ali elektronski), da bi v primeru, ko napetostni vir nima dovolj nizke izhodne upornosti (skrajni primer npr. odprte sponke) adc kazal primerno napetost, ali pa vsaj 0...
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
lojzek
Član
Član



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

PrispevekObjavljeno: Tor Sep 16, 2008 7:12 am    Naslov sporočila:   Odgovori s citatom

@opazovalec: Ko sem sledil moj problem, sem opazil, da se napetost na odprtem vhodnem pinu zelo hitro spreminja. Nisem pa imel zraven osciloskopa, da bi videl, kaj se to pojavlja.

Če imaš merilni tokokrog s preduporom, bo le-ta poskrbel, da bo ob prekinjenem senzorju na vhodu max. napetost in s tem maksimalni odčitek.

Lahko pa vhod preko večjega upora (tako velikega, da ne bo motil normalne meritve) vežeš proti masi. In ti bo v primeru nepriklopljenega vhoda kazalo 0.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> AVR, LPC900, x51 Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Pojdi na stran Prejšnja  1, 2
Stran 2 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: 494 dni


Powered by phpBB © 2001, 2005 phpBB Group