[ dr.NPN @ 30.12.2010. 04:40 ] @
Imam displej 2 1/2 cifre... Znaci do broja 199...
Ono sto meni treba je sklop, koji ce da meri koliko puta se dobije impuls na ulazu u toku 15 sekundi i da ga pomnozi sa 4, i da ispise na displeju...
ILI... Da bude na fazon BPM-a (beats per minute, za one koji nisu upuceni) i da daje neki prosek u minuti cim bude u stanju da dodje do istog.

E sad da pojasnim zasto mi treba...
Pravio sam Heart Rate Monitor, i to fino sljaka na principu saturacije kiseonika u krvi, a za signalizaciju imam jednu led diodu koja trepne na svaki otkucaj srca, fino radi bash
Znaci imam "jedinicu" na svaki otkucaj srca, to bih da posaljem na neki brojac, on na drajver za displej i to je to, otprilike.
Ono sto ja hocu je displej da mi izbaci koliko srce ima otkucaja u minuti? Ja sam zamislio sklop onako kako sam opisao u prvih par recenica, ako neko ima bolju ideju, neka vice

Moze i varijanta sa mikrokontrolerom, to bi bilo daleko jednostavnije i brze za napraviti, ali pod uslovom da ima i hex da se skine, jer sa pisanjem programa za pic-eve jos uvek zbog manjka vremena nisam daleko dogurao.... :/

Ako nesto treba da se pojasni, tu sam, ako kontate, a kontate, pucajte. Hvala
[ bogdan.kecman @ 30.12.2010. 08:19 ] @
kako si pravio "detektor" sa IR + obicnom ledarom i 2 LDR-a ili si isao na neku drugu metodu ... ja sam probao da napravim samo sa IR diodom i LDR-om pre jedno 15tak godina i nesto mi nije islo, koliko sam skontao mora da se ide sa IR + obicnom pa da se vadi nesto .. ako imas neki link baci ..

sto se tice tog countera .. kakav display imas? staklo ili? posto ako je staklo onda moras neki pic koji ima drajver za staklo (16F819 ima drajver za staklo ako se ne varam ili tako neki sa devetkom) ili imas led ?
[ dr.NPN @ 02.01.2011. 02:39 ] @
Evo sheme dole, izvinjavam se na kasnjenju sa odg, ali nova godina, ovo ono..
Ovo radi ok, podesi se, i stvarno fino pulsira... Sad taj signal hocu da dovedem na pic da mi na displeju izbacuje beats per minute... Da li da meri po 15 sekundi, pa mnozi sa 4 i izbaci konacnu cifru, ili da stalno meri i menja... Ne znam sta je jednostavnije?
U principu treba mi i shema i hex... Imam ogromnu zelju da ovo sredim, ali kao sto rekoh, mikrokontrolere jos nisam savladao, nedostatak vremena za hobi elektroniku, druge zivotne stvari i to, kao i kod svakog...

Inace displej je led, "188 format", znaci 2 1/2 cifre...

Eto, nadam se da je jasnije i da moze tako nesto lagano da se odradi

P.S. Inace, na shemu sam ubacio pinoute od 324 i 358 jer nisam imao 358 pri ruci, originalna je sa 358, ali op amp je op amp, dva zvrje prazna, ali to je to u principu... Da ne dodje do zabune
[ bogdan.kecman @ 02.01.2011. 08:39 ] @
188 format (2+1) je jasno od prvog vagona, ono sto je bitno za dalje je tip ... dakle LED sa zajednockom anodom ... imas li neki mcu koji preferiras?
[ dr.NPN @ 02.01.2011. 10:15 ] @
Svejedno, zar ne? :) Pic ko pic... :)
[ bogdan.kecman @ 02.01.2011. 15:16 ] @
u temi http://www.elitesecurity.org/t...ter-Putni-racunar-za-automobil imas primer u c-u kako da izmeris broj impulsa u sekundi .. uz minimalni napor to mozes da promenis u 15 sekundi .. i uz minimalni napor to mozes da prebacis sa 16x2 u 3x7seg
[ bogdan.kecman @ 03.01.2011. 02:46 ] @
eve ti na tacnu ... kao poklon za ng

sors:
Code:

#include <16F628A.h>

#case

#FUSES NOWDT                    //No Watch Dog Timer
#FUSES HS                       //Externi 8MHz kristal
#FUSES NOPUT                    //No Power Up Timer
#FUSES NOPROTECT                //Code not protected from reading
#FUSES NOBROWNOUT               //No brownout reset
#FUSES MCLR                     //Master Clear pin enabled
#FUSES NOLVP                    //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOCPD                    //No EE protection


#use delay(clock=8000000)
#use fast_io (A)
#use fast_io (B)


//  xx         0x02 
// x  x   0x40      0x04
//  xx         0x80
// x  x   0x20      0x08
//  xx         0x10 


static const unsigned char SS[10] = {
  0x80, //0
  0xF2, //1 ! (0x04 + 0x08)
  0x48, //2 ! (0x02 + 0x04 + 0x80 + 0x20 + 0x10)
  0x60, //3 ! (0x02 + 0x04 + 0x08 + 0x80 + 0x10)
  0x32, //4 ! (0x40 + 0x80 + 0x04 + 0x08)
  0x24, //5 ! (0x02 + 0x40 + 0x80 + 0x08 + 0x10)
  0x04, //6 ! (0x02 + 0x40 + 0x80 + 0x08 + 0x10 + 0x20)
  0xF0, //7 ! (0x02 + 0x04 + 0x08)
  0x00, //8 ! (0x02 + 0x04 + 0x08 + 0x10 + 0x20 + 0x40 + 0x80)
  0x20  //9 ! (0x02 + 0x04 + 0x08 + 0x10 + 0x40 + 0x80)
};

volatile unsigned int16 hb;
volatile unsigned int16 b0;

#int_RTCC
void  RTCC_isr(void) 
{
  static unsigned int32 ticks=0;

  ticks+=256;
  if (ticks >  (unsigned int32) 20000000){ //proslo 10 sec
      ticks -= (unsigned int32) 20000000;
      hb = b0 * 6;      
      b0 = 0;
  }
}

