GPIO pinlerinden 5 V'luk bir röleye güç verin


22

Pi'imden kaçmak istediğim bir röleler bankam var (5). Sparkfun'un röleyi tetiklemek için bir NPN transistörü kullanan yüksek güçlü röle kitleri tarafından beslenen 5V TE Bağlantı rölelerini kullanıyorum.

Şimdiye kadar yaşadığım sorun şu ki, rölenin geçmesini sağlayamıyorum. GPIO çıkış pinleri 5V sağlamıyor mu? Pi'nin GPIO'da yaptığını sanıyordum.


4
Gpio pinlerinin hiçbiri 3,3 volt değildir.
Steve Robillard

O zaman devremi değiştirebileceğim bir yol biliyor musun?
hightekjonathan

1
5 voltluk bir tedarik gerektirecek ve tüm toprakları birbirine bağlayacak bir hatırlatma yapacak - Bunu, bunun gibi bir kule sinyal lambasını değiştirmek için yapıyorum ebay.com/itm/…
Steve Robillard

2
Önce ayrı bir güç kaynağıyla çalışmasını, ardından Pi'nin güç gereksinimlerinin karmaşıklığını ve taşınabilirliğini ele almanızı öneririm. Bir fil yemenin en iyi yolunun bir anda bir lokma olduğunu söyledikleri gibi.
Steve Robillard

1
Bütün zeminler birbirine bağlı. Ve 5v pozitif Darlington'daki ortak noktaya bağlı. Diyagramı izledim.
hightekjonathan

Yanıtlar:


36

Neden bu şekilde değil?

Raspberry Pi, 0 ve 3V3 arasında geçiş yapar; Q1'i doyurmaya yetecek kadar, "ağır" işi devralır: + 5V rölesini açıp kapatabilir. Kullanmakta olduğunuz rölelere bağlı olarak, D1 ve Q1 için küçük değişiklikler geçerli olabilir.

Ahududu Pi bir röleyi kontrol ediyor


Mükemmel cevap! Ve bunu yapmanın çok güvenli bir yolu.
Piotr Kula

3
Güzel cevap, bu "röle-sorularını" bir kez ve herkes için çözmelidir. Pi ve rölenin besleme gerilimlerinin aynı olması ya da en azından ortak bir GND'yi paylaşması gerektiği gerçeğini eklemek iyi olur. Bu, elektrik mühendisi için açık görünse de, yeni başlayanlar için bir sorun olabilir.
Ghanima

@ Ganima: Evet, kesinlikle bir noktaya değindi. Ama bahsettiğiniz gibi, bana göre, bir toprak sembolü görürsem, bunun her iki taraf için de (“ahududu ve röle”) “bariz”. Ve röleye kasıtlı olarak, izleyiciye açıkça her iki alanda da farklı voltajlara sahip olmak için yukarıdaki devrenin amacı olduğunu göstermek için + 5V (hatta + 24V veya güvenli düşük DC voltajı olabilir) ile güç verdim. Devrenin amacı bu.
GeertVc

1
R2'nin amacı nedir?
erikH

2
@ erikH: bu direnç, R1'deki girişin dalgalanması durumunda, Q1 tabanının sabit bir seviyeye sahip olmasını sağlar (bu durumda, toprağa bağlı). Girişin hiç yüzmeyeceğinden eminseniz, R2'ye gerek yoktur, ancak bu bir çeşit "koruma". Giriş yüzebiliyorsa ve R2'ye bağlı değilseniz, transistör kontrolsüz bir şekilde çalışmaya başlayabilir.
GeertVc

7

# Giriş #

OP, 5 Sparkfun's Beefcake röle modülünün bir bankasını güvenli bir şekilde kontrol etmek için Rpi'yi kullanmak istiyor . Bir problemi vardı çünkü Rpi GPIO mantık seviyesi 3.3V idi, fakat rölesi 5V mantık kontrolü kullanıyor. Mantıksal düzeyde eşitsizlik sorununun üstesinden gelmek için Rpi'yi nasıl değiştireceğini bilmek istiyor. Aşağıdakileri içeren seçimleri: röle bobinini sürmek için BC5468 transistörünü kullanmak; bir opto izolasyon rölesi almak ve ULN2803 kullanarak sürmek; UDN2981 gibi bir kaynak sürücü kullanarak ...

