mentransmisikan sinyal 5v melalui kabel panjang


17

Saya mencari bantuan di sini karena saya perlu jawaban yang dapat diandalkan untuk ini. Saya perlu mendapatkan sinyal input (frekuensi rendah 5v digital pulse), ke mikrokontroler dari sensor (proximity) yang terletak agak jauh dari papan kontrol.

Saya akan merinci poin-poin penting.

  • Jarak Max Tx: 50 m
  • Frekuensi pulsa digital maks: 10 Hz
  • Rentang tegangan sensor: 5 hingga 30 v (menghasilkan tegangan yang sama seperti yang disediakan)
  • Input maksimum ke mikro-controller: 5 v

Untuk aplikasi sederhana dan serupa, inilah yang telah saya lakukan sebelumnya; sensor dipasok dengan 12 v. Di ujung yang lain, pulsa (yang sekarang 0-12v) diumpankan ke mikrokontroler melalui regulator 7805. Itu bekerja dengan baik, tetapi seseorang mengatakan kepada saya bahwa metode ini tidak bagus dan tidak cocok untuk aplikasi yang dapat diandalkan. Saya juga merasa itu jelek tapi saya tidak berharap banyak main-main dengan perangkat keras, membangun sirkuit terpisah dll ... Dapatkah seseorang mengusulkan solusi yang lebih baik (atau setuju dengan saya: D).

Saya lebih suka banyak jika saya tidak harus membangun sirkuit sama sekali. Jika tidak memungkinkan, setidaknya yang sangat sederhana! (Sederhana dalam arti kompleksitas perangkat keras. Sirkuit yang tidak membutuhkan PCB, hanya dua kabel di sana-sini. Itulah sebabnya saya suka solusi 7805). Namun (sayangnya) prioritas tertinggi harus diberikan untuk keandalan.


3
Saya tidak mengerti mengapa Anda tidak bisa bertahan dengan solusi 7805 Anda. Saya menduga bahwa mereka yang mencaci Anda tentang penggunaannya dalam aplikasi ini melakukannya karena mereka mengalami kesulitan menerima penggunaan regulator tegangan yang agak tidak konvensional. Saya melihat tidak ada masalah dengan keandalan baik tetapi akan mendorong penambahan satu kapasitor 0.1uF kecil antara output dan GND bagian untuk memastikan stabilitas. Pada tingkat respons 10Hz saya tidak berpikir kapasitor tambahan akan memberikan masalah menanggapi pulsa sensor kecuali pulsa sangat sangat sempit dibandingkan dengan denyut nadi 100msec.
Michael Karas

@MichaelKaras hebat !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
kode SC

Jawaban:


20

Pendekatan yang disarankan adalah menggunakan optocoupler diikuti oleh komparator (mis. LM339 ), atau lebih baik, bagian terintegrasi seperti Fairchild Semi FODM8071 gerbang optocoupler output optic .

Alasan optocoupler direkomendasikan :

Kemungkinan ada perbedaan potensial ground pada kabel 50 meter, juga kemungkinan mengambil EMI melalui kabel panjang. Optocoupler menghilangkan semua loop tanah / masalah ketidakcocokan potensial, serta kebutuhan untuk secara tepat mencocokkan tegangan suplai sensor dengan mikrokontroler.

Penggunaan opto akan memungkinkan tegangan yang lebih tinggi untuk digunakan untuk rangkaian sensor, mengurangi sensitivitas kebisingan EMI.

Manfaat tambahan dari bagian Fairchild spesifik yang disarankan di atas adalah kekebalan kebisingannya yang tinggi. Ini akan menghasilkan akuisisi sinyal yang lebih stabil, penting mengingat jarak yang terlibat.

FODM8071 adalah bagian 5-pin SMT, jadi menggunakannya pada dasarnya seperti tidak harus membangun sirkuit tambahan - Anda bisa memasang bagian itu dan beberapa komponen pendukungnya berbeda - beda ke gaya deadbug , jika Anda suka, atau menempatkannya bersama-sama pada proto - papan PCB.


