74HC595 anlık çıkış vermesi - ÇÖZÜLDÜ -

Başlatan bahdiyarusta, 27 Mayıs 2016, 09:15:11

bahdiyarusta

arkadaşlar merhaba,

yaptığım bir devrede pic ile 32 çıkışı kontrol etmek için ekteki devreyi yaptım. uln entegrelerinin çıkışında röleler var,
devreye ilk enerji verdiğimde bütün röleler anlık olarak tık edip bırakıyor. bu da çok sıkıntı oluyor. 74hc595 entegresini devremden çıkarttım boad üzerine sade bir devre kurdum ve çıkışa sadece led bağladım enerjiyi verince anlık olarak ledin yanıp söndüğünü gördüm burda sorunun picden kaynaklanmadığına emin oldum.  konuyla ilgili baya araştırma yaptım ama çözüm bulamadım forumda konu açılmış ama ordan bir çözüm üretemedim tecrübeli arkadaşlardan destek rica ediyorum.

Denediğim yöntemler; :-\

* pic programının en baş satırında port ayarlarından  sonra 595 için bütün çıkışları sıfırla komutunu gönderdim.
* devrenin ana girişine 1000uf taktım
* picin beslemesine en yakın yerden 100nf paralel attım
* 595den çıkıp uln ye giren girişlere 4,7k ile şaseye çektim.
* 595 entegresinin data uçlarına 3 tane uç bunları 4,7k ile şaseye çektim.
* 595 entegresinin beslemesine en takın yerden 100nf paralel attım,
* uln entegresinin beslemesine en yakın yerden 100nf paralel attım,
* rölelerde ters diyor var,
* rölelerde paralel kondansatör var 100nf






<<<***bahdiyarusta****>>>
                  - 66 -

ete

Belliki 595 ler ilk çalışmada rastgele çıkış verebiliyor. Pek rastlamadım ama sen öyle diyorsan doğrudur diye düşünüyorum.
Bu durumda besleme yeterli seviyeye gelinceya kadar 595 leri reset konumunda tutmak gerekir. Bunu sağlamak için OE ve MR bacaklarından birini yad aikisini birden kullanmak gerekir. Nasıl dersen, Mesela OE bacağı normalde pulldown istiyor. O bacağa bir Pullup direnci bağla (10K mesela) bir deneme yap bakalım sonuç ne olacak. Yada MR bacağına bir pulldown direnci bağla. Dene bakalım aynı şekilde çıkış verecekmi açılışta.

Ete

bahdiyarusta

oe bacagı şuan şasede onu şaseden bağlantısını kesip 10k ile +5v a mı vereyim. yani şaseden bağlantısını kesmek mi lazım yok sa o halde mi vereyim.
<<<***bahdiyarusta****>>>
                  - 66 -

bahdiyarusta

bu şekilde deniyecem doğru mu anladım.
<<<***bahdiyarusta****>>>
                  - 66 -

ete

Doğru ama pek aklıma yatmadı bu çözüm. Bana kalırsa Kilit bacağına aynı işlemi uygulasan (SH_CP) belki daha doğru olurdu.
Bu kadar 595 li devre yaptım şimdiye kadar senin sorununla hiç karşılaşmadım. Beslemende bir sorun mu var acaba. Parazit yada regülasyon sorunu gibi bir şey olabilir. Mesela çok fazla 50Hz parazit bulaşıyorsa bunlar 595 leri rastgele çalıştırabilir.
Bu durumda kilit bacağını aynı konumda tutulması belki sorunu çözer. Sen yukarıdaki öneriyi dene yinede pek fazla ümitlenme.
Asıl SH_CP bacapına bir pullup bağla dene olmuyorsa aynı şeyi Pulldown bağlayarak dene. Birinden biri sonu vermesi gerekir.
İşin mantığında sen komut verene kadar 595 leri reset altında tutmak yatıyor. Mesela boş pin var ise OE bacaklarını birleştirip bir transistör ile Picden komut vererek açılıştan sonra o bacağa GND uygulayabilirsin. Böylece sen tetikleyene kadar 595 ler reset konumunda bekler. Denemeye değer bence.

