POT KOMUTUNUN KULANIŞI NASIL ?

Başlatan yusuftr80, 26 Mayıs 2006, 03:47:37

yusuftr80

ETE  KARDEŞ  sana ve senin gibi düşünen tüm iyi niyetli  yardım sever  arkadaşlarada  çok teşekkür ederim   burda her verilen bilgi  inanıyorum ki sizler göremesen nizde  bir yerde  mutlaka bir ışık yakıyor ve etraflarınıda aydınlatıyordur buna adım gibi eminim ve sizlerede çok teşekür ederim  çalışmalarınızın, başarılarınızın devamınıda çanı gönülden  dilerim
   
      Kardeş ben servo  da step te kulanmıcam  DC motor 12 volt  silecek motoru kulanıcam ama  burada programa nerden nasıl  başlıcamı bile miyorum  yanılmıyorsam program  iki  bölümden  meydana gelecek. Ama nasıl ?


Elle cevirdimiz potansiyo metre degeri motor sürücüsünü kontroledecek  sürücüye  giden degerde motordaki baglı olan potansiyo metre  dogrulucak dogrulandı zaman da görev yerine getirilmiş olacak..
Yada sisin bildiniz kısa bir yol varsa   onu söyleyin onu uygulayalım  şimdiden her keşe kolay ğelsin  yardım larınızı ben ve benim durumum da olanlar sanırım dört  8O  bekliyor olacağız? saygılar .

ete

Bir defa sistem olarak;
- 1 adet pic hemde analog Digital ceviricisi olacak. Bu durumda 2 adet analog digital cevirici girisi olur ise pot komutunu kullanmadan direkt adc yi kullanıp daha doğru bir kontrol yapabilirsiniz.
- 1 adet DC motor ve bu motorun miline bağlı (motorla birlikte dönen) bir potansiyometre (genelde çok turlu potlar daha uygun olabilir)
-1 adet H tipi köprü motor sürücüsü

olması gerekiyor.

Şİmdi olayın işleyiş şekline bakalım;
1. El kumadalı potu çevirdin. Belli bir konuma kadar, diyelimki orta konuma getirdin. Pic pot üzerinden bir ADC değeri okuyacak, 10 bit ADC kullanacaksınız ve okunan değer 0-1023 arasında bir değer olacaktır. Potun orta konumunda bu değer 512 olacaktır.
2. Şimdi okunan bu değere karşılık gelen motor konumunu aldırmak için pic motora komut verecektir. Önce moto mili hangi konumda onu anlamak için mile bağlı pot değerini okuyacak. diyelimki okunan değer (bir önceki komuttan kalan) 120 olsun. Bu durumda gelmesi gereken yer 512 olacağı için ileri (saat yönünde ancak devrenizde bu terside olabilir) motor dönmeye başlayacak ve pic saniyede belki 50-100 defa potun konumunu kontrol edecek. Değer 512 olunca motoru durduracak.
3. İşte böylece motor mili elle çevirdiğiniz pot konumuna paralel bir hareket alarak istenilen noktaya gelmiş oldu.
4. Şimdi potu tersine yani tekrar sıfır noktasına alalım.
5. Demek ki gelinecek nokta sıfır noktası; pic motordaki pot'u okudu baktı 512 değerinde duruyor. Ohalde ters yöne bir hareket verilecek. Bu sefer H-köprü (H-Bridge) devresi motoru geri döndürmeye başlayacak ve arada pot değeri okunup sıfır bulununca motor durdurulacak.
Bu arada uç noktalarda motoru otomatik durdurmak içinde bir tedbir düşünmelisiniz. Yani motor sıfır konumuna gelince hem programla hemde bir limit swich ile durabilmelidir. Aksi halde program sıfır noktasını bulamaz ise (olabilir) motor çalışmaya devam edecek ve potu veya bir başka yeri kıracaktır. Aynı husus maksimum açık noktası içinde geçerlidir.  Potlar 270 derece çalışabildiğine göre 270 derecede şayet durdurulmaz ise motor potu zorlayacak ve bir şeyleri kıracaktır. Bu işin iki yolu var. Birincisi bu uç noktalara birer mikro switch bağlamak veya motor sürücüsünde akım kontrolü yapmak. Akım kontrolünde motor normal çalışmada diyelimki 1 amper çekiyor uç noktalara dayanınca çekilen akım hemen 2 veya üzeri ampere çıkar. Bunu sezecek bir opamp devresi yaparsanız motor bu konumlarda otomatik durdurulabilir.

