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

Pridružen-a: Pon 03 Sep 2012 7:56 Prispevkov: 756 Aktiv.: 4.86 Kraj: Murska Sobota
|
Objavljeno: Pet Apr 26, 2013 3:29 pm Naslov sporočila: zakasnitev impulza z pic-om |
|
|
Na praksi na firmi Elrad international izdelujem dvojno zakasnitev, katera bo imela funkcijo, da ko se kontrolno pripravo zapre in se sprogramira, da nebi rabil pritisniti tipke, se sproži avtomatsko programiranje elektronik po nekšni zakasnitvi.
Prilagam program:
bit oldstate;
int LED1 = 8;
int LED2 = 6;
unsigned long adc;
unsigned long i;
void main() {
OSCCON = 0b01110000; // 8 MHz notranji oscilator
ANSEL = 0x04;
INTCON = 0; // onemogoci prekinitve
ANSELH = 0;
C1ON_bit = 0; // onemogoci primerjalnike
C2ON_bit = 0;
TRISb7_bit = 1; // nastavi RB7 pin kot vhod
TRISa = 0xff; // nastavi PORTA kot vhod
TRISc = 0x00; // nastavi PORTC kot izhod
oldstate = 0;
do { // neskoncna zanka do - while
adc = ADC_Read(2);
if (Button(&PORTB, 7, 1, 1)) { // detektira logicno "1"
oldstate = 1; // posodobi stanje
}
if (oldstate && Button(&PORTB, 7, 1, 0)){ // detektira spremembo logicne "1" v logicno "0"
if (adc <= 21){
PORTC = LED1;
delay_ms(100);
}
else{
for (i = 0; i < (adc*14); i ++ ){
PORTC = LED1;
}
}
PORTC = LED2;
delay_ms(500);
PORTC = 0;
oldstate = 0; // posodobi stanje
}
} while (1);
}
Problemi so, ker pride do odstopanja pri AD pretvorbi do odstopanja za 100ns.
Potenciometer je notri za spreminjanje časa zakasnitve od 100ms do 5s.
Program je sestavljeni tako, da ko imaš na potenciometru 5 volta v maksimalni skrajni legi. Ko imaš na potenciometru od 0 do 100mV mora biti zakasnitev 100ms. |
|
Nazaj na vrh |
|
 |
xfce Član

Pridružen-a: Čet 28 Jul 2011 8:06 Prispevkov: 521 Aktiv.: 3.08
|
Objavljeno: Pet Apr 26, 2013 7:12 pm Naslov sporočila: |
|
|
Haha, ti si pa čisto razštelan, malo preberi za seboj. Tega ne more noben razumeti. Napiši malo bolj urejeno in razumljivo pa mogoče dobiš kakšen pameten odgovor.
Koda je pa tudi razsulo. Pravzaprav točno opiši kaj bi program moral početi. |
|
Nazaj na vrh |
|
 |
damjango Član

Pridružen-a: Pon 03 Sep 2012 7:56 Prispevkov: 756 Aktiv.: 4.86 Kraj: Murska Sobota
|
Objavljeno: Pet Apr 26, 2013 7:44 pm Naslov sporočila: |
|
|
V bistvu ta program zamenja dva čipa lm555.
Prvi impulz je nastavljiv, drugi je fiksen in je 500ms.
Gre se seveda za razvoj kontrolne priprave za programiranje elektronike, katere izdelujejo, recimo elektronike za gorenje, bosch,...
Ko daš vezje v kontrolno pripravo, rabiš nekaj milisekund ali sekund časa, da zapreš pokrov in se na tisti elektroniki, ki pride iz proizvodnje, avtomatsko sprogramira mikrokrmilnik. |
|
Nazaj na vrh |
|
 |
SkunkyLee Član

Pridružen-a: Čet 12 Feb 2009 16:59 Prispevkov: 198 Aktiv.: 1.00 Kraj: Maribor, Ljubljana
|
Objavljeno: Pet Apr 26, 2013 8:18 pm Naslov sporočila: |
|
|
Če te jaz prav razumem rabiš ti napravo, ki bo sprožila 2 pulza. En bo nastavljiv od 1ms do 5000ms, drugi pa fiksen 500ms?
Nastavitev trajanja prvega impulza bi rad izvedel s potenciometrom 0-5 voltov, pri katerem 1 mV pomeni 1ms, pri tem te pa "heca" 100 nV odstopanja ADC meritve.
Preden ti poskušam pomagat, povej, če sem sploh pravilno razbral, kaj hočeš. |
|
Nazaj na vrh |
|
 |
snow Član


Pridružen-a: Tor 27 Dec 2005 14:02 Prispevkov: 341 Aktiv.: 1.44 Kraj: Ljubljana || Velenje
|
Objavljeno: Pet Apr 26, 2013 9:06 pm Naslov sporočila: |
|
|
notranji oscilator je točen nekje na 1%?
če je problem v a/d pa mogoče uporabiš oversampling |
|
Nazaj na vrh |
|
 |
