Jump to content
ELFORUM - Forumul electronistilor
Lonerider

Numarator cu PIC16F628A

Recommended Posts

Vă salut.

Am încercat să-mi construiesc un numărător cu PIC16F628A, pentru a-l ataşa la o mşină de bobinat. Maşinăria este gata, dar nu am reuşit să construiesc numărătorul pentru ea. Am încercat două scheme, până acum.

 

Cea de aici: http://radio-hobby.org/modules/news/article.php?storyid=1000, am executat-o după indicaţiile din link. Am desenat cablajul cu Sprint-Layout, am folosit componente cu valorile din schemă. Am renunţat la contactoarele de la pinii 4 şi 16, dar au rămas rezistenţele R2 şi R4, la fel şi la rezistenţele R5-R12. Am folosit  două dual-digit cu anod comun verzi TOD 5261BG, iar la pinul 15 am montat un foto micro-senzor SX3019-P2 http://www.farnell.com/datasheets/1928437.pdf. Hex-ul folosit este cel scris de iniţiatorul proiectului. Din păcate, când porneşte şi funcţionează (mai şi minte la numărătoare, câteodată), când se blochează şi nu mai pot face nimic, până nu scot integratul din soclu. PIC-ul l-am programat cu un programator construit tot după o schemă luată din internet: http://pic-microcontroller.com/how-to-build-your-own-pic-programmer-using-pic12c50x/, utilizând WinPic.

 

 

Apoi, dacă nu am fost mulţumit de primul, am incercat varianta de numărător de aici: http://josepino.com/microcontroller/four_digits_counter. De asemenea, am folosit două dual-digit cu anod comun verzi ELD-436GWB/P16 http://www.datasheetarchive.com/dl/Datasheet-023/DSA00406927.pdf şi am legat pinul 3 al PIC-ului la Vss (în descrierea funcţionării este specificat că pot fi folosite ambele variante de display LED). Hex-ul l-am scris cu ajutorul aceluiaşi programator în PIC. Acum, diferenţa este doar de microcontroller: în schemă este PIC16F628, eu am folosit PIC16F628 A. Ideea este că montajul nu funcţionează, iar display-ul nu se luminează. Există diferenţe între aceste două microcontroller-e (ştiu că există ceva) încât să nu funcţioneze în această schemă? Am greşit ceva la cablaj? Mulţumesc pentru sfaturi.

 

Share this post


Link to post
Share on other sites

La prima variantă ai probabil probleme de decuplări , zgomote pe alimentare ,  culegere paraziți, etc . Greu de spus de la distanță . Poate ar fi utile ceva poze cu montajul și cablajul , detalii despre cum e alimentat și folosit , etc . 

La a doua nu prea are cum să meargă cu PIC16F628A dacă ai folosit același .hex. Trebuie dezactivat comparatorul . S-ar putea să fie probleme și la programare dar nu știu sigur acum . 

Share this post


Link to post
Share on other sites
Guest

Am incercat si eu o simulare a numaratorului, dar la o viteza mai mare de 10 impulsuri pe secunda nu numara corect.

Cu ce frecventa lucreaza microcontrollerul?

In program ar trebui lucrat cu timer0, 1...

Daca a lucrat doar cu count++ si delay(x); numaratorul nu o sa-ti satisfaca cerintele. 

 

P.S. iti recomand sa  folosesti mai intai un simulator. Chiar daca nu i-ti da exact timpii reali ( la frecvente mari, depinde si de calculator,...) dar totusi esti mai sigur ca ceea ce vrei sa realizezi va functiona si o alta recomandare, foloseste un breadboard pentru o simulare reala, si apoi la treaba. Te ajuta un breadbord la astfel de lucrari tinand cont ca este o schema simpla.

Share this post


Link to post
Share on other sites

Nu sunt diferente semnificative intre 628 si 628a:

 

Ai dreptate , îmi cer scuze pentru gafă. Orbit de ”documente” de pe internet , n-am citit DS de la 628 și am trăit cu impresia că nu are comparator . Verificând acum am observat că structura comparatoarelor este fix aceeași la 628 și 628A . Învățătură de minte , RTFM .... 

Share this post


Link to post
Share on other sites

La prima variantă ai probabil probleme de decuplări , zgomote pe alimentare ,  culegere paraziți, etc . Greu de spus de la distanță . Poate ar fi utile ceva poze cu montajul și cablajul , detalii despre cum e alimentat și folosit , etc . 

La a doua nu prea are cum să meargă cu PIC16F628A dacă ai folosit același .hex. Trebuie dezactivat comparatorul . S-ar putea să fie probleme și la programare dar nu știu sigur acum . 

