Encoder ile AC motor sürme

Başlatan mokan, 03 Mart 2011, 11:14:13

mokan

merhaba arkadaşlar.
elimde HS30A encoder ve asenkron fırçasız daimi kondansatörlü ac motor var.bu motoru,encoder yardımı ile pic'le kumanda etmek istiyorum.ancak daha önce hiç encoder kullanmadım.elimdeki encoder'ın datasheet'de ingilizce olduğu olduğu için anlamadım.encoderla motor sürmede bazı konuları merak ediyorum yardımcı olursanız sevinirim.
1.)Encoder'ı pic içinde okuturken pals genişliğine mi bakıyoruz yoksa gelen pals sayısına mı?
2.)Bu işlem kesme ile mi yapılıyor?
3.)100 pals'lik demek 100 pals/saniye mi yoksa 100 pals/dakika mı demek?
4.)Encoder'ı pals sayısına göre okutuyorsak tıpkı buton basma oluşan arklardan dolayı burada ark oluşur mu?Bu arkı gidermek için zaman gecikmesi kullanırsak palsleri tam sayabilirmiyiz?
5.)Bu encoder'da iki kanal var pic ile kontrol yaparken bu iki kanaldan da okutma yapmak zorundamıyız sadece biri işimizi görüyor mu? ikinci kanalı kullanırsak daha mı hassas bir sayım yapıyoruz?
İlgilenecek arkadaşlara şimdiden teşekkür ederim.

stlg

Tek fazlı bir motoru encoderle calıstırma olayına bir anlam veremedim motoru encoderden gelen palslere gore döndürüp durdurmakmı istiyorsun

1-pals sayısına
2-kesme ile yapmalısın
3-100 pals demek bir tam turda gelen pals sayısı 100 demek
4-enkoderlerde ark olusmaz okurken gecikme koyarsan ve kesme kullanmazsan palsleri kacırırsın
ALLAHA EMANET OLUNUZ Hoştur bana senden gelen,  Ya gonca gül yahut diken,  Ya kaftandır yahut kefen,  Kereminde hoş lütfunda hoş.

mokan

evet gelen palslere göre döndürüp durdurmak istiyorum.kullandığım encoder çift kanallı.datasheet'den anladığım kanalların çıkışları arasında 90 derecelik faz farkı var.bu iki kanalı kullanırsak daha hassas bir sayım mı elde ederim.birde encoder kanal çıkışına daha sağlıklı olması açısından optokuplör koymam mantıklı olur mu gereksiz mi kaçar?

ete

Encoder de genelde A-B-C gibi 3 adet çıkış bulunur. A ile B bri birinden 90 derece faz farklıdır. C ise tur başına tek puls üretir (benim gördüklerimde öyle idi farklıda olabilir).
90 derecelik faz farkı encoderin dönüş yönünü bulmakta yararlıdır. Motor tek yönde dönüyor ise yalnızca A veya B çıkışını kullanmanızı öneririm.
Bu durumda motorun her turunda encoderin üretmiş olduğu (tur başına puls miktarı genelde 250-500-100 puls/devir şeklindedir) puls sayısı bilindiğine göre geriye yalnızca zaman tutarak puls saymak kalıyor. 1 sn (1000 ms) süre ile zaman tutularak gelen pulslar sayılmalı ve bu 60 ile çarpılarak dev/dak hesabı yapılmalıdır.  Dev/dak bulunduktan sonra ne ypacaksanız ona göre yapmanız gerekir.

Faz farkını gözeterek aynı zamanda yön kontrolü de yapam isterseniz, A ve B çıkışlarını birlikte okumanız gerekiyor. Önce bir referans okuması yapmanız ve ardından da ikinci bir okuma daha yapmanız gerekiyor. İlk ile ikinci bir birinin aynısı ise motor dönmüyor anlamınadır. İkinci okuma bir birinciden farklı ise ilk okumanın birinici biti ile ikinci okumanın 2. biti XOR işlemine tabi tutulur. Çıkan sonuç 1 ise motor (diyelimki saat yönünde) bir yöne dönüyor ve sonuç 0 ise mmotor aksi yöne dönüyor anlamındadır. Bu işlemi zaten ikinci bir puls ile yaptığınız için Sayac ileri yönde bir artırılır geri yönde bir eksilterek dev/dak hesabı yapılır.

Mikrodenetleyici ile yapılacak okumalarda encoder çıkışının voltaj seviyesi 5V dan farklı ise arada optik izolatör kullanılması uygun oalcaktır.

Ete


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

mokan