Ete

mehmetOzdemir

shift registerları led gibi, display gibi malzemeleri sürmede port çoğullayıcı olarak kullandığınızda sorun çıkarsalar bile bu sorunları göz ardı edebilirsiniz. role, mosfet vb. gibi şeyleri sürdüğünüzde ise, sizin karşılaştığınız gibi başlangıçta istenmeyen çıkışları aktif olabiliyor.

size önerim; maliyet sıkıntı değilse bu işler için üretilmiş port expander entegreleri kullanmanız. ben, endüstriyel birçok uygulamamda mcp23008 kullanıyorum.

bahdiyarusta

mcp23008  kullanacağımı sanmıyorum türkiyede zor buunun  ve türkçe kaynağı çok az. 595 dışında farklı bir entegre ile sürebiliyor olmamız laızm.
<<<***bahdiyarusta****>>>
                  - 66 -

mehmetOzdemir


bahdiyarusta

4094 için araştırma yapacağım. bakalım umarım işime yarar türkçe bir link varise atar mısınız.

öncelikle akşam ete hocanın dediklerini devremde bir deneyim de. bakalım
<<<***bahdiyarusta****>>>
                  - 66 -

ete

İsis de koy ortaya bir 4094 OE bacağına bir LogicState bağla. D ucunada bir LogicState bağla. CLK ucuna bir toggle Logic State bağla Strob ucuna bir logic state bağla sonra başla denemeye.
Strob ucu HIGH olursa CLK eşliğinde data ucundan giren bilgi çıkışa aktarılıyor.
595 ile büyük benzerliği var. CLK ucu aynı Data ucu aynı Strob ucu 595 in kilit ucu ile aynı farkı ancak bunda strob ucu hIGh da tutulursa girilen bilgi direkçıkışlarda görülebiliyor.

Ete

mehmetOzdemir

uzun zamandır kullanmıyor, önceki projemlerimde şöyle bir kodla iki byte veriyi göndermişim.

SHIFTOUT DATA_4094 , CLK_4094 , 0,[GIDEN.HIGHBYTE , GIDEN.LOWBYTE]
        STRB_4094 = 1  : PAUSEUS 100 :  STRB_4094 = 0

bahdiyarusta

bakalım devreye baya masraf yaptım. 595 ile sonuca ulaşamazsan 4094 ile devam edcegım

teşekkur ederım
<<<***bahdiyarusta****>>>
                  - 66 -

bahdiyarusta

#12
devrem bu şekilde şu an  :-\
<<<***bahdiyarusta****>>>
                  - 66 -

bahdiyarusta

ewett

Ete hocam verdiğiniz tavsiyelere uyarak devremi revize ettim kısmen bana fikir verdi. picte boş pin olmadığı için oe ucunu kontrol edemedim dirençler tek başına işe yaramadı ama  çözüm olarak 595lerin şase beslemelerini bir transistörden anahtarladım komle şaseyi kestim transistöre de 1000uf lik kondansatör ile zamanlayıcı yaptım. enerji verdikten 5-10sn sonra entegreler besleme alıyor bu şekilde problemi çözdüm...

destekleriniz için tesekkur ederım
<<<***bahdiyarusta****>>>
                  - 66 -

ete

Düşündükçe insanın aklına başka çözümler gelebiliyor. Belkide en güzeli;
OE pinini 10 direnç ile GND ye çekecektin. Aynı pine 100 nf kondansatör bağlayıp onuda +5V ta bağlasan ilk açılışta kondansatör kısa devre davranır ve 595 leri reset altında tutar. Süre az gelir ise kondansatör değeri büyütülebilirdi.

Ete

Powered by EzPortal