xfce Član

Pridružen-a: Čet 28 Jul 2011 8:06 Prispevkov: 521 Aktiv.: 3.08
|
Objavljeno: Pet Apr 26, 2013 11:09 pm Naslov sporočila: |
|
|
@damjango koliko si star? Je to kakšna praksa v 1l srednje šole?
Groza kako ne moreš spraviti v en post teh nekaj piškavih podatkov. Sploh veš kaj bi rad sprogramiral?
Vse kar potrebujemo je nekaj v smislu tega:
Program ob spremembi na pinu iz logične 0 v 1, prožiti prednastavljen impulz od 100ms do 5sek enem pinu in potem 500ms drug impulz na drugem pinu.
Dolžino impulza nastavimo z potencimetrom. Resolucija časa mora biti taka pa taka..
Kakšno resulucijo bi rad imel? Oziroma kaj je težava?
Ti imaš interval dolg 4500ms, AD konverter ima pa resolucijo 1024bitov. To se pravi da je korak po 4,39ms, in še to ti lahko skače vrednost, ker če je nekje na meji AD konverter lahko prebere enkrat naprimer 1, drugič 2.. To se pravi da je natančnost na kakšne 4,39ms + skakanje 4,39ms.
Kakšno natančnost bi pa ti rad imel?
Tukaj si že sklatil bučo, zadeva ni natančna na 10ms ti pa pišeš v nano sekundah?
damjango je napisal/a: |
Problemi so, ker pride do odstopanja pri AD pretvorbi do odstopanja za 100ns.
|
Ker pic uporabljaš? |
|
Nazaj na vrh |
|
 |
damjango Član

Pridružen-a: Pon 03 Sep 2012 7:56 Prispevkov: 756 Aktiv.: 4.86 Kraj: Murska Sobota
|
Objavljeno: Sob Apr 27, 2013 8:23 am Naslov sporočila: |
|
|
To rabim kaj je napisal SkunkyLee.
Tam sem se zmotil, odstopa za 100ms ali 0,1s. To je preveč. Zadovoljivo bi bilo če bi odstopalo recimo za 20ms.
1 kvant ali delec je, če preračunaš je to 4,88ms.
Na tistem pinu, kjer je zakasnitev fiksna je gor rele, kateri sprži programiranje eletronik.
Recimo, če bi bilo krivo odstopanje enega kvanta bi bilo seveda zadovoljivo.
Dosti več podatkov pa ne smem izdati, ker so to stvari podjetja, ker nebi nekdo naredil kopijo nekega izdelka, ki bi prišli od njih na trg.
To je praksa na fakulteti, verjetno vsak ve, da še v šoli naučiš samo teorijo praktičnega znanja pa nimaš. |
|
Nazaj na vrh |
|
 |
damjango Član

Pridružen-a: Pon 03 Sep 2012 7:56 Prispevkov: 756 Aktiv.: 4.86 Kraj: Murska Sobota
|
Objavljeno: Sob Apr 27, 2013 8:30 am Naslov sporočila: |
|
|
Delam z picom pic16f690. In uporabljam pic kit 2. |
|
Nazaj na vrh |
|
 |
igo Član

Pridružen-a: Sre 11 Okt 2006 19:11 Prispevkov: 3641 Aktiv.: 16.01
|
Objavljeno: Sob Apr 27, 2013 9:15 am Naslov sporočila: |
|
|
damjango je napisal/a: |
To je praksa na fakulteti, verjetno vsak ve, da še v šoli naučiš samo teorijo praktičnega znanja pa nimaš. |
Razne zakasnitve se izvaja s PIC-em.
Sicer pa je izražanje stvar predfakultetne vzgoje.
S potenciometrom na 10-bitnem ADC je teoretično sicer možno doseči 1024 različnih meritev, praktično pa nekje 50 do 100. Zato za kolikor toliko uporabno nastavljanje zakasnitve na 5000 korakov uporabi dva potenciometra na dveh ADC vhodih. Z enim nastaviš na grobo stotice in tisočice korakov, z drugim na fino desetice in enice (no, dvojice, ker 100 razdeliš na 50 korakov).
To velja, če nimaš LCD ali LED prikazovalnika, temveč dolžino zakasnitve nastavljaš le s pogledom na gumba obeh potenciometrov.
Za povrh pa "izdajaš" nepomembne oziroma neuporabne podatke, tiste bistvene za izvedbo programa pa "skrivaš".
Zadostoval bi takle opis:
Med čakanjem na sprožitev cikla se morajo ADC meritve se redno izvajati. Ko vhod1 zazna "1", ne bo treba izvesti meritve, ampak se bo takoj sprožila nastavljiva pavza. Po koncu te pavze se bo sprožila fiksna pavza in se aktiviral izhod1. Po koncu druge pavze se izhod1 izklopi, nato mora biti zaradi varnosti še kakšno sekundo ali dve preprečeno zaznavanje vhoda1. Potem gre program na začetek, kjer v zanki spet izvaja ADC meritve in čaka na začetek novega cikla. _________________ Teoretično je praksa posledica teorije, praktično je pa ravno obratno. (igo 2001)
LP, Igor
Nazadnje urejal/a igo Sob Apr 27, 2013 9:20 am; skupaj popravljeno 1 krat |
|
Nazaj na vrh |
|
 |