1
ini mungkin solusi terbaik, tetapi jika kabel memiliki konduktor ground saya tidak berpikir potensi ketidakcocokan akan signifikan. Saya akan mencoba pembagi resistif, itu solusi paling sederhana, atau solusi zener di bawah ini yang bahkan lebih tepat.
Vladimir Cravero

3
Opto pada ujung mikro jelas merupakan ide yang lebih elegan, saya akan menjadi paranoid (pengalaman dengan telecomms / petir / EMC) dan menambahkan beberapa dioda perlindungan / tranzorb untuk menyimpan opto dari tegangan nyasar / mundur / over. Secara umum, lebih baik mengirim sinyal yang lebih besar (mengirim 12v dan menghadapinya di ujung mikro) daripada memulai dengan sinyal kecil dan berjuang untuk menerimanya dengan andal. Ini juga dapat membantu penyebab Anda (imunitas noise) jika sensor Anda dapat menggerakkan beberapa arus di telepon, EG melalui resistor penghentian 100Ohm. Lihat standar RS485 / RS422 untuk contoh.
John U

1
@CodenamedSC: cari "mikrokontroler midi" atau "skematis midi". Ribuan hal di luar sana. Arah lain untuk penelitian lebih lanjut adalah loop saat ini , MIDI menjadi contoh sederhana dari itu.
Phil Frost

1
Beberapa istilah pencarian google / wikipedia untuk Anda: MIDI, DMX, RS-232, RS-485, RS-422, loop arus 20mA, pensinyalan diferensial.
John U

1
Ini mungkin berlebihan untuk aplikasi yang bersangkutan, meskipun seperti yang disebutkan ada aplikasi di mana biaya tambahan dan kompleksitas dijamin.
Chris Stratton

12

Mengirim 10 Hz lebih dari 50 m bukanlah masalah yang sulit, jadi Anda akan menemukan banyak cara untuk melakukannya. Untuk solusi yang hampir sesederhana yang Anda miliki sebelumnya, saya sarankan rangkaian zener sederhana.

masukkan deskripsi gambar di sini

Seperti sebelumnya, Anda cukup menyuplai sensor Anda dengan tegangan di atas 5 V. Katakanlah 6 - 12 V, dan biarkan sirkuit pembatas ini mengurangi tegangan ke level yang kompatibel dengan sirkuit hilir Anda. Anda harus menyesuaikan nilai R1 tergantung pada arus keluaran maksimum (atau yang diinginkan) dari rangkaian sensor Anda dan tegangan sensor yang Anda pilih. Biaya bisa sangat dekat dengan solusi 7805, tergantung zener mana yang Anda pilih.

Seperti optocoupler yang disarankan dalam jawaban lain, ini memberikan perlindungan terhadap transien tegangan tinggi yang diinduksi pada kabel, karena dioda zener dapat mendorong transien ini ke ground. Rangkaian optocoupler dapat memecah loop antara sistem pengiriman dan penerimaan, tetapi jika solusi 7805 Anda berfungsi, zener harus bekerja dengan baik.

Edit

Jika Anda ingin melakukan lebih banyak pekerjaan, Anda dapat meningkatkan sirkuit ini dengan membuatnya sedikit lebih rumit:

masukkan deskripsi gambar di sini

Dioda schottky yang ditambahkan melindungi sirkuit hilir Anda dari transien negatif. Zener akan melakukan ini, tetapi hanya akan membatasi transien hingga -0,7 V atau lebih. Schottky akan membatasi mereka hingga -0,3 atau -0,2 V, yang akan jauh lebih aman untuk perangkat hilir jika itu adalah gerbang logika tipikal.

Kapasitor 4.7 uF yang ditambahkan akan membantu mengurangi noise ketika input rendah.