#int_EXT
void  EXT_isr(void) 
{
  b0++;
}

//#int_TIMER1
//void  TIMER1_isr(void) 
//{
//
//}



void main()
{
   unsigned char pos=0;
   unsigned int16 x = 0;
   
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   //setup_timer_1(T1_INTERNAL|T1_DIV_BY_1);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);
   setup_oscillator(8000000L);

   set_tris_a(0x00);
   set_tris_b(0x01);
   output_a(0x00); //A0,A1,A2
   output_b(0xFF);
   b0=0;


   enable_interrupts(INT_RTCC);
   enable_interrupts(INT_EXT);
   //enable_interrupts(INT_TIMER1);
   enable_interrupts(GLOBAL);

   while(1){
     switch (pos){
     case 0:
       x = hb & 0xFF;
       output_b(SS[x%10]);
       output_a(0x01);
       pos = 1;
     break;
     case 1:
       output_b(SS[(x/10)%10]);
       output_a(0x02);
       pos = 2;
     break;
     case 2:
       output_b(SS[(x/100)%10]);
       output_a(0x04);
       pos = 0;
     break;
     default: pos = 0;
     break;
     }
     delay_ms(10);
     output_a(0x00);
   }
}

[ bogdan.kecman @ 03.01.2011. 03:18 ] @
elem, sa ovakvom semom ce ti biti razlicito osvetljenje za 1 i za 8 (i sve izmedju) posto mcu moze da da samo 25mA + R8/R9/R10 limitiraju struju na 25mA kroz jedan 7seg tako da ako imas 1 to su kresnuta dva segmenta i svetlece "max" posto ce kroz svaki da prodje po 7.3mA (limitirano sa R1-7, ja nikad ne teram ledare sa preko 10mA nema potrebe), ali za 8 npr imas svih 7 segmenata koji onda mogu da vuku svaki po max 3.5mA sto znaci da ce osmica da ti bude 50% osvetljena u poredjenju sa kecom ...

ako hoces da se resis toga mozes da vezes tri tranzistora i da tako vozis 3 anode .. dakle R8-10 vezes na bazu a anode vezes na tranzistor .. za segmente nema potrebe posto je 25mA po kanalu dovoljno za svaki segment a zato sam i odabrao 628A zato sto moze da pusti 25mA (u poredjenju sa vecimo piconja koji daju samo 10mA)...

sors je jednostavan da jednostavnije ne moze, u originalu je ispisivanje cifara bilo u timer1 interruptu ali zarad jednostavnosti sam prebacio u main() ... CSC C kompajler (PICC) je potreban za kompajliranje no tu ti je hex ... potreban ti je 8MHz kristal i 15-30pF kondenzatori za stabilan rad, namerno nisam koristio interni 4MHz oscilator posto ima poveliku zavisnost od temperature i od "cipa do cipa" ..

paralelno sa C3 mozes da stavis reset taster

na vdd/vss pin mcu-a moras da stavis kombo 10nF + 100nF + 1-10uF, ulaz sa tvog kola je obelezen kao "ulaz" (pin B0) i ocekuje 0/5V signal, B0 je schmitt trigger input tako da ce da podnese ako signal nije bas 1/1 cist mada mozda zelis da turis neki RC filter izmedju... sve zavisi sta izlazi iz onog tvog kola ..

inace, sto se "tvog kola" tice .. to na zalost nije bas preterano sigurna sema ... ako je za "kucne" uslove onda ok ali fora sa merenjem pulsa preko kolicine kiseonika mora da se radi sa 2 diode (obicnom + IR) da bi se uvatila tacnost .. ti ovde na semi imas 3 diode, jednu IR koja prolazi kroz prst, ali ove druge dve mi deluju da su obicne signalne, da ne ucestvuju u "Radu"

sretna nova
b.
[ shadow88 @ 03.01.2011. 12:51 ] @
sto se tice razlicitog nivoa osvetljenja displeja moze se resiti tako sto bi kontroleru u kodu promenili da umesto da pali celu cifru odjednom, neka pali segment po segment, tako ce svaki segment svetleti jednakim intenzitetom, ali pretpostavljam da je jednostavnije dodati trandze :)
[ dr.NPN @ 03.01.2011. 13:20 ] @
Weeeeeee :)
Odlicno, hvala puno, narucio sam pic, taj nemam kod sebe, pa kad stigne... :) verovatno prekosutra :)

Ok, kontam to sve, ali kontam i da ovaj display sto ja imam nece moci bez nekih izmena ili da koristim samo jedan izlaz za anodu preko trandze sa pica?
Ova "jedinica" na displeju ima samo jedan pin, naravno, i svetle na njemu oba segmenta...

E samo mi jos reci.. U kom programu pravis tu emulaciju? Sta da skinem da editujem sors, malo da se zabavim u uputim u sve to?

Hvala puno jos jednom!!!!

[ dr.NPN @ 03.01.2011. 13:28 ] @
Citat:
bogdan.kecman

inace, sto se "tvog kola" tice .. to na zalost nije bas preterano sigurna sema ... ako je za "kucne" uslove onda ok ali fora sa merenjem pulsa preko kolicine kiseonika mora da se radi sa 2 diode (obicnom + IR) da bi se uvatila tacnost .. ti ovde na semi imas 3 diode, jednu IR koja prolazi kroz prst, ali ove druge dve mi deluju da su obicne signalne, da ne ucestvuju u "Radu"

sretna nova
b.
Sretna nova, takodje :)
Elem, kolo radi... Lepo bas funkcionise... Jeste za kucne uslove, ali umesto ove LED D1, ja sam stavio infracrvenu... a sa druge strane foto tranzistor D2... I mogu ti reci da bolje radi nego sa obicnom ledarom u providnom kucistu... A D3 se potenciometrom podesava za debljinu prsta, posto je kolo suvise prosto za neku automatsku regulaciju, sto ovi oksimetri pretpostavljam imaju, logicno mi zvuci, a na kraju je D4 koja vizualno signalizira otkucaje... Sa D4 planiram da skinem impuls za brojac, kakav ulaz u brojac treba da bude?
[ bogdan.kecman @ 03.01.2011. 14:39 ] @
Citat:
dr.NPN: Weeeeeee :)
Odlicno, hvala puno, narucio sam pic, taj nemam kod sebe, pa kad stigne... :) verovatno prekosutra :)


