16F84 PIC ile Step Motor Kontrolde Sorun Var???

Başlatan red_lantern, 01 Nisan 2014, 12:51:36

red_lantern

Mrh 16F84A ile tasarladığım Assembly dilinde kodladığım step motor kontrollu bir devre tasarladım. Yaptığım devrede masa üstü bilgisayarın power supply kullanarak hem enerji hemde devreyi aynı kutu içerisine koydum. bu cihazdan 2 tane yaptım ve gç verildiğinde sensöre gelip otomatikmen aynı konumda duruyorlar ve başla butona basıldığında step motorlar 45 derece açı ile sağa ve sola sallanıyor. Fakat devremdeki sorun güç verildikten sonra motorlar sıfırlama sensörne gelip beklerken ben daha başla butonuna basmadan sistemin bağlı olduğu elektrik hattında herhangi bir fiş takıldığında yada odanın lamba anahtarı açılıp kapandığında sanki başla butonuna basılmış gibi farz ederek step motorlar sağa sola salınıma başlıyor.?? devrede 16f84A başla komutunu verdiğim çıkışdaki devre + gerilmden gellen hatta 4,7 K direnç ile bağlı ve butonda - gerilime bağlı. Yanı butona basıldığında şase gerilimi ile start alması isteniyor programımda. ben bununla ilgili direnç değerinde değişiklikler yapıp tekrar denemeler yaptım olmadı güç kaynağının toprak hattını iptal ettim olmadı, güç kaynağının 12 volt bölmn kullanarak 7805 ile simetrik 5 volt vererek denedim olmadı. Acaba Programlamada başla komutunda gelecek olan negatif gerilim yerine pozitif gelirse başla diyebilirmiyim yada bununla ilgili herhangi bir fikri olan varsa Ltfen Yardımcı olabilirmi.Teşekkürler

RaMu

100nF kullan düzelir.
Problemin kaynağını belirlemiş gibi görünüyor,
bununla ilgili epey bilgi var şimdi buradan tekrar yazmayalım.

Sadece şunu söyleyeyim yazılımsal olarak önlem almanda faydalı olur,
misal butona basıldığında buton arkı olur,
bir insanın butona basıp bırakma süresi aşağı yukarı bellidir,
bunlarıda işin içine katarak butona (gerçekten) basıldımı ve bırakıldımı işlem yap şeklinde
kontrol edip işlem yaptırabilirsin.

Butona basılmıyorsa 1 geliyor,
butona basılırsa 0 geliyor,
butonda portb,3 de olsun;

kont1    BTFSC     PORTB,3           ;butona basıldımı
             GOTO      kont1                ;hayır                      ;tekrar kontrol et, kont1 e git
                                                     ;evet
             CALL       BEK_50MS         ;50ms bekle
kont2    BTFSS      PORTB,3           ;buton bırakıldımı
             GOTO       kont2               ;hayır                       ;bırakılana kadar bekle, kont2 ye git
                                                      ;evet                        ;
             CALL         BEK_50MS        ;50ms bekle
;artık butona basıldığını düşünebiliriz ne gerekiyorsa yap

daha farklı yöntemlerlede yapılıyor fakat en basit anlaşılanı bu yöntem.
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html

red_lantern

cevap için teşekkürler bende yanıtınızı okumandan önce 100 mikroFarad lık kondansatör taktım ve sorun dzeldi.Ancak 100nF takarsam bir fark olurmu benim yaptıgımda dogrumu sizce ?  Benim devrede ve Komut sisteminde zaten butona basıldıgında 0 geliyor boşdayken 1 gidiyor fakat bas bırak komutunu deniyeceğim. yardımınız için teşekkrler

BASLA             ; BAŞLA SALANMAYA
   BTFSS PORTB,2
   GOTO KAYDIR
   GOTO BASLA

bendeki butonun başlama komut satırımda yukarıda sizin söylediginiz komut satırlarını burayamı eklemem gerekli yada nasıl birleştirebilirim ?