Akhirnya saya menyesuaikan tegangan zener ke bawah untuk memastikan output aman untuk gerbang logika 5 V, bahkan memungkinkan untuk beberapa penyimpangan dalam tegangan zener, dan meningkatkan R1 untuk mengurangi arus yang diperlukan untuk menggerakkan input.

Semua hal ini dapat disesuaikan agar sesuai dengan detail sensor dan sirkuit hilir Anda.

Edit

Poin kunci yang perlu saya pikirkan semalam sebelum saya melihatnya:

Dengan asumsi kabel 50 m Anda berisi kabel sinyal dan kabel ground (atau return), optocoupler melindungi terhadap transien mode-umum (yaitu, ketika kedua sinyal dan kabel ground bersama-sama mengubah voltase relatif terhadap arde dari rangkaian penerima), sedangkan sirkuit zener melindungi terhadap diferensial transien mana tegangan kawat sinyal berubah relatif terhadap kabel arde.

Jika sambaran petir di dekatnya menyebabkan arde dan kabel sinyal bersama-sama melonjak hingga 100 V selama satu milidetik, Anda memerlukan rangkaian optocoupler untuk melindungi penerima Anda dari kerusakan.

Tetapi jika motor di dekatnya yang aktif menyebabkan kabel sinyal melonjak hingga 30 V di atas kabel ground, Anda memerlukan sirkuit zener untuk melindungi optocoupler Anda dari kelebihan beban.

Tentu saja, jenis kabel dan lingkungannya menentukan skenario mana yang lebih mungkin. Jika Anda menggunakan kabel kontrol tujuan umum, skenario mana pun adalah realistis. Jika Anda menggunakan kabel koaksial, transien mode umum lebih mungkin terjadi, tetapi Anda juga harus mempertimbangkan kemungkinan kerusakan ESD akibat penanganan ketika kabel tidak terpasang ke penerima, dan juga efeknya jika kabel tersebut awalnya diisi daya. ketika dicolokkan ke penerima.


2
7805 adalah catu daya , aplikasi ini bergantung pada 7805 yang berperilaku "ideal" dalam situasi yang tidak dirancang untuknya. Juga, ini benar-benar bukan pendekatan yang baik untuk menyelesaikan masalah. The 7805 memerlukan beberapa arus untuk beroperasi (dapatkah sumber sensor Anda memiliki arus yang cukup? Apakah memuatnya mengubah kinerja sensor?) Dan lebih suka melihat beban untuk dikendarai, dan tutup perata untuk mencegah osilasi / riak. Saran Anindo cukup masuk akal untuk aplikasi yang Anda sebutkan, jawaban Photon baik-baik saja tetapi mengasumsikan jalur sinyal yang sangat "bersih" (tidak ada perlindungan).
John U

1
@CodenamedSC - Saya benar-benar tidak bisa menjelaskan kesenjangan besar ini dalam pengetahuan / pemahaman listrik Anda di sini, saya benar-benar tidak punya cukup waktu, tapi tolong percayalah pada 7805 adalah cara yang sangat buruk untuk melakukan ini - kedua saran di atas adalah jauh lebih baik.
John U

1
@CodenamedSC, Sirkuit ini secara fungsional setara dengan ide 7805. Kelemahan utama dari 7805 adalah, 7805 tidak memiliki kemampuan untuk menyerap transien yang mungkin dihasilkan oleh interferensi pada kabel. Baik sirkuit ini atau sirkuit optocoupler harus mampu menangani transien singkat dalam 100 volt, yang tidak dirancang untuk 7805.
The Photon

1
Ini jawaban yang lebih baik. Ini sederhana, dan resistor pada ujung penerima akan membantu menyerap pantulan, meskipun kinerja yang lebih baik mungkin didapat jika resistor dipindahkan ke ujung pengiriman.
Chris Stratton

2
@ ChrisStratton Saya pikir jika saya menggunakan optocoupler, saya akan menambahkan sesuatu yang dekat dengan sirkuit ini di depan untuk mencegah transien meniup optocoupler.
The Photon
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.