ja te pitah koji pic oces, ti kazes svejedno, meni je bilo isto za koji god...

Citat:

Ok, kontam to sve, ali kontam i da ovaj display sto ja imam nece moci bez nekih izmena ili da koristim samo jedan izlaz za anodu preko trandze sa pica?
Ova "jedinica" na displeju ima samo jedan pin, naravno, i svetle na njemu oba segmenta...


pazi, ti rece da je zajednicka anoda, to znaci da jedna cifra ima jednu anodu, vidis kako je spojeno na semi. ovaj tvoj display ima 16 zica i 16 segmenata tako da bih ja rekao da nema nista zajednicko vec da ima za svaki segment i anodu i katodu. uzmes lepo i sve anode trece cifre vezes zajedno i to spojis na r8, drugu cifru isto sve anode spojis zajedno na r9 i keca spojis anodu na r9 a ledaru spojis na A segment (R1) i to je to ...

Citat:

E samo mi jos reci.. U kom programu pravis tu emulaciju? Sta da skinem da editujem sors, malo da se zabavim u uputim u sve to?


PROTEUS ISIS 7.4sp4 - ukraden (jos jedini ukraden program koji imam na svim svojim racunarima, ipak je preskup za hoby)
kompajler je CSC C (kupljen, neka prastara verzija - ima novija da se ukrade isto gde i proteus)

Citat:

Hvala puno jos jednom!!!!


sretna nova godina. mozda jos nekome bude od koristi
[ bogdan.kecman @ 03.01.2011. 14:53 ] @
Citat:
dr.NPN: Sretna nova, takodje :)
Elem, kolo radi... Lepo bas funkcionise... Jeste za kucne uslove, ali umesto ove LED D1, ja sam stavio infracrvenu... a sa druge strane foto tranzistor D2


pa mora infracrvena, ne moze drugacije

Citat:

... I mogu ti reci da bolje radi nego sa obicnom ledarom u providnom kucistu...


mislis IR u providnom kucistu ili ? pazi razlike u IR diodama su uglavnom u uglu svetla koje bacaju, ove za daljince imaju veliki ugao dok one za komunikaciju (npr telefon) imaju mali ugao .. i razlikuju se u snazi predaje tako da ih imas sa 10mA, 20mA pa sve do 100mA (mozda cak i jace) .... to dal im je plastika zatamnjena ili bela nema nikakve razlike .. ako pricamo o IR diodama ... generalno sve ove velike snage su u providnoj plastici

Citat:

A D3 se potenciometrom podesava za debljinu prsta, posto je kolo suvise prosto za neku automatsku regulaciju,


da li si siguran ?! tebi D3 stoji paralelno sa D1 (na uredjaju? svetli kroz prst zajedno sa D1?) ... ti sa R3 podesavas prag na X1 kada ce da skonta promenu nivoa svetla koje je stiglo na D2. D3 ima 10+ kilooma do gnd-a ako zanemarimo izlaz op-a tako da je njegovo svetlo zanemarljivo za bilo koju poziciju R3 (7/10360=0.0006A nedovoljno da zasvetli) tako da ce D3 blinkati kada je negativan izlaz sa X1 ... malo nezgodna sema po meni al ..

Citat:
a na kraju je D4 koja vizualno signalizira otkucaje... Sa D4 planiram da skinem impuls za brojac, kakav ulaz u brojac treba da bude?

ne znam kako se ponasa ovaj 358, ovde je postavljen da radi kao komparator jedino sto ne znam koji mu je raspon izlaznog signala ... ako nije rail2rail onda ces mozda imati problem posto ti idealno treba 0 ili 5V na izlazu ... mozes umesto njega da stavis neki pravi r2r komparator na primer MCP6541 i izlaz iz njega ce sigurno biti ok :)
[ dr.NPN @ 03.01.2011. 14:57 ] @
Citat:
bogdan.kecman: ja te pitah koji pic oces, ti kazes svejedno, meni je bilo isto za koji god...

LAZEM!
Imam ovaj pic, jos nije ni prisao programatoru, a koristio sam ih za one one button sifrovanje... :)
Znaci imam pic :)
Citat:
bogdan.kecman
pazi, ti rece da je zajednicka anoda, to znaci da jedna cifra ima jednu anodu, vidis kako je spojeno na semi. ovaj tvoj display ima 16 zica i 16 segmenata tako da bih ja rekao da nema nista zajednicko vec da ima za svaki segment i anodu i katodu. uzmes lepo i sve anode trece cifre vezes zajedno i to spojis na r8, drugu cifru isto sve anode spojis zajedno na r9 i keca spojis anodu na r9 a ledaru spojis na A segment (R1) i to je to ...

Ima jedan pin na koji vezujem + napajanja... Ostalih 15, na njih stavljam minuse i segmenti svetle jedan po jedan... A jedinica, prvacifra je iz dva segmenta na jednom pinu... Razumemo se... :)
[ bogdan.kecman @ 03.01.2011. 15:25 ] @
uh da .. ti imas jedan pin koji je plus i ostale segmente zasebno ... jbg .. nece ti raditi ovo sa tim display-em .. a nece ni taj display sa ovakvom semom .. morao bi ili da se doda neki shift ili da se stavi pic sa vise pinova .. mada, 7seg su prilicno jeftini mozda ti je zgodnije da uzmes neki 7seg koji ima anode zajednicke po cifri, mnogo manje pinova, manja plocica, manje zica ... mada nije neka razlika da se uzme neki veci pic sa vise pinova samo steta ..
[ dr.NPN @ 03.01.2011. 15:29 ] @
Citat:
bogdan.kecman: ne znam kako se ponasa ovaj 358, ovde je postavljen da radi kao komparator jedino sto ne znam koji mu je raspon izlaznog signala ... ako nije rail2rail onda ces mozda imati problem posto ti idealno treba 0 ili 5V na izlazu ... mozes umesto njega da stavis neki pravi r2r komparator na primer MCP6541 i izlaz iz njega ce sigurno biti ok :)