Soruşturmadan sonra, şimdi kendi lehte ve aleyhlerinde birkaç çözüm öneririm. OP risk, güvenilirlik, maliyet vb. İşlemlerinden sonra bir çözüm seçebilir.

# İçindekiler #

1. Çözüm - NPN transistörünün önyargı direncini değiştirme

2. Çözüm - Rpi'nin 3.3V GPIO sinyalini 5V'a çıkarmak için UDN2981'i kullanma

3. Çözüm - Rpi'nin 3.3V GPIO sinyalini 5V'a çıkarmak için 74HC03 ve 74HC04'ü kullanma

4. Çözüm - 74HCT125'i mantıksal seviye dönüştürme yapmak için kullanma

5. Çözüm - Mantıksal düzeyde dönüştürme yapmak için TXS0102'yi kullanma

Soution 6 - Mantıksal seviye dönüştürmesi yapmak için 2N2222 kullanımı

Çözüm 7 - Mantıksal düzeyde dönüştürme yapmak için 2N7000 kullanma

SSS1 - Rpi ve röle modülüne nasıl güç verilir ve birlikte topraklama yapılır

SSS2 - Değişken giriş probleminden nasıl kaçınılır?

SSS3 - Rölem sürekli yanıyor, Yüksek veya Düşük giriş olsun, Rpi Düşük sinyalinin yeterince düşük olmadığı için mi?

SSS3 - Rpi GPIO Düşük sinyalim röleyi kapatamıyor, ancak GPIO'yu giriş yapacağınız gibi ayarlamak. Bunu yaparsam Rpi'mi incitir miyim?

Donanım Sorun Giderme Önerisi

Yazılım Sorun Giderme Önerisi

Referanslar

# Çözüm 1. 3.3V uyumlu hale getirmek için NPN transistörünü önyargısını değiştirmek

İki genel çözüm türü şunlardır:

(1) 3.3V sinyaline adapte olacak şekilde modülün 5V lojik seviye giriş devresini değiştirmek,

(2) Rpi'nin 3.3V sinyallerini 5V'a çıkarmak için 3.3V - 5V mantıksal seviye dönüştürücü kullanın.

Şimdi (1) ile başlıyorum.

soruşturma

Sparkfun's Beefcake röle modülünde bobini (U1) süren bir NPN transistörü 2N3904 (Q2) vardır. Arduino'nun 5V mantık sinyalleri için tasarlanmıştır.

SparkFun röle kontrol kiti şematik

Rpi'nin 3.3V sinyalleri tarafından çalıştırılabilen benzer bir NPN transistör modülü KY019 var. Bu yüzden, KY019'un neden 3.3V sinyalleri alabildiğini ancak Beecake'in yapamadığını bulmak için giriş sinyali gereksinimlerini kontrol ettim.

KY019 spec

KY- 019'ın 2.5V ve 0.1mA tetikleyici seviyesine sahip olduğunu buldum . Bu sinyal NPN transistörü tarafından 50mA'ya yükseltilir ve bobini röleyi aktive etmeye yetecek kadar yüksek.

Tongling bobini spec

Rpi GPIO (Yüksek yukarıdaki düzeyi ile 2.8 V'a ve maksimum akım sınırı 16mA ), rahatça 4mA olabilir kaynak, doğrudan modülü sürüş sorun olmaması gerekir.

Bobin 10mS'lik bir tepki süresine sahiptir. Rpi GPIO pin 17'yi röle modülünü 40mS döneminde (25cps) değiştirecek şekilde programladım ve rölenin beklendiği gibi mutlu şekilde tıklandığını gördüm. (GPIO sinyalleri için 2 metre uzunluğunda bağlantı kabloları kullanıyordum, bu nedenle röle giriş ucundaki sinyal biraz gürültülü.)

KY019 geçiş testi

Beefcake modülünü 3.3V mantığına uyumlu hale getirmek için nasıl değiştirilir

Beefcake NPN transistörü, 1K değerinde bir akım sınırlayıcı rezistöre sahiptir. Bu direnç, Arduino 5V mantık yüksek seviyesindeki temel akımı sınırlandırır. Amplifikasyondan sonra (genellikle hFE> 100) limit dahilindeki baz akımı, bobini kızdıracak kadar büyüktür.

Arduino 5V GPIO akımının Beefcake röle modülüne hesaplanması:

Arduino akımı i ~ (4V [Arduino Yüksek] - 1V [Vce (sat)]) / 1K [R]) = 3V / 1K = 3mA

