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 mikrodenetleyiciye RS-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. Rs-485’te mesafeden kazanmak için iki kablo arasında birbirine zıt potansiyel farktan yararlanılıyor ve sinyal kuvvetlendirilerek yollanıyor. Böylece daha uzak mesafelere, yüksek hızda veri yollanabiliyor.
Devrenin alıcı tarafında ise; iki kabloyla gelen bilgiyi MAX485 entegresine girişini sağladım. Bu entegrenin çıkışını ise Pic RX bacağına bağladım.

Biraz PIC mikrodenetleyiciden de bahsetmek gerekirse; sağlıklı veri transferi için dahili USART modülü olan bir mikrodenetleyici (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şmede 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 Rs-232 ile Rs-485 arasındaki farkı ortadan kaldırıyorsunuz ve elinizde uzun menzilli bir Rs-232 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.