Ako ne budem zadovoljan ovim, probacu... :)
Citat:
bogdan.kecman: mislis IR u providnom kucistu ili ?
Ja se izvinjavam, prevideo sam ono d ispred led dok sam radio na brzinu... pa sam stavio obicnu led, radi, ali nije osetljivost ok...
Citat:
bogdan.kecman:da li si siguran ?! tebi D3 stoji paralelno sa D1 (na uredjaju? svetli kroz prst zajedno sa D1?) ... ti sa R3 podesavas prag na X1 kada ce da skonta promenu nivoa svetla koje je stiglo na D2.
Pa jesam.
Sa tim trimerom nivelises ulaz na x2... D3 jaako slabo tinja... mada kod mene stoji fiksno 10k
[ dr.NPN @ 03.01.2011. 15:33 ] @
Imam dva sedmosegmentna, tesko cu iskopati jos jedan, mada mogu naci... Ili za keca da dodam samo da blinka, ako je rezultat preko sto da led display blinka na recmo 3-4Hz :) Moze i tako :)
Edit.. 8 segmenata... Moze ovo da se odradi?
[ shadow88 @ 03.01.2011. 16:11 ] @
nije to 8 segmenata vec 7 , tacku ne koristis, a bas takav displej ti treba da nakacis na kontroler tj projekat koji ti je predlozen, samo sto ovi displeji mogu biti sa zajednickom anodom ili katodom pa to treba videti koji je da ne bude "a sto ne radi ? " :) sve u svemu na svakom displeju imas dve zajednicke anode/katode i ako se ne varam to su pinovi u sredini na svakom redu pinova (gornjem i dolnjem)
[ bogdan.kecman @ 03.01.2011. 20:33 ] @
za keca stavis diodu koju vezes na R9 i R1 ... ako je za kod kuce, znaces da ako svetli ta ledara - to je 1 :D
[ dr.NPN @ 04.01.2011. 05:00 ] @
Hm.. Sklopio, programirao pic, ali kada dovedem napajanje nista se ne desava...
1. Sta treba da se pojavi na displeju kada se dovede napon?
2. Kakav napon dolazi u obzir za ulaz na pin 6?
3. Koja su podesavanja za programiranje, HS, ExtClk, WDTE, PWRTE, MCLRE... ???
[ bogdan.kecman @ 04.01.2011. 05:53 ] @
1. 000
2. 0 ili 5V
3. trebalo bi da ih programator izvadi iz hex-a .. a u sorsu pise:
Code:

#FUSES NOWDT                    //No Watch Dog Timer
#FUSES HS                       //Externi 8MHz kristal
#FUSES NOPUT                    //No Power Up Timer
#FUSES NOPROTECT                //Code not protected from reading
#FUSES NOBROWNOUT               //No brownout reset
#FUSES MCLR                     //Master Clear pin enabled
#FUSES NOLVP                    //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOCPD                    //No EE protection


ako nemas nista na display-y

1. proveri da li ti je mclr podignut ka vdd
2. proveri da li je kristal vezan kako treba (mora da bude sto blize mcu-u) i da li su oni filter kondovi vezani lepo na gnd (koju velicinu si koristio?)
3. proveri da li si stavio decoupling kondove odma pored pic-a (10nF+100nF+1-10uF)

[ shadow88 @ 04.01.2011. 14:08 ] @
jesi li proverio da li su displeji sa zajednickom katodom ili anodom ? ako je obrnuto nego sto treba onda nece raditi ... jesi li dobro vezao displeje ?

evo ti link na kom imas dosta slika na kojima je pinout za sedmosegmentni led...

http://www.google.com/images?h...AQwAA&biw=1024&bih=677
[ dr.NPN @ 04.01.2011. 16:32 ] @
Citat:
bogdan.kecman
1. 000
2. 0 ili 5V
3. trebalo bi da ih programator izvadi iz hex-a .. a u sorsu pise:

4. proveri da li ti je mclr podignut ka vdd
5. proveri da li je kristal vezan kako treba (mora da bude sto blize mcu-u) i da li su oni filter kondovi vezani lepo na gnd (koju velicinu si koristio?)
6. proveri da li si stavio decoupling kondove odma pored pic-a (10nF+100nF+1-10uF)


1. Meni trepere cifre na displeju recimo 3-4-5Hz obe zajedno, i menjaju se na recimo pola minuta... 00... 16... 30... 60... 72... 55... 22... Znaci nista konstantno!
2. Ok, to ce i da dobije :)
3. Izvadi, ali nisam bio siguran... A sors sam prevideo, kad N'UMEM, ali se trudim :)

4. Jeste
5. Vidis sve na slici, da li da ga prebacim blize pinovima, tj sa strane gde su pinovi?
6. Jesam... Ima i 10nF paralelno sa tim od 10uF, ali ne vidi se na slici... :)


Pogledaj sliku ispod kako izgleda...
[ bogdan.kecman @ 04.01.2011. 18:26 ] @
ja sam imao losa iskustva sa kristalom na proto plocicama kada ga odvojim daleko od pic-a, posebno ovako kada je vezan zicama kao na slici ... nije mala frekvencija ..
drugo - na slici pise 4MHz HEX je za 8MHz !!!

cifre treba da menjaju vrednost na svakih 10sec

vezi "ulaz" na gnd i resetuj ga - treba da sve vreme pise 000 na display-u ... ako je to tako onda uzmi stopericu i vezi sledece
- ulaz preko 10K na gnd
- zicu na ulaz

onda uzmi tu zicu u ruku, resetuj uredjaj i brzo (u prvih 10sec) pipni VDD 5 puta. sacekaj i trebalo bi da vidis uskoro (kao sto rekoh menja se na 10sec): 030 i onda posle jos 10sec treba opet da pise 000

