Geçenlerde bir projede uzun mesafede bir kullanıcı modülü ve bilgisayar arasında bağlantı sağlamam gereken bir ihtiyaç doğdu. Nasıl yaparım derken.. RS 485 diye bir standardın olduğunu geç de olsa öğrendim. Çok bilinen bir şey olmasına rağmen bir Pic’e 485 protokolündeki verinin nasıl okutulacağı hakkında net bir bilgiye ulaşamadım.
Bilgisayardan veriyi yollamak için Rs-232’den Rs-485’e çeviren modüllerden aldım. piyasada bol miktarda bulunuyor. İstanbul’da bulunanlar için Anadolu yakasında “Yazıcıoğlu”, Avrupa yakası’nda ise “Selanik” pasajları uygun yerler olabilir. Rs485’te mesafeden kazanmak için iki kablonun voltaj farkında yararlanılıyor ve sinyal kuvvetlendirilerek yollanıyor. Böylece daha uzak mesafelere, yüksek hızda seri veri yollanabiliyor.
Devrenin alıcı tarafında ise; iki kabloyla gelen seri bilgiyi MAX485 entegresine girişini sağladım. Bu entegrenin çıkışını ise Pic RX bacağına bağladım.

Biraz Pic’ten de bahsetmek gerekirse, sağlıklı seri veri transferi için dahili USART modülü olan bir Pic mikrodenetleyicisi (16f877, 16f628a gibi..) kullanmanızı öneririm.
Max485’in 1. numaralı bacağını mikrodenetleyicimin Rx ucuna bağladım. burda iki önemli husus daha var. Eğer veri almak istiyorsak 4 numaralı bacağı toprağa, veri göndermek istiyorsak, 4 numaralı bacağı 5V’a bağlıyoruz. Diğer husus ise Rx+ ve Rx- uçları. Pc tarafında bulunan çevirinizin Tx+ ve Tx- uçlarını Max485’in Rx+ ve Rx- uçlarına bağlıyoruz. Bir ters bağlama durumunda ki ben bağladım ve gördüm; alaksız alakasız karakterler alırsınız ki bu da haberleşme de hiç istemediğimiz bir şey.
Max 485’in 6 ve 7 nolu uçları arasına da 120 ohm veya onun işini görecek bir direnç koymayı unutmayalım.
Bunları yaptıktan sonra normal Rs232 ile Rs 485 arasındaki farkı ortadan kaldırıyorsunuz ve elinizde uzun menzilli bir Rs232 protokollü bağlantı oluyor. Pc tarafında kullandığınız programlama dilinde ve mikrodenetleyici tarafında kullandığınız programlama dilinde hiç bir farklılık söz konusu değil.
Reklamlar