Yön değişimini tek kanal kullanarak da yapsak olmaz mı? Ben bunu bitirme projem için yapıyorum.Bir kapı kontrolünde kullanılacak.Kapının mesafesi belli.bu mesafe aralığında hem açılma yönünde hemde kapanma yönünde belli noktalara geldiğinde devirini azaltacağım.Örneğin 5m'lik açılıp-kapanma mesafesi olan kapı hem açılmaya hemde kapanmaya 1 metre kala yavaşlayacak.Ben şöyle bir şey düşündüm;

Encoder'ım 100 pals/devir,kullandığım motor 1480 dev/dk.Bunu dev/saniye 'ye çevirirsek 24,66 dev/s oluyor. 100x24,66=2466 pals/saniye olur.Bu da bana 1 saniyede yapılan palsi veriyor.Ben kapımın bir kapanmada yada bir açılmada ki palsini sayıp bunu saniyedeki pals sayısı olan 2466'ya bölersem kapının açılma yada kapanma zamanını hesap etmiş olurum.Ben kapının tam kapanmasına yada tam açılmasına belli bir saniye kala, kapımın yavaşlamasını istiyorum.Yukarıdaki hesaba göre yaklaşık olarak benim istediğim saniyeyi veren pals sayısını bulunca bunlar o kapı için sabitlenecek.
   Bu şekilde düşündüm bana doğru gibi geldi.Ama tam emin olamadım.Acaba bu mantık işe yarar mı?Ete bey'in bahsettiğide tam olarak böyle bir şey mi?

stlg

 Kapının ileri ve geri hareketini algılamak icin faz farklı A ve B uclarını kullanman gerekecek ama ben bu sekilde okuyamam dersen ,su sekilde yapabilirsin, kapı tam acıkken encoder Z konumunda olsun (Z cıkısının cıkıs verdigi an )burası referans noktan,  kapı kapanmaya baslasın (sadece A cıkısını sayıyoruz)atıyorum 46.palsda motor yavaslasın 55.palsde dursun, sonra acılmaya baslasın gene A palsini sayarak 46.palsde yavaslasın, Z cıkısı geldiginde dursun ,bu sistem cok kullanıslı degil ama bir ogrenci projesi olarak kullanılabilir tabi burada onemli olan kapı tam kapanıncaya kadar 100 pals gelmemeli , senin zamanla herhangi bir isin yok, pic reset aldıgında kapı nerde olursa olsun ilk once kapıyı acmaya calıs Z palsini gordugunde durdur, daha sonra acma yada kapama islemlerini yukarda anlattıgım sekilde yapabilirsin
ALLAHA EMANET OLUNUZ Hoştur bana senden gelen,  Ya gonca gül yahut diken,  Ya kaftandır yahut kefen,  Kereminde hoş lütfunda hoş.

ete

Mokan,

Yön değişimini sen yapmayacaksın. A ve B çıkışları YÖN algılamasında yardımcı olurlar. Ama yön ile işim yok diyorsan ki bunun için kapının açılmaya başladığı an ile kapanmaya başladığı anı bilmen gerekir. Bu anı nasıl yakalamayı planlıyorsn.
Puls hesabın doğru. Sistem teorik olarak şöyle çalışmalı.
Kapı açılmaya başlamadan hemen önce puls sayacını sıfırlarsın.
Kapı açılmaya başlar ve diyelimki pulsayacı=1500 oldu Motoru bu sayıda yavaşlatırsın. 2466 oluncada durdurursun.
Durduktan sonra puls sayacını yeniden sıfırlarsın ve kapı kapanırken aynı mantığı uygularsın. Kapandıktan sonra sayacı sıfırlarsın.
Bu şekildeki çalışmada işin bütününü insan görmeyince bazı noktalar açık kalıyor ama bu kısa açıklama bile iş akışını aşağı yukarı kafada canlandırmak için yeterli oluyor.

Sonuçta kapının kapandığı andan başlar isek , kapı kapandıktan sonra sayacını sıfırlayacaksın.
Sayac 1500 (yada belirleyeceğin başka bir rakam) değerine ulaşınca motoru yavaşlatacak ve 2466 da durduracaksın.
Sayacı yeniden sıfırlayacaksın ve kapanmada aynı mantığı uygulayacaksın.
Böylelikle motor yönü senin için önemsiz hale gelmiş olacak. Sen yalnızca pulsleri sayacaksın hemde tek kanaldan. Hepsi  bu.

Ete

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

mokan

Anladım bende bu şekilde bir şeyler düşünüyordum sizin anlatımlarınızla daha da netleşti kafamda.stlg ve ete yardımlarınız için çok teşekkür ederim.İyi çalışmalar dilerim.