ako si stavio pogresan kristal (4mhz umesto 8mhz) onda je sve usporeno i razdeseno
[ dr.NPN @ 05.01.2011. 17:27 ] @
Mislim da nije u kristalu problem...
Sad sam iskopao jedan od 8.8MHz, i isto se desava, samo trepere cifre jaaako brzo... Ali i dalje lupa neke vrednosti bezveze...
Ne kontam u cemu gresim... Ok, ako kristal nije 8, da ce frekvencija biti pogresno ocitana, ali kada ulaz nije nigde spojen, ja i dalje nemam dve nule nego ovo sto se desava na snimku...
http://www.youtube.com/watch?v=dWVzxofyKHc
[ veselinovic @ 05.01.2011. 18:01 ] @
Da nije problem u ovome :

ali kada ulaz nije nigde spojen

Mozda ulaz treba baciti na masu da se ne bi hvatali sumovi.
Poz.
[ bogdan.kecman @ 05.01.2011. 18:04 ] @
Citat:
dr.NPN: Mislim da nije u kristalu problem...
Sad sam iskopao jedan od 8.8MHz, i isto se desava, samo trepere cifre jaaako brzo...


treba da trepere brzo .. ako se dobro secam 50ms jedna cifra, pa 50ms druga cifra, pa 50ms treca cifra ... i tako u krug ..

Citat:

Ali i dalje lupa neke vrednosti bezveze...
Ne kontam u cemu gresim... Ok, ako kristal nije 8, da ce frekvencija biti pogresno ocitana, ali kada ulaz nije nigde spojen, ja i dalje nemam dve nule nego ovo sto se desava na snimku...
http://www.youtube.com/watch?v=dWVzxofyKHc


e sad, ako ulaz ne spojis ni sa cim - normalno je da dobijas "bezveze" vrednosti, vezi ga na GND i bice 00 sve vreme .. dakle ne mozes da ga ostavis da "visi", moras da mu dovedes 0 ili 5V, ako ostane da visi, on ce da ocitava "gluposti"

dakle rekoh ti - spoj ga sa 10K na GND, stavi taster prema 5V i onda stisni taster "jednom" i on ce ti prikaze 06, posle 10sec ce da prikaze 00, onda opet stisni taster 2 puta i on ce ti prikazati 12 ... dakle to pokazuje da broji impulse... on broji impulse 10sec (ili neki random broj sekundi obzirom da si turio kristal koji nije 8MHz :) ) i onda taj broj pomnozi sa 6 i prikaze ga
[ Sepa011 @ 05.01.2011. 21:07 ] @
Pošto sam plaknuo tacne od dočeka, evo malko i sa moje strane servirano, bez multipleksa, pošto je taki displej, jedino što se kolce komplikuje dodavanjem 2 komada HC595 i ponešto rednih otpornika za svaki segment, 15 komada :)

Code:

Device 16F628A
Xtal 4
All_Digital true
PortB_Pullups false

Symbol Clk        PORTB.0
Symbol Dta        PORTB.0
Symbol Ltch        PORTB.0
Symbol Kec        PORTB.0

Symbol Ulaz        PORTB.0

' ukoliko je broj impulsa veci od 33 (198 bpm)
' prikaz na displeju ce biti nelogican :)
Dim BrojImpulsa    As Word
Dim Pin            As Bit
Dim Cifra        As Byte


Clear
GoTo Glavni
'****************************************************************
'* Podprogrami                                                  *
'****************************************************************
Shiftuj:
    If Cifra.0 = 1 Then
        Dta = 1
    Else
        Dta = 0
    EndIf
    GoSub Clock
    
    If Cifra.1 = 1 Then
        Dta = 1
    Else
        Dta = 0
    EndIf
    GoSub Clock
    
    If Cifra.2 = 1 Then
        Dta = 1
    Else
        Dta = 0
    EndIf
    GoSub Clock
    
    If Cifra.3 = 1 Then
        Dta = 1
    Else
        Dta = 0
    EndIf
    GoSub Clock
    
    If Cifra.4 = 1 Then
        Dta = 1
    Else
        Dta = 0
    EndIf
    GoSub Clock
    
    If Cifra.5 = 1 Then
        Dta = 1
    Else
        Dta = 0
    EndIf
    GoSub Clock
    
    If Cifra.6 = 1 Then
        Dta = 1
    Else
        Dta = 0
    EndIf
    GoSub Clock
    
    If Cifra.7 = 1 Then
        Dta = 1
    Else
        Dta = 0
    EndIf
    GoSub Clock
    GoSub Latch
Return

Clock:
    High Clk
    DelayMS 1
    Low Clk
    DelayMS 1
Return

Latch:
    High Ltch
    DelayMS 1
    Low Ltch
Return

' Ovde se definisu bitovi koji odgovaraju pojedinim segmentima
' displeja
SpremiCifru:
    Select Cifra
        Case 0
            Cifra = %11111111
            
        Case 1
            Cifra = %11111111
            
        Case 2
            Cifra = %11111111
            
        Case 3
            Cifra = %11111111
            
        Case 4
            Cifra = %11111111
            
        Case 5
            Cifra = %11111111
            
        Case 6
            Cifra = %11111111
            
        Case 7
            Cifra = %11111111
            
        Case 8
            Cifra = %11111111
            
        Case 9
            Cifra = %11111111
            
        Case " "
            Cifra = %00000000
            
    End Select
Return
'****************************************************************
'* Glavna programska petlja                                     *
'****************************************************************
Glavni:

BrojImpulsa = 0
Low Kec
Cifra = " "
GoSub SpremiCifru
GoSub Shiftuj
Cifra = 0
GoSub Shiftuj
GoSub Latch

