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


Pridružen-a: Sob 27 Okt 2007 12:48 Prispevkov: 2533 Aktiv.: 11.80 Kraj: Ajdovščina
|
Objavljeno: Sre Sep 09, 2009 6:58 pm Naslov sporočila: PIC in frekvenca |
|
|
V programiranju sem še popoln začetnik, a me zanima, kako bi naredil, da bi na analognem vhodu PIC-a dobil neko frekvenco(100 - 300hz), pa ko bi frekvenca presegla določeno vrednost bi na enem izhodu dalo logično 1 - napetost. Ko bi frekvenca spet padla, bi bila na izhodu logična 0.
A bi to potreboval kakšen pretvornik frekvence v napetost in potem to rešiti z op. amp - da bi imel nastavljiv frekvenčni limit?
Bi bil za pretvorbo frekvence v napetost dober tale čip?
LM2907 _________________ lp Jure |
|
Nazaj na vrh |
|
 |
rudiP Član

Pridružen-a: Tor 07 Avg 2007 15:30 Prispevkov: 1234 Aktiv.: 5.68 Kraj: KOPER
|
Objavljeno: Sre Sep 09, 2009 7:14 pm Naslov sporočila: |
|
|
Zakaj pa ne šteješ period?. Če imaš mali nivo signala ga ojačaj. _________________ Lep pozdrav iz Kopra Rudi |
|
Nazaj na vrh |
|
 |
Highlag Član


Pridružen-a: Pet 23 Jan 2004 20:42 Prispevkov: 4034 Aktiv.: 17.03 Kraj: Črnuče
|
Objavljeno: Sre Sep 09, 2009 7:14 pm Naslov sporočila: |
|
|
Ne rabiš pretvornika.
Ustrezno prilagojen signal pripelješ na digitalni vhod procesorja. Ko procesor ugotovi, da je na vhodu 1, prične z merjenjem časa, ko ujame naslednjo enico neha.
Iz izmerjenega časa izračuna frekvenco, primerja z željeno in glede na to na ustrezen izhod postavi enico.
Napisati moraš samo program, ki to počne.  _________________ If at first you don't succeed, destroy all evidence that you tried. |
|
Nazaj na vrh |
|
 |
Jule Član


Pridružen-a: Sob 27 Okt 2007 12:48 Prispevkov: 2533 Aktiv.: 11.80 Kraj: Ajdovščina
|
Objavljeno: Sre Sep 09, 2009 7:44 pm Naslov sporočila: |
|
|
Highlag je napisal/a: |
Napisati moraš samo program, ki to počne.  |
Preprosto kot pasulj
Signal je reda 12V. A to ga moram nekako zmanjšati in narediti polvalni usmernik, da ne skurim vhoda? ALi lahko nanj pripeljem kar izmenični signal?
Delal bom najbrž z PIC16F84 ker jih imam doma en kup.
Se pravi bi program štel polperiode(periode) na enoto časa in s tem bo prekalkuliral frekvenco in kdaj naj postavi izhod na 1.
Kako bi pa z kakim trimerjem določal mejno frekvenco? Ali bi moral popravljati program? _________________ lp Jure |
|
Nazaj na vrh |
|
 |
sortaj Član


Pridružen-a: Sre 23 Jul 2008 21:51 Prispevkov: 812 Aktiv.: 3.95 Kraj: Med Vipavo in Štanjelom
|
Objavljeno: Sre Sep 09, 2009 8:18 pm Naslov sporočila: |
|
|
Signal moraš oslabiti tako, da je Umax=5V in ga seveda polvalno usmeriti. za "dešpet" in kompliciranje pa bi lahko dodal še Schmittov prožilnik, ki bi naredil ven pravokoten signal
Vsekakor pa ne izmeničnega signala noter pošiljat, ker bo iz PIC-a ušla pogonska sila (dim)
glede mejne frekvence... trenutno mi ne pride na pamet nič drugega kot da potenciometer vežeš na ADC in potem programsko nekako rešiš...
p.s.
Če boš rabil LM2907 povej, ker jih imam nekaj doma (zaradi neresnosti slo. trgovin z elektroniko )
lp, Jernej _________________ Svet je bil analogen, dokler ni Planck vsega zafrknil... |
|
Nazaj na vrh |
|
 |
Jule Član


Pridružen-a: Sob 27 Okt 2007 12:48 Prispevkov: 2533 Aktiv.: 11.80 Kraj: Ajdovščina
|
Objavljeno: Sre Sep 09, 2009 8:26 pm Naslov sporočila: |
|
|
Sicer zame, ki sem "programsko šibek", bi bilo najbolje narediti z lm2907 in op.amp. Ko pride vhodna napetost na neko vrednost, se vklopi izhod. Potem že z ojačanjem nekako rešiš izbiranje frekvence. _________________ lp Jure |
|
Nazaj na vrh |
|
 |
