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

Pridružen-a: Ned 09 Jan 2005 22:35 Prispevkov: 261 Aktiv.: 1.10 Kraj: Celje
|
Objavljeno: Sob Sep 13, 2008 8:56 pm Naslov sporočila: |
|
|
Dkone, žal nimam kode v Bascomu, ampak v C-ju... |
|
Nazaj na vrh |
|
 |
dkone Član

Pridružen-a: Sre 07 Mar 2007 18:53 Prispevkov: 2116 Aktiv.: 9.51 Kraj: Krško
|
Objavljeno: Ned Sep 14, 2008 11:25 am Naslov sporočila: Re: Inteligentni brzinomer |
|
|
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 |
|
 |
upornik Član

Pridružen-a: Ned 09 Jan 2005 22:35 Prispevkov: 261 Aktiv.: 1.10 Kraj: Celje
|
Objavljeno: Pon Sep 15, 2008 1:01 am Naslov sporočila: |
|
|
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 |
|
 |
lojzek Član



Pridružen-a: Pet 25 Jan 2008 8:00 Prispevkov: 3387 Aktiv.: 15.99
|
Objavljeno: Pon Sep 15, 2008 9:28 am Naslov sporočila: |
|
|
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
Ampak mi je vseeno nekaj kazalo, in to celo podobno pravim rezultatom. |
|
Nazaj na vrh |
|
 |
opazovalec Neznanec

Pridružen-a: Sre 27 Avg 2008 13:11 Prispevkov: 4 Aktiv.: 0.02
|
Objavljeno: Pon Sep 15, 2008 3:05 pm Naslov sporočila: |
|
|
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 |
|
 |
lojzek Član



Pridružen-a: Pet 25 Jan 2008 8:00 Prispevkov: 3387 Aktiv.: 15.99
|
Objavljeno: Tor Sep 16, 2008 7:12 am Naslov sporočila: |
|
|
@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 |
|
 |
|
|
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
|