While 1 = 1
    BrojImpulsa = Counter Ulaz, 10000
    BrojImpulsa = BrojImpulsa * 60
    If BrojImpulsa > 99 Then
        High Kec
    Else If BrojImpulsa > 9 Then
        Low Kec
        Cifra = Dig 1, BrojImpulsa
        GoSub SpremiCifru
        GoSub Shiftuj
        Cifra = Dig 0, BrojImpulsa
        GoSub SpremiCifru
        GoSub Shiftuj
        GoSub Latch
    Else
        Low Kec
        Cifra = " "
        GoSub SpremiCifru
        GoSub Shiftuj
        Cifra = Dig 0, BrojImpulsa
        GoSub SpremiCifru
        GoSub Shiftuj
        GoSub Latch
    EndIf
Wend
End

kada se iskompaljira ima celih 404 programskih reči
[ dr.NPN @ 09.01.2011. 17:45 ] @
Sepo, nemam tih kolca kod sebe, jedino da narucujem...
U medjuvremenu sam napravio ovo po vec datoj semi, i sad mi ne radi uopste... Ne znam sta se desilo?!
Kako da znam da mi pic nije crkao, inace uredno ga programiram i verifikujem...?

Ovo sam radio sa dva sedmosegmentna displeja, i napravicu umesto keca da trepce kada predje preko sto otkucaja... Sa ne555, da se ne cimate oko koda...
Samo me interesuje kako da ga ispitam, da pravim neko test kolo, ili sta?

Hvala!
[ Sepa011 @ 09.01.2011. 18:53 ] @
Da proveris da je sve OK sa PIC-onjom, jedino da napravis neko test kolce sa Low Current LED-arama i da napises programce koji ce da proveri njegove izlaze.

Code:
Device 16F628A
Xtal 4

All_Digital True
PortB_Pullups False

Reminders False
Config BODEN_OFF, BOREN_OFF, CP_OFF, DATA_CP_OFF, PWRTE_ON, WDT_OFF,_
       LVP_OFF, MCLRE_OFF, INTOSC_OSC_NOCLKOUT
Reminders True
       
Output PORTA
Output PORTB

Clear
GoTo Glavni

Pauza:
    DelayMS 200
Return

Glavni:
While 1 = 1
    High PORTA
    High PORTB
    GoSub Pauza
    Low PORTA
    Low PORTB
    GoSub Pauza
    High PORTA.0
    GoSub Pauza
    Low PORTA.0
    High PORTA.1
    GoSub Pauza
    Low PORTA.1
    High PORTA.2
    GoSub Pauza
    Low PORTA.2
    High PORTA.3
    GoSub Pauza
    Low PORTA.3
    High PORTA.4
    GoSub Pauza
    Low PORTA.4
    High PORTA.6
    GoSub Pauza
    Low PORTA.6
    High PORTA.7
    GoSub Pauza
    Low PORTA.7
    High PORTB.0
    GoSub Pauza
    Low PORTB.0
    High PORTB.1
    GoSub Pauza
    Low PORTB.1
    High PORTB.2
    GoSub Pauza
    Low PORTB.2
    High PORTB.3
    GoSub Pauza
    Low PORTB.3
    High PORTB.4
    GoSub Pauza
    Low PORTB.4
    High PORTB.5
    GoSub Pauza
    Low PORTB.5
    High PORTB.6
    GoSub Pauza
    Low PORTB.6
    High PORTB.7
    GoSub Pauza
    Low PORTB.7
    GoSub Pauza
Wend

End


Naravno na svaki pin redno sa LED-arom 2k2 (ako su LED-are od 2mA), jedino nema LED-are na RA5 posti je on Input Only
[ bogdan.kecman @ 09.01.2011. 19:28 ] @
Citat:
dr.NPN
U medjuvremenu sam napravio ovo po vec datoj semi, i sad mi ne radi uopste... Ne znam sta se desilo?!
Kako da znam da mi pic nije crkao, inace uredno ga programiram i verifikujem...?


ako ga programiras i verifikujes - nije crko

e sad, za programiranje mu nije bitan oscilator tako da ako ne radi
1. proveris dal je oscilator lepo spojen
2. proveris dal su ona 2 konda koji su vezani sa kristala na gnd lepo vezani
3. proveris dal ti je mclr na vdd preko 10k
4. proveris decoupling cap's

to ti je mantra .. uvek te 4 stvari proveris pre nego bilo sta drugo

za onaj kod sto sam ti ja poslao pin1 ce ti ici 0-1 non stop (dakle 0V i 5V), ako se dobro secam 10ms je 5V pa je 20ms 0V pa tako u krug (isto i pinovi 17 i 18) .. ostali zavisno od toga sta imas na ulazu rade razlicito ... tako da ako zakacis 3 ledare na 1,17,18 prema gnd ili prema vdd (svejedno) preko nekog 680R otpornika one ce da "jako brzo trepere"
[ bogdan.kecman @ 09.01.2011. 19:53 ] @
evo ti 2 nova hex-a i novi source

counter_8MHz_externi_xtal.hex - ovo ti je 628A sa externim 8MHz oscilatorom
counter_4MHz_interni_oscilator.hex - ovo ti je sa internim 4MHz oscilatorom, manje je precizan ali ti ne treba oscilator uopste

pin1 (A2) ce ti biti 5V ako je rezultat > 99 (dakle 100 ili vise) ili ce biti 0V ako nije .. tako da tu vezes ledaru preko 680R i eto ti ga kec

ostalo je isto

dakle ako te zeza taj oscilator, samo ga otkaci od pic-a i koristi ovaj hex za interni oscilator
[ dr.NPN @ 10.01.2011. 01:51 ] @
Ma sve je vezano OK, i radilo je, doduse ne kako je trebalo... Sada ne daje znake zivota...
A cini mi se da si zaboravio da ubacis hex ;)

EDIT: Vrisnuo je 10k sto ide na pin 4... ne znam kako, smd je, jedva skontah da je tu nabudzen... Promenio i radio je.. Dok mi ulaz nije pao na 12V slucajno... Sad cekam drugi pic :/

[Ovu poruku je menjao dr.NPN dana 10.01.2011. u 05:00 GMT+1]
[ Sepa011 @ 10.01.2011. 11:56 ] @
Bogdane, iskompajliraj coveku sa
Code:
#FUSES NOMCLR