Hepsi bu kadar. Bu anlattıklarımı yapabilmeniz için;
1. Pic lerde ADC değeri okuma,
2. H-Bridge devreleri ve hareket mantıkları
3. Pic ADC pinlerine pot bağlama teknikleri ve pot değeri okuma teknikleri
4. Gerekirse 12V-24V 2-4 Amper güç kaynakları (motor sürmek için)
5. Motor korumak için akım kontrollü otomatik stop sistemleri
konularını araştırmanız gerekiyor. Takıldığını noktada size yine yardımcı olurum. Ancak sakın programın tamamını istemeyin. Zaten programdan önce bir devre şemasına ihtiyacınız olacak. Tabiiki yukarıda bahsini ettiklerimi önce araştırdıktan sonra devre şemasını çizebileek hale geleceksiniz.
Hadi bakalım çalışmaya başlayın.
Bu arada motor miline nasıl potansiyometre bağlayacaksınız merak ediyorum. Mekanik bir problem ve bu işler için aslında özel pot lar var. Adına shaft potansiyometre deniyor sanırım. Ortası delik siz mili oradan geçirip bir şekilde mili pota sabitliyorsunuz oluyor. Bir araştırın piyasada bulunabilir. Her neyse biraz kafa yorun bakalım. Sonucu burada açıklarsanız sevinirim.

Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

yusuftr80

Sevgili  Ete kardeş güzel bir açıklama yapmışsın  teşekkür ederim .
benim mekanik olarak  hiç bir teretütüm yok  gözü yumuk  donen bir nesne üzerine  877 entgereyi dahi rahatlıkla  kurabilirim  buna emin ol
asıl sorun bende benim programı nasıl ne şekilde  nerden başlayacagım konusu proteusta  ve   isisite de baskı devresi dahil olmakla hemen hemen  çogunu yapabileceme  inanıyorum.  Tabi elektronikte eksiğim olabilir    bu yüzdende siszlerden yardım istememin sebebi de buydu  yani kolay bir devre  şemsı varsa elinizde   benim işimi  kolaylaştırması  açısından   ihtiyaç duymuştum ama siz meşgul seniz sadece elinizde hazır  olabilecek bir  şema varsa onu bana veya burada yayınlaya bilir seni bana ve diyer arkadaşlarada  çok yardım cı olaca kanatindeyim  saygılar
        NOT.  Çalşmalarım da zayıf kaldım konular  .
      1 pic programlamaya  aşa yukarı senesi olacak ama .  kendi cabamla  zorda olsa bu aşamaya kadar gele bildim .

     2. elektroniktede 17 sene ara verdim şu andada şerit testere kaynak  ve bileme atölyesi işlet mekteyim malüm işlerin duru mu beni takrar bu mesleye geri yöneltiyor  ama benim bıraktım zamanlarda kulandımız malzemelerin işleyişleri   ve çogu devrelerde isimler  de degişmiş bunları da bir şekilde az da olsa başarmaya çalışıyorum .

    3.   ORHAN ALTINBAŞAK'ın  kitabından  çalışıyorum dedim gibi komutların islevini tek  başıma olunca anlayamıyorum tam olarak neyi nereye yazacamıda  bile miyor ve şaşırıyorum.

marmarabil

sevgili ete bu konu ile bende ilgileniyorum.10 k lık pot ile denedim ama direnc değeri devamlı değiştiği için motor da devamlı konum değiştiriyor ve mekankte bir titreme,kararsızlık oluyor.filtreledik ama yine pek işe yaramadı .çözünürlüğü daha da arttırmak istiyorum ama adcin komutunun kullanımı ile ilgili olarak kafamda soru işaretleri var çünki pot komutunun değeri atadığı değişken 8 bit adc 10 bit bu konu ile ilgili olarak ufak bir örnek yazabilirsen bizim için çok faydalı olacaktır.teşekkürler iyi çalışmalar

ete

ADCin komutunu kullansanız bile ardışık okumalarda farklı sonuçlar gelebilir. Bu nedenle yapılacak en akıllıca iş ADC okumasını 20 kez üst üste yapıp okunan değerleri toplamak ve sonunda toplam değeri 20'ye bölerek 20 okumanın ortalamasını almaktır. Böylece iniş çıkışlardan birazda olsa kurtulmuş olursunuz.

ADCIN komutunun kullanımı için benim ders notlarıma bakın;

http://www.hemenpaylas.com/download/689336/BASIC-DERS.rar.html

ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

yusuftr80

ÖRNEK: AŞAGIDAKİ PROGRAMDA NASIL BİR EKSİŞKLİK VARA,DA BU İŞ  HALOLMUYOR?  
BASLA:
TRISB=%00000000
TRISA=%00000000
PORTB=0
 
 X var byte
 X1 VAR BYTE
 
 POT PORTB.0,255,X
 LCDOUT $FE,1,"POT=",#X
 PAUSE 100
   
 IF X=2 THEN
   X=X1
   ENDIF
   
 IF X=4 THEN
   X2=X
    ENDIF
     
  IF X1=2 THEN  
  PORTB=%00000010
   pause 500
    ENDIF
       
  IF X2=4 THEN
  PORTB=%00000100
    PAUSE 500
    ENDIF  
   GOTO BASLA
     END
 
 
 
 
  ARKADAŞLAR  pot komutunu kulanarak (PORTB.0),da potansiyo metrenin degerini
  lcdout komutu kulanarak  x atıyor (LCD,)dede göre biliyorum fakat
  x ten x1,e bu degeri nasıl atıcam da x1 den de degerleri alp kullanabilirim  
 
 NOT.isiste yaptım simalsyon devresinide göndermek isterdim ama  onu da bir türlü başaramadım  bunada yarım ederseni iyi olur  ;)