Salut. La prima varianta am executat cablajul exact ca cel din link: http://radio-hobby.org/modules/news/article.php?storyid=1000. Singura diferenta este display-ul compus din doua duale de 7 segmente verzi, cu anod comun si conectate prin fire la cablajul cu microcontrolerul. Alimentarea este facuta cu un adaptor 220Vca/5Vcc-1A in comutatie (de la un router WiFi). Montajul nu este capsulat in nicio cutie, deocamdata. O sa postez si o poza, ceva mai tarziu.

Am incercat si eu o simulare a numaratorului, dar la o viteza mai mare de 10 impulsuri pe secunda nu numara corect.

Cu ce frecventa lucreaza microcontrollerul?

In program ar trebui lucrat cu timer0, 1...

Daca a lucrat doar cu count++ si delay(x); numaratorul nu o sa-ti satisfaca cerintele. 

 

P.S. iti recomand sa  folosesti mai intai un simulator. Chiar daca nu i-ti da exact timpii reali ( la frecvente mari, depinde si de calculator,...) dar totusi esti mai sigur ca ceea ce vrei sa realizezi va functiona si o alta recomandare, foloseste un breadboard pentru o simulare reala, si apoi la treaba. Te ajuta un breadbord la astfel de lucrari tinand cont ca este o schema simpla.

Viteza maxima pe care o dezvolta masinaria este de 22 impulsuri pe secunda, iar eu o voi folosi undeva la maxim 7 impulsuri pe secunda (asta ar fi peste 400 rotatii pe minut, si asta e prea mult). La partea cu simulatorul, m-ai daramat. La fel si cu programarea... Un breadboard m-am gandit si eu sa achizitionez de pe undeva, candva. Cred ca este foarte util.

Edited by Lonerider

Share this post


Link to post
Share on other sites
Guest

... La partea cu simulatorul, m-ai daramat. La fel si cu programarea... Un breadboard m-am gandit si eu sa achizitionez de pe undeva, candva. Cred ca este foarte util.

 

Poti folosi Proteus pentru simulari.

Aici ai un exemplu: programare, simulare si test cu breadboard https://www.youtube.com/watch?v=QJsGlIANJc4 .

Share this post


Link to post
Share on other sites

Nu intotdeauna un microcontroller e "bun la toate". In cazul de fata rezultate foarte bune ai obtine cu un numarator si convertor pe 7 segmente, exemplu CD4018 si CD4543(CD4511). Afisajul ramane acelasi, am inteles ca folosesti 4 digiti.

Edited by modoran

Share this post


Link to post
Share on other sites

Nu contest, pentru ca nu stiu si nici nu ma prea pricep. Aveti vreo schema ca idee? Multumesc.

Share this post


Link to post
Share on other sites

Primul numarator este un fell de numarator "lent" intrarile care vad ca sunt pe R5-R6 sunt simple intrari e si normal sa piarda numararea mai ales ca oscillator intern este unu-l fix de 4Mhz. 

Ar trebuii utilizat un pin IOC, care are intrerupere hardware la inpuls prin urmare indiferent care parte din cod este executat de PIC, softul este anuntat ca a venit un impuls prin urmare nu se pierd inpulsurile. Intrarea ar trebuii dotata si cu un  circuit "debounce" pentru a mai filtra inpulsurile false la cuplare/decuplare. 

 

Daca esti interesat iti pot face o schema + soft pentru PIC16F628A de preferat cu oscillator extern de 20Mhz.

Edited by bandi12

Share this post


Link to post
Share on other sites

N-am indraznit sa solicit cuiva asa ceva, de aceea am luat schema din internet, dar, daca aveti vreodata disponibilitate si ma puteti sfatui cu schema si soft, ar fi binevenite. Multumesc.

Share this post


Link to post
Share on other sites

Ok. Pai atunci aici sau pe PM sa descrii exact ce sa faca. Doar sa numere pur si simplu si ai un button de reset sau sa aiba oprire automata cand s-a atins un numar de rotatii,etc.... 

Edited by bandi12

Share this post


Link to post
Share on other sites

Salut. Doar sa incrementeze cu + si buton de reset, sa pot folosi display cu anod comun cu patru digit. Input banuiesc ca poate primi de la senzor hall, foto senzor sau un banal switch... Multumesc.

Share this post


Link to post
Share on other sites

Salut! Un banal numarator pentru o masina de bobinat era parca prin revistele tehnium. Pe vremea aceeia nu se lucra cu microcontroller era facut cu un banal calculator de buzunar se lipeau doua fire la butonul = unde se conecta un intrerupator cuplat la masina de bobinat si cand facea o tura se inchidea circuitul. Se tasta la calculator 1+1= si  dadeam la manivela  :rade: . Am expus ideea fiindca  poate  sunt persoane care vor sa faca un numarator mai repede si fara prea multe materiale.

Edited by yo9gcc

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.Terms of Use si Guidelines