da moze da baci taj pullup koji mu je pravio probleme.
[ dr.NPN @ 10.01.2011. 12:27 ] @
Ne smeta to, ko zna sto se desilo... Nego, cekam pic novi pa cu onda... A jel te cifre moraju da trepcu tako? Stavio sam za probu 22MHz, stoji, lepo izgleda :)
[ bogdan.kecman @ 10.01.2011. 14:15 ] @
ne moraju, moze da se ubrza da trepcu "brze"

za nomclr, sta znam, ja uvek volim da imam reset taster na plocki
[ rsinisa @ 16.01.2011. 23:04 ] @
Citat:
bogdan.kecman: ako ga programiras i verifikujes - nije crko


Ovo baš i nije tačno; ako odradi verifikaciju to samo znači da mu je ispravna programska memorija i sklop za programiranje. Mnogo toga drugog može da bude neispravno. Konkretno, imam jedan 16F84A kome ne radi jedan RA pin, a normalno se programira i verifikuje.

Pozdrav.
Sinisha
[ bogdan.kecman @ 17.01.2011. 18:35 ] @
da, u pravu si ... doduse morao bi da sprzi bar 3 pina da bi dobio situaciju da mu nista ne svetli a i ja nikad nisam uspeo 628A da spalim nicim ... (a nisam bio bas pazljiv) ... do sada sam uspeo samo 32bitne da specem .. tj na jednom 32mx440f256H sam uspeo da specem jedan pin (oni su 3v btw) tako sto sam mu doveo 12V ... sto je najbolje sve je nastavilo da radi samo je taj jedan pin zanavek ostao zakucan na jednu stranu (ne secam se sad dal na dole el na gore)
[ dr.NPN @ 21.01.2011. 02:21 ] @
Citat:
bogdan.kecman: evo ti 2 nova hex-a i novi source

counter_8MHz_externi_xtal.hex - ovo ti je 628A sa externim 8MHz oscilatorom
counter_4MHz_interni_oscilator.hex - ovo ti je sa internim 4MHz oscilatorom, manje je precizan ali ti ne treba oscilator uopste

Bogdane, hvala puno na trudu.

Zaboravio si da okacis ove hexice, pa te molim da ih okacis :)

KONACNO je stigao nov pic, koji radi, onaj sam defnitivno spalio, programator ga ne prepoznaje...
Ok, ovaj radi, uzeo sam odmah i kristal od 8Mhz...
Okaci ta dva, pa da probamo, ovo meni i dalje ne broji kako treba, sad cu da napravim novu plocu i da fiksiram kristal odmah pored pica, sve prekontrolisem, pa da vidimo :)
Valjda cu konacno ovo zavrsiti...

I jos nesto.. Molim te reci mi sta treba da izmenim u kodu, pa da probam da izmenim i iskompajliram, jel moze to u MPLab? :)
[ bogdan.kecman @ 23.01.2011. 21:34 ] @
bio sam siguran da sam ih podigao :D

treba ti PICC ili CSCC (ista stvar, razlicito ime) http://www.ccsinfo.com/
ako se dobro secam mozes da skines demo verziju koja je limitirana sa duzinom koda, ovo je kratak kod tako ce verovatno raditi ... ja imam kupljenu verziju za 16F kontrolere tako da ne mogu da ti uzajmim ali mozes da se iscimas malo mozes sam da "uzajmis" verziju koja radi sa svim verzijama kontrolera.

probaj bez kristala ovaj sto koristi interni oscilator .. nije "tacan" ali je zgodan

EDIT: evo sad je sigurno zakaceno ... elem obrati paznju, ovi HEX-ovi nemaju "prvu cifru" kao sedmosegmentni nego su samo
Code:

     if (x>99) {
       output_bit(PIN_A2, 1);
     } else {
       output_bit(PIN_A2, 0);
     }


dakle ako je prva cifra 1 onda ce A2 da bude 5V a ako je prva cifra 0 (tj nema je) onda je A2 GND .. tako da okacis ledaru na A2 (preko 680R na GND) i to je to .. sto se prve cifre tice
[ rsinisa @ 24.01.2011. 22:09 ] @
Što se tiče hardvera, mogao si da probaš moj PIC panel. Imaš kompletan hardver i osnovni soft kojim se kontrolišu displeji i tasteri (bez eliminacije treperenja) što znači da ti ostaje samo da dopišeš merenje vremena izmedju 2 otkucaja.
Treperenje koje se vidi na onom youtube snimku može da bude od loše filtracije napona napajanja, a frekvenca kojom treperi predstavlja razliku izmedju mrežne frekvence i frekvence osvežavanja displeja.
Za tu namenu ne treba ti kristalni oscilator, interni je sasvim dovoljne preciznosti.
Što se tiče broja preko 100, umesto treperenja možeš da upališ tačku i na displeju prikažeš broj umanjen za 100.

Pozdrav.
Sinisha
[ bogdan.kecman @ 24.01.2011. 22:39 ] @
jos bolje onaj obrtomer :) .. samo malo preradis sors :)

inace, mislim da je treptanje bilo zbog velike pauze u onom prvom hexu ... (mislim da je bilo oko 100ms dok ne dodje isti display na red) ... ovi poslednje uploadovani hex-ovi su 10ms pauza i samo se 2 7seg-a updateuju dok se za 100 pali ili gasi jedan pin

sto se tice preciznosti internog - ja sam imao pakleno losa iskustva
[ rsinisa @ 24.01.2011. 22:58 ] @
He, taj soft nije DŽ :).
Ono treptanje nije klasično treptanje već je to pre kontinualno smanjenje i povećanje intenziteta (za Bogdana: pošto se bolje snalaziš sa engleskim izrazima, za tebe dva pojma: fade-in i fade-out ;) ). A imao sam nedavno baš takav slučaj na jednom mom uredjaju napravljenom pre dosta godina. Ali moguće da grešim u ovom slučaju, nisam analizirao progam. Uostalom, to se lako ustanovi stavljanjem jednog promenljivog kondenzatora.

