Devir sayısı farklı motorların devrini ölçüp sabitlem

Başlatan futureng, 26 Ocak 2009, 09:26:12

futureng

Merhaba elimde 2 adet DC Motor var. L298N ile süreceğim. Motorlar aynı cins Fakat devir sayıları arasında +- oynamalar var. Aynı voltajda Farklı devirler elde ediyorum. Amacım CNY70 ile devir sayısı yavaş olan motorun devir sayısını ölçüp bu devir sayısının aynısını diğer mototra da uygulama. Bu konuda nasıl bir mantık takip etmeliyim?

İlgili programı JAL da yazacağım.
Başka dilllerde yapılmış örnekleri de incelyebiliriz.
GimpTR.COM: Hayal Gücünüzün Gerçek Dünyadaki Görünüşü  http://www.gimptr.com

Tagli

Kontrol için bir zaman aralığı belirlersin. Bu süre içinde encoder değerlerini okursun. Süre bittiğinde okuduğun değerleri karşılaştırıp büyük değerli motoru kapatırsın ve küçük encoder değerli motorun, büyük değerli motorun değerini yakalamasını beklersin. Sonra da duran motoru tekrar çalıştırırsın.

Kontrolü belli zaman aralıklarında dağil de belli encoder değerlerinde de yapabilirsin. Sanırım bu durumda timer kesmesi kullanmana da gerek kalmaz.

Encoder kontrol işlemi sonsuz döngü içinde yapılacağından bu sırada PIC başka işlem yapamaz. PIC'i mümkün olduğunca yüksek hızda çalıştırmanı tavsiye ederim.

Encoder okumayı kesme kullanarak da yapabilirsin belki. Ancak kesmeye çok sık gireceğini göz önünde bulundurmalısın. Ben olsam işlerin karışmaması için sonsuz döngüyü tercih ederdim.
Gökçe Tağlıoğlu

alayli

Tagli arkadaşımızın dediği de olabilir ama, bence çok sağlıklı olmaz. Motorları aç kapa yapmak yerine PWM ile sürmek daha mantıklı. Ben olsaydım; 16F876 gibi çift PWM çıkışlı bir pic ile motorları sürer. Sürekli motor devirlerini ölçüp devir giriş bilgileri ile PWM çıkışı arasında oransal bir kontrol yapardım. Uygulamanın hassasiyetine bağlı olarak P (oransal) kontrol kısmını, (PID) ye yükseltmek de gerekebilir...
Anca kazganmiş itmiş ilimiz törümüz erti. Türk Oguz begleri budun esiding. Üze tengri basmasar, asra yir telinmeser, Türk budun, ilingin törüngin kim artati? (udaci erti)

Klein

Referans motordan alınacak devir bilgisi ile diğer motordan alınacak devir bilgisini bir exor kapıda birleştirip , kapı çıkışını motora verirsen sıfır hata ile senkron edebilirsin.Bu uygulamada  Encoder darbe sayısının mümkün olduğunca yüksek olması gereklidir.

futureng

sanırım burada 2 yöntem söz konusu oldu.

1. PID tarz bir kontrol. Ama bu mevzuyu halen anlamadım.
2. Tarz xor dan geçirme olayı. Bu nasıl bir devre tarzıdır?

Benim planladığım şu şekilde idi:
her iki motora printerden dairsel olarak çıktı alınmış siyah zemin üzerine beyaz çzigi dilimleri olan çıktıyı her iki motorun mile yarleştireceğim. CNY70 ile uygun mesafeden referans olan motorun  dönüş hızı ile ilgili bir değer çıkaracağım. Bu çıkardığım değeri diğer motora uygulayacağım. Ama şu mevzu halen oturtamadım: Diğelim referans motordan 1sn de 95 değerini okuyorum. diğer motorunda 1sn de 95i bulması için nasıl bir komut tarzı uygulamalıyım?

Mesela: while n=95 vs... yani 95 olana kadar PWM i arttır gibi mi?
GimpTR.COM: Hayal Gücünüzün Gerçek Dünyadaki Görünüşü  http://www.gimptr.com