GJ Član


Pridružen-a: Čet 02 Nov 2006 15:51 Prispevkov: 946 Aktiv.: 4.17 Kraj: Ljubljana
|
Objavljeno: Sre Sep 09, 2009 8:54 pm Naslov sporočila: |
|
|
Jule je napisal/a: |
Sicer zame, ki sem "programsko šibek", bi bilo najbolje narediti z lm2907 in op.amp. Ko pride vhodna napetost na neko vrednost, se vklopi izhod. Potem že z ojačanjem nekako rešiš izbiranje frekvence. |
Ne rabiš nobenega OP-ja, če signal nima šuma. Če ga ima si pomagaš z manjšim RC členom.
Prevelik tok skozi pin, ki nastane zaradi previsoke napetosti, omejiš z ustreznim uporom recimo 100K. Višek toka bo tekel skozi zaščitne diode pina. Poglej si v datasheet-u koliko prenese zaščita pinov!
Potem pa kot so že povedali.
Vhodni pin ti naj proži interrupt. Ko se ta zgodi zbrišeš 16 bitni števec, ki ga poganja preko delilnika takt mikrokontrolerja. Preden pobrišeš števec njegovo vrednost prekopiraš v nek 16 bitni register recimo FTick16.
V glavnem programu pa zgolj gledaš v kakšnem razponu je ta register in ustrezno ukrepaš.
Aha še to..
Pri PIC-ih moraš zagotoviti atomarnost branja 16 bitnega registra FTick16.
To narediš tako, da pred branjem registra FTick16 izklopiš prekinitve, takoj ko ga prebereš pa jih zopet vklopiš! Tako zagotoviš da v enem kosu prebereš oba byta 16 bitnega registra FTick16, v nasprotnem boš imel občasne napake pri branju njegove vrednosti.
LP GJ |
|
Nazaj na vrh |
|
 |
mucek4 Član


Pridružen-a: Sob 18 Jun 2005 20:52 Prispevkov: 2952 Aktiv.: 12.46 Kraj: Tržič - Mesto med gorami
|
Objavljeno: Čet Sep 10, 2009 7:04 am Naslov sporočila: |
|
|
Torej če te prav razumem ti bi rad imel na enem pinu "1" ko pride frekvenca recimo čez 180Hz in "0" jo je frekvenca manj kot 180Hz?
Kot so ti predlagali. Interrupt, timer in preverjanje. Timer ti da "periodo". Ni trega treba računat v frekvenco in potem primerjat frekvenco ampak primerjaš periodo. |
|
Nazaj na vrh |
|
 |
Umnik Član

Pridružen-a: Čet 16 Sep 2004 17:52 Prispevkov: 958 Aktiv.: 4.05 Kraj: Novo mesto
|
Objavljeno: Čet Sep 10, 2009 7:27 am Naslov sporočila: |
|
|
mucek4 je napisal/a: |
Timer ti da "periodo". Ni trega treba računat v frekvenco in potem primerjat frekvenco ampak primerjaš periodo. |
Videl sem že nekoga napisati, da s frekvenco ne zna računati in da mu koncept frekvence ni jasen, ampak s časom mu pa menda prav dobro gre  |
|
Nazaj na vrh |
|
 |
Jule Član


Pridružen-a: Sob 27 Okt 2007 12:48 Prispevkov: 2533 Aktiv.: 11.80 Kraj: Ajdovščina
|
Objavljeno: Čet Sep 10, 2009 3:34 pm Naslov sporočila: |
|
|
mucek4 je napisal/a: |
Torej če te prav razumem ti bi rad imel na enem pinu "1" ko pride frekvenca recimo čez 180Hz in "0" jo je frekvenca manj kot 180Hz?
Kot so ti predlagali. Interrupt, timer in preverjanje. Timer ti da "periodo". Ni trega treba računat v frekvenco in potem primerjat frekvenco ampak primerjaš periodo. |
da.
GJ Hvala za odgovor, ampak nebi znal toliko sprogramirat. "Programiram" v flowcode, tam pa imaš bolj osnovne ukaze. _________________ lp Jure |
|
Nazaj na vrh |
|
 |
Sokrat Član


Pridružen-a: Čet 25 Avg 2005 11:00 Prispevkov: 5584 Aktiv.: 23.58
|
Objavljeno: Čet Sep 10, 2009 3:40 pm Naslov sporočila: |
|
|
PICi s HW PWMom imajo tudi capture&compare v istem modulu. Morda flowcode pozna "sestavne dele" tudi za to ? _________________ Ka ti bo pa torba ce si kupu kolo ? |
|
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: 491 dni
Powered by phpBB © 2001, 2005 phpBB Group
|