Pozdrav.
Sinisha
[ bogdan.kecman @ 24.01.2011. 23:42 ] @
ako turi neki od ovih novih hex-ova videcemo ... prvi je imao povelik delay (50ms posle svakog segmenta je u hex-u ako se dobro secam, sa 3 aktivna segmenta, znaci 100ms je svaki segment ugasen .. to je vidljivo) .. ovaj novi hex je sa 10ms pa da vidimo bas na sta on lici kada se pusti ... ja nemam pri ruci neki 7seg, prestao sam davno da ih trosim (kada su 10x1, 16x1, 16x2 karakter display-i postali skoro dzaba) tako da sam mozda neki deo odradio pogresno pa ja iniciram treperenje (npr mozda sam zamenio mesta paljenju i gasenju, ne bi mi bio prvi put :D )

a sto onaj sw nije dz .. boze moj :D mora i elektronci od nesto da zive :D

[ dr.NPN @ 26.01.2011. 05:07 ] @
NIJEDAN od novih hex-eva ne radi... Kada se dovede napon, oba izbacuju 55 prvo, pa onda 00... Ako samo jednom dovedem +5V na ulaz, koji je preko 10k spojen na masu, izbacuje random... 72... 44... 38... Oba se ponasaju isto. Napravio sam novu plocu, kristal je od pic-a udaljen jedan pin, sve je vezano kako treba...

Sada ne treperi, bar se ne primeti... :)

Ali i dalje ne radi. Polako gubim nadu da cu ovo ikada zavrsiti. :/
[ bogdan.kecman @ 26.01.2011. 13:55 ] @
ako vezes ulaz na gnd - da li imas konstantno nule?
[ dr.NPN @ 26.01.2011. 16:16 ] @
Da, imam nule.. Ali pazi prijatelju, dovedem napon 55, i spojim jednom samo na 5V i dobijem 90, u roku od 5 sekundi... Trebalo bi posle deset sekundi da izbaci broj 6...
To je novi hex sa externim oscilatorom, nov kupljen, odmah do pic-a, nema sta :/
[ dr.NPN @ 26.01.2011. 16:19 ] @
[ dr.NPN @ 26.01.2011. 16:22 ] @
Da, imam nule.. Ali pazi prijatelju, dovedem napon 55, i spojim jednom samo na 5V i dobijem 90, u roku od 5 sekundi... Trebalo bi posle deset sekundi da izbaci broj 6...
To je novi hex sa externim oscilatorom, nov kupljen, odmah do pic-a, nema sta :/

http://www.youtube.com/watch?v=iHEY17KgHaU
[ bogdan.kecman @ 26.01.2011. 16:24 ] @
on ima schmidt trigger ulaz ali opet je pitanje koliko pulseva vidi kada ga tako pipnes zickom ... (onaj inicijalni broj na pocetku nije bitan) ..

aj spucaj ovaj hex

edit: cek da ga napravim ... reci mi - koji ti je pin zgodan da na njega okacis ledaru za debug?
[ dr.NPN @ 26.01.2011. 16:31 ] @
Dvojka i trojka su mi slobodni, ali mogu bilo sta da razlemim.. dodaj me na fejsu ako ti je zgodnije, Trofazna Carolija je ime.. :)
[ bogdan.kecman @ 26.01.2011. 16:40 ] @
stavi ledaru na pin2 (RA3)

ledara ce da se pali/gasi kako dolaze impulsi (jedan impuls je upali, drugi ugasi) ... pa pogledaj kako se ponasa doticna
[ dr.NPN @ 26.01.2011. 16:53 ] @
Vezao sam ledaru na minus preko 680r, a plus na pin dva... Ne daje znake zivota, a displej i dalje izbacuje random cifre... Nesto definitivno nije u redu...??????
[ bogdan.kecman @ 26.01.2011. 17:09 ] @
da li ti sad broji?
[ dr.NPN @ 26.01.2011. 19:27 ] @
Debug led i dalje ne radi, i dalje lupa cifre bzv... Ne kontam... Ono iz pp cu uvece kad instaliram mess isam kod kuce...
[ bogdan.kecman @ 26.01.2011. 19:33 ] @
ovaj main2.hex bi trebalo da ti prvi izbroji od 00-99 i onda da krene da radi ... uopste ti ne izbroji ?
[ bogdan.kecman @ 26.01.2011. 21:59 ] @
napisi dal ti ovaj zadnji vrti 0-99 ... ako ne da sklepam ja ovo ne mogu da verujem da ti ne radi ...
[ dr.NPN @ 26.01.2011. 22:34 ] @
ok, broji... napravicu jedan tajmer kasnije pa sa optokaplerom, vidim da mu treba perfektno cist imput... pa javim sta sam uradio, kontam da ce biti sad ok, debug led se cudno ponasa na kontakt, pa cu sa kaplerom... :)
[ bogdan.kecman @ 26.01.2011. 22:43 ] @
ako broji to znaci da sve "sljaka" :D ...

sta je fora "debug led" se pali/gasi na impuls .. ako ti dovedes 1 impuls a dioda "zatreperi" znaci da je on "osetio" nekoliko komada ... nisam siguran da ce opto da ti pomogne, bolje dodaj neki schmidt inverter .. 74HC14 pre njega mada tebi izlaz sa OP-amp-a ne bi trebalo da "osciluje" .. da li si ga mozda pogledao scope-om?
[ dr.NPN @ 27.01.2011. 00:41 ] @
Ne, nemam osciloskop... Odlicno ako radi... Sutra cu da povezem to sto sam mislio pa javim rezultate :)

Hvala puno na cimanju :)
[ bogdan.kecman @ 27.01.2011. 10:11 ] @
nema frke :) ... 628 na B0 vec ima Schmidt ulaz tako da ako toliko "skace" znaci da ti je izlaz prilicno los .. dodaj na izlaz iz tvog kola neki filtercic (kondenzator + otpornik) pa 74hc14 pa tek onda vozi to na pic .. trebalo bi da odradi stvar