pic_loader
Üye
- Katılım
- 13 Eki 2009
- Mesajlar
- 42
- Puanları
- 1
Düzenekte encoder takılı ise mecburen onu kullanacaksınız. Absolute encoder hem pahalıdır ve hem de haberleşme zaman alır. Incremental encoder kullanırsanız çok yavaş hareketlerde puls alamayabilir ve dolayısıyle pozisyon bilgisini sağlıklı kontrol edemeyebilirsiniz. O nedenle encoder çıkışlarını ya yüksek kazançlı bir yükselteç ile (max 5 vol çıkışı olsun) ver veya 877 analog comparatör modunda giriş bacaklarına ver ve dahili karşılaştırma voltajını küçük seç.
Yukarıda örneğini verdiğiniz
degisken=PORTA & %00000011
işleminde %00000011 sayısı, port A nın diğer bacaklarından gelen bilgiyi maskelemek içindir. Sonuçta a0 ve a1 den gelen bilgi (0, 1, 2 veya 3) ne ise ona göre hareket yönünü ve pozisyonu saymak için kullanacaksınız. AB encoder diye araştırırsan görürsün. Bir bacağı alçıda birisinin merdiven basamaklarını çıkması veya inmesi gibidir. Encoderin bacaklarını dijital porta bağlarsan adım sırasından yön bilgisini bulursun.
Hassas pot kullansan daha iyi olabilir. Pot kullanacaksan analog kanalı (A0) ı kullan.
PID yerine PI kontrol algoritması daha iyi olabilir. Kol yatayda hareket ediyor olsa PID kullanmak zoundasın derdim.
Timer1 i hassas zamanlama için kullan (CCP1 compare modunda 50 yada 100 ms. için ayarlayabilirsin). Bu senin delta t zamanını belirler. Floating point aritmetiğine hiç girme. Her türlü hesaplamayı integer aritmetiği ile hem güvenilir ve hem de hızlı bir şekilde yapabilirsin.
CCS derleyicisini kullan. İçerisinde her konuda örnek beraberinde gelir. PWM örneği de mevcut.
Yazdığın programları Proteus ISIS üzerinde test edebilirisin.
Projenin %60'ını bu bilgilerle tamamlamış oldun.
Kolay gelsin.
Hocam size de çok teşekkür ediyorum.
degisken=PORTA & %00000011 ifadesi 0. ve 1. bitin değerini değişkene atıp diğerlerini maskeliyor demek.
Gerçi picbasic kullanmayacağım ama bu bilgide bulunsun kenarda.
Absolute encoder'i maliyet yüzünden kullanmak istemiyorum, dediğiniz gibi pahalı.
Incremental encoder kulllanımı için söylediklerinizi de aklımda tutacağım hesaplama için integer tavsiyesini de.
Vallahi teşekkür ediyorum hepinize, bu aşamada bu kadar yardımcı oldunuz ilk kod vucuda bir gelse yapacağınız katkılarla bu işi halledeceğiz demektir.
Teşekkürler.