Bununla birlikte, Rpi'nin mantık Yüksek sinyali Arduino'dan daha düşüktür, bu nedenle karşılık gelen sınırlı akım daha küçüktür ve amplifikasyondan sonra bobini sürecek kadar büyük değildir.

Rpi akımı i ~ ((3V [Rpi Yüksek] - 1V) / 1K = 2mA

Değişiklik basittir - sadece 1K R2'yi daha küçük bir dirençle değiştirin, 510R diyoruz.

Rpi akımı i (değişiklikten sonra) = (3V - 1V) / 501R = 4mA

Devre analizi ve deneye dayalı eğitim tahminleri yapıyorum. Sanırım tahminim% 90 muhtemelen doğru.

Risk analizi

Küçük sinyal NPN transistörü 2N3094, küçük yük anahtarlaması için kullanılabilse de, bu güvenilir değildir. Röle anahtarlaması için, endüktif yükler için özel olarak tasarlanmış SS8050, UDN2981 gibi güç transistörlerini kullanmak daha güvenlidir.

OP, Pi'sini kızartmayacak güvenli bir yöntem istiyor, bu yüzden güvenilirlik için UDN2981 gibi bir kaynak sürücü kullanılacak.

/ ...

# Çözüm 2 - Beefcake röle modülünü çalıştırmak için UDN2981'i kullanma #

Yorumlar OP'nin Sparkfun Beefcake röle modülünün yüksek seviye tetikleyici olduğunu, bu nedenle sık kullanılan lavabo sürücüsü ULN2803'ün kullanılamayacağını göstermektedir. Bunun yerine ULN2803'e benzer bir sürücü, ancak akım alma yerine akım kaynağı kullanılmalıdır.

OP'nin röle modülü için UDN2981'in uygun bir sürücü olduğunu düşünüyorum.

UDN2981’in Beefcak’a benzer bir yüksek seviye tirgger röle modülü kullandığını ve ULN2803’ün düşük tetiğe sahip olduğunu başarıyla doğruladım. Aşağıda bir özetidir.

UDN2981, Yüksek tetikleme, NPN transistör giriş tipi röle modüllerini kontrol eder

Devrenin iyi çalıştığından emin olmak için ilk önce UDP2981'i Rpi'ye bağlamadan, 4 LED'i yanıp sönmek üzere manuel olarak test ettim.

uln2803 udn2981 fotoğraf

Sonra 4 NPN transistör giriş tipi röle modülünü (KY019) kurdum ve 4 röle modülü girişini 4 UDN2981 kanal çıkışına bağladım.

KY019 x 4

Sonra 4 Rpi 3.3V GPIO pinini doğrudan 4 UDN2981 kanal girişine bağladım. 4 röle modülünü 25 cps'de değiştirmek için aşağıdaki python işlevini kullandım.

4 röleyi değiştirmek için python işlevi

Sonuç iyiydi. 4 röle modülü kliklenir ve LED'ler beklendiği gibi 25cps'de yanıp söner. Rpi GPIO çıkış sinyalleri 3,3V civarında kaldı ve UDN çıkışı 4,0V civarında sinyal verdi, bu da hiçbir girişin aşırı yüklenmediğini gösteriyor.

Modül dalga formunu değiştir

UDN2981 yüksek tetiklemeli, opto yalıtımlı röle modüllerini kontrol eder

OP ayrıca opto izolasyonlu röle modüllerini kullanmayı düşündü çünkü daha güvenlidirler. Aynı UDN2981'i 4 Yüksek seviye tetikleme, opto yalıtımlı röle modüllerini (MK055) kontrol etmek için başarıyla kullandım.

MK055 röle modülleri

Aslında UDN2981, NPN transistörü veya opto izole edilmiş tipler ne olursa olsun her türlü Yüksek tetikleme modülünü kontrol etmek için kullanılabilir.

Bununla birlikte, Düşük tetik modülleri için, PNP transistörü veya opto yalıtımlı olsun, kaynak sürücüsü UDN2981 çalışmıyorsa, ULN2803 veya başka bir havuz sürücüsü kullanılmalıdır.

ULN2803 kontrol Düşük tetiklemeli PNP transistör girişi veya opto yalıtımlı röle modülleri

ULN2083 lavabo sürücüsünün 4 Düşük tetiklemeli opto izole röle modülünü kontrol edebildiğini başarıyla doğruladım. Öncelikle 4 LED'i yanıp sönen manuel olarak test ettim, sonra 4 modülü test etmek için yukarıdaki aynı python fonksiyonunu kullandım. Sonuçlar da iyiydi.

MK101 röle modülü

Tartışma

ULN2803 ve UDN2981 Artıları ve Eksileri

Artıları

  1. ULN2803 ve UDN2981 doğrudan 3.3V veya 5V besleme gerilimi ile TTL veya CMOS lojik sinyal ile sürülebilir.

  2. Kelepçe diyotlu nominal 500mA çıkışları, röleleri ve kademeli motorları çalıştırmak için uygundur.

Eksileri

  1. ULN2803 ve özellikle UDN2981 çok yaygın değildir.

  2. 8 kanala sahiptirler ve bu nedenle daha büyük 18 pin DIP paket boyutuna sahiptirler. Daha az kanal için, 14 pinli DIP paketi olan daha yaygın olan 74HC03 / 04 veya 74HCT125 daha yaygın ve kullanımı daha kolaydır.

# Çözüm 3 - RPi'nin 3.3V GPIO sinyalini yükseltmek için 74HC03 ve 74HC04'ü kullanma #

Bir röle modülünü sürmek için UDN2981 kullanmak, aşırı rölantidir, çünkü röleye doğrudan enerji vermek için yerleşik geri diyotlarla tasarlanmışlardır.

UDN2981 ortak değildir ve yeni başlayanların deney yapması için uygun değildir. Yeni başlayanlar için, çok yaygın ve ucuz mantık kapısı IC'leri, 74HC03 Quad NAND geçitleri ve HC04 Hex Inverters, 3.3V mantık sinyallerini değiştirerek UDN2981 ile aynı işi yapabilir.

HC03 ve HC04'ün 3.3V mantığını 5V'a yükselttiğini başarıyla doğruladım ve transistör girişi ve opto izole edilmiş yüksek seviye tetik modülleri için çalıştığını gördüm.

hc03 04 dönüştürücü şematik

hc03 hc04 ky019 mk047

hc03 hc04 ky019 ky047

# Referanslar #

R1. Elektrik Rölesi nasıl çalışır? - TechyDIY

R2. Röle Anahtarı Devresi - Elektronik Dersleri

R3. Beefcake Röle Kontrol Bağlantısı Kılavuzu - SparkFun

R4,. Dijital Tamponlar ve Üç Durumlu Tamponlar - Elektronik Dersleri

R5. Pull-up Dirençleri - Elektronik Dersleri

R6 arasından seçilir. Mantık Seviyeleri Eğitimi - SparkFun

Arduino Voh 4.2V, Cilt 0.9V

R7. Rpi GPIO pin voltajı ve akım belirtimi

Rpi Voh 2.4V, Cilt 0.7V

R8. Bipolar Transistör - Elektronik Dersleri

================

# A.3 HCT125 kullanarak Mantıksal Seviye Dönüştürücü #

Bu yüzden başka bir HCT125 çevirici test ettim. İyi çalıştığını bulmaktan mutlu oldum. HCT125 dönüştürülmüş 5V0 sinyali NPN transistörlü röle modülüne bağlandığında düşmedi.

HCT125 seviye dönüştürücü

/ ...

Eklerin Sonu

** * Uzun Cevap Silinecek * **

Bu uzun cevap çok uzun soluk ve dağınık. Şimdi alakasız paragrafları kaldırmaya çalışıyorum ve belki de ilgili soruyu sorarak ve kendime cevap vererek değiştiririm.


Fotoğraf Bağlayıcı / Opto İzole Röle Modülü nasıl kontrol edilir

  1. Bir atlama teli alın.
  2. Bir ucu röle modülünün sinyal / giriş pimine bağlayın.
  3. Diğer ucunu tutun ve Vcc (+) ve Gnd (-) pinlerine dokunun ve aşağıdaki sonuçları kontrol edin.

Röle Modülü Test Sonuçları Tablosu

2.1 Transistör giriş tipi

Popüler iki kutuplu NPN transistör giriş tipi için kaynak sürücü sinyali (3.3V - 5V mantıksal seviye dönüşümünden sonra Rpi GPIO sinyali veya RPi GPIO sinyali) bir dizi LED ve eğilme direnci ile transistörün tabanına gider.

Transistör giriş tipi (BJT NPN) röle modülü örneği

Bu röle anahtarlama öğreticisinde açıklandığı gibi çok popüler olmayan röle anahtarlama devresi vardır.

2.2 Fotosel giriş tipi

Fotosel giriş tipi rölede giriş olarak bir phtocoupler bulunur. Fotosel, röle bobinini çalıştıran başka bir transistör çalıştırır.


Ek C - TXS0102 kullanarak mantıksal seviye dönüştürücü

Artık Rpi GPIO'nun röle modülünü doğrudan çalıştırabildiğini biliyorum, ancak iki sorun var. İlk olarak, uzun bağlantı kablosu olan GPIO sinyali gürültülüdür, bu nedenle güvenilir değildir. İkincisi, volan diyodu 1N4148, bobini EMF'ye tamamen bastırmayabilir ve şans eseri bir şekilde 1N4148 bozulursa veya doğru şekilde bağlanmamışsa (zayıf temas, kuru lehim bağlantısı vb.), Arka EMF Rpi'ye zarar verebilir.

Bu yüzden Rpi GPIO sinyalini 3V3'ten 5V'a çıkarmak için bir mantıksal seviye dönüştürücü kullanmaya karar verdim. Önce TXS102 dönüştürücüyü denedim ve iyi çalıştığını gördüm. GPIO işaretini yükseltmenin yanı sıra, yüksek seviyedeki gürültü de büyük ölçüde azaltıldı.

TXs0102 fotoğraf ve dalga formu

Ancak dönüştürülen 5V GPIO singal'ı röle modülüne beslerken büyük bir sorun buldum. Röle, 3V3 sinyaliyle hala eskisi gibi açılıp kapandı, ancak dalga biçimini kontrol etmek için kapsamı kullandığımda, şaşırtıcı bir şekilde 5V sinyalinin yarı yarıya düştüğünü ve 2.2V'ye düştüğünü gördüm .

Sebep, TXS0102'nin röle modülüne akım sağlamaktan çok daha iyi akım alabildiğinden şüphelendim. Tahminimi doğrulamak için 5V sinyalini başka bir röle modülüne, bir fotokuplayıcı tipte, MK01 modelinde besledim.

Bu sefer 5V sinyalinin gözle görülür miktarda düşmediğini fark ettim.

Bu yüzden hızlı bir şekilde NPN transistör tipi röle modülünün kötü bir seçim olduğu sonucuna vardım. Bundan böyle bu tür röleleri test etmeyi bırakır ve fotosel rölesi tipini kullanırdım.

Ayrıca başka bir fotokuplör sürücü modülü MK101'i de test ettim. Bu modül, Yüksek tetiği veya Düşük tetiği seçmek için bir jumper'a sahiptir. Düşük tetikleme için, TSX0102 dönüştürülmüş 5V sinyal seviyesinin etkilenmediğini tespit ettim. Ancak Düşük tetik seçildiğinde, dönüştürülen 5V sinyal seviyesi röle hala çalışıyor olsa da yaklaşık 2.5V'a düşmüştür.

txs0102 test yüksek düşük tetik modülleri


Ek E - HC04 kullanarak mantıksal seviye dönüştürücü

HCT125 çok yaygın değildir. Bu yüzden HC03 dörtlü açık tahliye NAND geçidi ve HC04 altıgen invertör kullanarak bir tane daha dönüştürücü devre denedim. HC04 çıkışını test ettiğimde çok gürültülü buldum. Bunun bir nedeni, rpi için diğeri dönüştürücü için başka güç kaynakları kullanmamdı. Güç kaynaklarının toprak noktalarını ortak bir nokta yapmak için bağlasam bile, gürültü kaybolmadı. Daha sonra hem rpi hem de dönüştürücü için bir güç kaynağı kullandım ve gürültü kayboldu.

Gürültülü dönüştürücü çıkışı

görüntü tanımını buraya girin

Röle modülü için HC04 çıkış sinyalini Düşük tetikleme modunda (batan akım gerektirir, ancak Yüksek tetikleme modunda değil) (kaynak akımı gerektirir) denedim, bu yüzden akım kaynağı olan HC04 hex NOT geçidini ekleyeceğim. röle modülü.

Ek F - HC04 Seviye Çevirici Yüzer Giriş Sorunu

HC03 tabanlı seviye dönüştürücüyü ilk kez denediğimde, bir fotosel röle modülünde, girişi yüzer halde bırakırsam modülün gürültüyü topladığını ve rölenin delice açılıp kapandığını buldum. Frekansın belki 1kHz olduğunu sanıyordum. Bir tür olumlu geribildirim salınımı olup olmadığından emin değildim. Ancak kapsamı kontrol etmek için kullandığımda şaşırtıcı bir şekilde 50Hz olduğunu gördüm! Sanırım bir çeşit rezonans. Fakat rezonans ve salınım arasındaki farkın ne olduğunu bilmiyorum. Belki de yine göz kamaştırmalıyım. Neyse, sanırım bir yere yukarı / aşağı direnç eklemek gerekiyor.

HC04 Seviye dönüştürücü yüzer giriş sorunu


Kısaltılmış veya silinmiş aşağıda

# Ekler #

# A1. İzole Opto / Fotoğraf çoğaltıcı röle modülü kartı ve şematik #

Opto yalıtımlı röle modülü, 4 pinli IC olan bir fotoğraf kuplörüne sahiptir. Aşağıdaki resim bir photoCoupler PC1'i (1, 2, 3, 4 yeşil olarak işaretlenmiş 4 pimi ile) ve bir transistör Q1'i göstermektedir. IC'ler her zaman işaretli değildir. Bu resimde PC1, EL354 ve Q1 8050'dir.

Fotosel giriş tipi röle modülü fotoğrafı

Fotosel giriş rölesi modülü şematik

Diyagram Bağlantıları

 35 : https://i.stack.imgur.com/cWkRi.jpg


1
tlfong01: "Rpi'nin 3V3 GPIO sinyali doğrudan röleyi çalıştırabilir." : Bu çizgiyi okumak, teknik olmayan insanlara izlenim verebileceğinden, RPI'nin GPIO pimini doğrudan bir rölenin bobinine bağlayabileceklerini söylememelisiniz. Yıkıcı sonuçlarla ... 2N3904'ün eklenmesi için bir neden var ... "Yani RPi'nin 3V3 GPIO sinyali röle modülünü doğrudan çalıştırabilir "
demelisin

Teknik olmayan insanlara karşı düşünceli olmamamdaki dikkatsizliğime işaret ettiğin için teşekkür ederim. Düzeltmeyi yaptığımda, KY019’un iki özdeş fotoğrafını eklerken başka bir hata daha yaptığımı farkettim. Aslında ilki SparkFun modülünün şeması olmalıdır.
tlfong01

Sorun değil, birbirimize yardım etmek için buradayız ... :-)
GeertVc

Bir GPIO'yu doğrudan kaydırıcıya sahip bir GPIO'ya karşı kullanma farkının nedeni, değiştiricinin belirli bir voltaj (5V) vermesidir. Öte yandan, 3.3V mantık pimi düşük ve yüksek arasındaki farkı gösteren eşiklerle belirtilmiştir. Pi için bu, 1.3V üstü herhangi bir şeyin yüksek olduğu anlamına gelir . Eğer toprağa direnç ile batıyorsanız (yani akım çekiyorsanız), 3.3V almalısınız, ancak muhtemelen rölenin üzerindeki giriş bu değil - yüzüyor.
goldilocks

@goldilocks: Evet, kafa karıştırıcı. OA, röle kitinin röleyi [bobini] tetiklemek için bir NPN transistörü kullandığını söylüyor, bir cevap transistörü [BC5468] değiştirmeyi öneriyor gibi görünüyor. Başka bir öneri darlington ULN2803 kullanmaktır .. Aklımı temizlemek için yorumları bir kez daha okumam gerekiyor.
tlfong01
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.