gumby Član


Pridružen-a: Sob 28 Apr 2007 12:32 Prispevkov: 4066 Aktiv.: 18.42
|
Objavljeno: Sob Apr 27, 2013 9:18 am Naslov sporočila: |
|
|
Enkoder + LCD in boš lahko imel poljubne zakasnitve  _________________ Tule nisem več aktiven. |
|
Nazaj na vrh |
|
 |
SkunkyLee Član

Pridružen-a: Čet 12 Feb 2009 16:59 Prispevkov: 198 Aktiv.: 1.00 Kraj: Maribor, Ljubljana
|
Objavljeno: Sob Apr 27, 2013 10:51 am Naslov sporočila: |
|
|
gumby je napisal/a: |
Enkoder + LCD in boš lahko imel poljubne zakasnitve  |
Jaz ne bi dajal enkoderja za 0-5000 v korakih po 20. To je 250 korakov. Šlo bi, če bi dodal inkrementalno hitrost obračanja, samo imam nenavaden občutek, da je to že malo kompleksna zadeva.
Moj nasvet. Pusti potenciometer (ker res ni dovolj natančen za to, kar ti rabiš) - ideja z "grobo" in "fino" se mi pa osebno res ne dopade v taki aplikaciji - in nabavi preprosto 4x3 tipkovnico. Stisneš gumb za začetek, prebereš 4 cifre, stisneš gumb za konec in mirna bosna. Če si pustolovski dodaš še en gumb za "cancel" trenutnega vpisa. Pa še bolj robustno bo v industrijskem okolju. Gumb za pot lahko hitro rukneš, al pa ga kaj odbije in premakne, tipkovnico pa že malo težje. |
|
Nazaj na vrh |
|
 |
xfce Član

Pridružen-a: Čet 28 Jul 2011 8:06 Prispevkov: 521 Aktiv.: 3.08
|
Objavljeno: Sob Apr 27, 2013 7:16 pm Naslov sporočila: |
|
|
@igo ima kar prav glede resolucije. Sam sem tudi enkrat delal potencimeter na AD vhod in v praksi ne moreš listo natančno zadeti neke vrednosti..
Kaj pa vem, sam bi sedaj rešil zadevo z dvema gumboma za nastavitev intervala + in - in uporabil bi LCD zaslon...
Ali pa tipkovnico, kot jo jo je predlagal pred menoj.
Včasih zadeva zgleda preprosta a ni... |
|
Nazaj na vrh |
|
 |
gumby Član


Pridružen-a: Sob 28 Apr 2007 12:32 Prispevkov: 4066 Aktiv.: 18.42
|
Objavljeno: Sob Apr 27, 2013 7:20 pm Naslov sporočila: |
|
|
SkunkyLee je napisal/a: |
Jaz ne bi dajal enkoderja za 0-5000 v korakih po 20. To je 250 korakov. |
Pritisneš tipko na enkoderju za preklop med grobim in finim nastavljanjem. Ali pa kar za preklop med ciframi in nastaviš vsako posebej. Možnosti imaš neomejeno...  _________________ Tule nisem več aktiven. |
|
Nazaj na vrh |
|
 |
SkunkyLee Član

Pridružen-a: Čet 12 Feb 2009 16:59 Prispevkov: 198 Aktiv.: 1.00 Kraj: Maribor, Ljubljana
|
Objavljeno: Sob Apr 27, 2013 8:08 pm Naslov sporočila: |
|
|
Hm, naredi ti z enkoderjem, jaz pa z tipkovnico, pa greva tekmovat, kdo od naju prej vpiše 4 mestno številko
No, na koncu se bo itak avtor teme odločil, kateri način bo uporabil (mam občutek, da bo zatrmaril in se vpičil v potenciometer), samo se mi zdi, da ima tipkovnica kar nekaj prednosti pred čemerkoli rotacijskim.
Pa z malo iznajdljivosti lahko 4x3 tipkovnico brez problema priklopiš samo na 1 tačko mikrokrmilnika. |
|
Nazaj na vrh |
|
 |
gumby Član


Pridružen-a: Sob 28 Apr 2007 12:32 Prispevkov: 4066 Aktiv.: 18.42
|
Objavljeno: Sob Apr 27, 2013 8:09 pm Naslov sporočila: |
|
|
Tudi lahko... še bolje  _________________ Tule nisem več aktiven. |
|
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: 492 dni
Powered by phpBB © 2001, 2005 phpBB Group
|