Zanaatlarımla ilgili olarak 433 MHz aralığında çalışan alıcı ve vericilerin kullanımı hakkında daha önce yazmıştım. Bu sefer farklı varyasyonlarını karşılaştırıp aralarında bir fark olup olmadığını ve hangilerinin tercih edildiğini anlamak istiyorum. Kesimin altında arduino'ya dayalı bir test tezgahının yapısı, küçük bir kod, aslında testler ve sonuçlar var. Elektronik ev yapımı ürünleri sevenleri kediye davet ediyorum.
Bu aralıkta farklı alıcılarım ve vericilerim var, bu yüzden bu cihazları özetlemeye ve sınıflandırmaya karar verdim. Üstelik, özellikle de aracın sabit bir konumda olmaması gerekiyorsa, radyo kanalı olmayan cihazların tasarlanması oldukça zordur. Birisi artık çok sayıda wi-fi çözümü olduğunu ve bunları kullanmaya değer olduğunu iddia edebilir, ancak bunların kullanımının her yerde tavsiye edilmediğini ve ayrıca bazen kendinizi ve komşularınızı rahatsız ederek rahatsız etmek istemediğinizi belirtmek isterim. çok değerli bir frekans kaynağı.
Genel olarak hepsi şarkı sözleri, ayrıntılara geçelim, aşağıdaki cihazlar karşılaştırılabilir:
En yaygın ve en ucuz verici ve alıcı seti:
Satın alabilirsiniz, örneğin vericiyle birlikte alıcının maliyeti 0,65 dolar. Önceki incelemelerimde kullanılan şey buydu.
Aşağıdaki kit daha kaliteli olarak konumlandırılmıştır:
Bu seriye yönelik antenler ve yaylarla birlikte 2,48 dolara satılır.
Bu incelemenin asıl konusu alıcı olarak ayrı olarak satılmaktadır:
Bu etkinliğe katılan aşağıdaki cihaz bir vericidir:
Tam olarak nereden aldığımı hatırlamıyorum ama o kadar da önemli değil.
Tüm katılımcılar için eşit koşullar sağlamak amacıyla aynı olanları spiral şeklinde lehimliyoruz:
Ayrıca devre tahtasına yerleştirmek için pimleri lehimledim.
Deneyler için iki arduino hata ayıklama panosuna (Nano'yu aldım), iki devre tahtasına, kablolara, bir LED'e ve bir sınırlayıcı dirence ihtiyacınız olacak. Bunu şu şekilde anladım:
Testler için kütüphaneyi kullanmaya karar verdim, kurulu arduino IDE'nin "kütüphaneler" dizinine açılması gerekiyor. Sabit olacak basit bir verici kodu yazalım:
#katmak
Bu vericilerin pinini arduino’nun 10 numaralı çıkışına bağlayacağız. Verici her 5 saniyede bir 5393 sayısını yayınlayacaktır.
Alıcı kodu, harici bir diyotun sınırlayıcı bir direnç aracılığıyla arduino'nun 7 numaralı pimine bağlanması nedeniyle biraz daha karmaşıktır:
#katmak
Alıcı, arduino Nano'nun pin 2'sine bağlanır (pim 2, kesme tipi 0'a karşılık geldiğinden kod mySwitch.enableReceive(0) kullanır). Gönderilen numara alınırsa harici diyotu bir saniyeliğine yanıp söneriz.
Tüm vericilerin aynı pin çıkışına sahip olması nedeniyle deney sırasında kolaylıkla değiştirilebilirler:
Alıcılar için de durum benzerdir:
Alıcı parçanın hareketliliğini sağlamak için bir güç bankası kullandım. Öncelikle devreyi masaya monte ettikten sonra alıcı ve vericilerin birbirleriyle herhangi bir kombinasyonla çalıştığından emin oldum. Test videosu:
İlk olarak vericiler hakkında. Deney sırasında aralarında hiçbir fark olmadığı ortaya çıktı, tek şey isimsiz, küçük deneysel olanın rakiplerinden biraz daha kötü çalıştığıydı, bu:
Kullanırken güvenilir alım mesafesi 1-2 metre azaldı. Vericilerin geri kalanı tamamen aynı şekilde çalıştı.
Ancak alıcılarla her şeyin daha karmaşık olduğu ortaya çıktı. Bu sette onurlu 3. sırayı alıcı aldı:
Görüş alanından 6 metre uzaktayken (5 metrede - vericiler arasında dışarıdan biri kullanıldığında) iletişimi kaybetmeye başladı.
İkincilik ise en ucuz setten katılımcıya verildi:
Görüş alanı içinde 8 metrede güvenle kabul edildi, ancak 9. metrede ustalaşamadı.
Rekorun sahibi incelemenin konusuydu:
Mevcut görüş hattı (12 metre) onun için kolay bir işti. Ve yaklaşık 40 metre mesafedeki toplam 4 sağlam beton duvardan duvarların içinden almaya geçtim - zaten sınırda alıyordu (bir adım ileri alım, bir adım geri LED sessiz). Bu nedenle, bu incelemenin konusunu el sanatlarında satın alma ve kullanma konusunda kesinlikle tavsiye edebilirim. Kullanırken verici gücünü eşit mesafelerde azaltabilir veya eşit güçlerde güvenilir alım mesafesini artırabilirsiniz.
Önerilere göre vericinin besleme voltajını artırarak iletim gücünü (ve dolayısıyla alma mesafesini) artırabilirsiniz. 12 Volt, görüş hattı içindeki başlangıç mesafesini 2-3 metre artırmayı mümkün kıldı.
Burada bitiriyorum, umarım bilgiler birilerine faydalı olur.
+125 almayı planlıyorum Favorilere ekle İncelemeyi beğendim +121 +225Bu derste popüler bir 433 MHz alıcı-verici kullanarak iki Arduino kontrol cihazı arasında radyo sinyali iletme problemini çözeceğiz. Aslında bir veri aktarım cihazı iki modülden oluşur: bir alıcı ve bir verici. Veriler yalnızca tek yönde aktarılabilir. Bu modülleri kullanırken bunu anlamak önemlidir. Örneğin, mobil bir robot veya örneğin bir TV gibi herhangi bir elektronik cihazın uzaktan kontrolünü yapabilirsiniz. Bu durumda veriler kontrol panelinden cihaza aktarılacaktır. Diğer bir seçenek ise kablosuz sensörlerden gelen sinyalleri bir veri toplama sistemine iletmektir. Burada rota değişiyor, artık verici sensör tarafında, alıcı ise toplama sistemi tarafında oluyor. Modüller farklı adlara sahip olabilir: MX-05V, XD-RF-5V, XY-FST, XY-MK-5V, vb. ancak hepsi yaklaşık olarak aynı görünüme ve pin numaralandırmasına sahiptir. Ayrıca radyo modüllerinin iki frekansı yaygındır: 433 MHz ve 315 MHz.
Herkese selam! İş yerimde otoparkım var. Elbette bu yazının amacı, park yeri olan yollardaki zor durum göz önüne alındığında övünmek değil ve yönetimimin çalışanlarını önemsediği konusunda PR yapmak değil (iş yerimden bile bahsetmeyeceğim!) , konu o değil. Mesele şu ki, iş yerimle alakası olmayan herhangi birinin bu otoparka park etmesini engelleyen nedir? Bu da otoparka giriş çıkışları kısıtlayan bir bariyer.
Ve birçok kuruluşta olduğu gibi işletmeme girişler beni ve diğer herkesi kontrol etmek amacıyla sıradan geçişlerle yapılıyor. Eh, aynı geçişlerle otoparka da giriş yaptılar. Yani otoparka gidiyorsunuz, kartınızı okuyucuya sunuyorsunuz, çalışıyor, bariyer açılıyor (otomatik olarak kapanıyor), içeri giriyorsunuz ve hepsi bu. Onlar da böyle düşündüler. Ancak elektroniğe olan tutkum ve doğal tembelliğim (bu, her arabaya bindiğimde, pencereyi açtığımda, elimi çektiğimde, pencereyi kapattığımda ve eğer yağmur yağıyorsa ve hava soğuksa) sistemin aleyhine oldu.
Öyleyse asıl meseleye geçelim. Öncelikle bariyerin oldukça popüler bir Nice şirketi olduğunu öğrendim ve bu konuda bilgi aramaya başladım. Ancak üreticinin popülaritesine rağmen kod formatları hakkında çok az bilgi vardı. 12 bit ve 24 bit kod formatlarının olduğu ortaya çıktı. 12-bit daha eskidir, 24-bit ise daha moderndir. İşyerindeki bariyerin uzun süredir ayakta olduğunu bildiğim için 12 bitlik kodlarla başlamaya karar verdim (sonradan doğru anladım). Ve böylece veri paketi 12 bitten oluşur. 12 bitlik koddan önce "pilot periyodu" ve "başlangıç darbesi" adı verilen bir dönem vardır. “Pilot periyodu” 36 düşük seviyeli aralıktan oluşur, “başlangıç darbesi” ise 1 yüksek seviyeli aralıktan oluşur. Bir veri paketi bir "pilot periyodu", ardından bir "başlangıç darbesi" ve bunu takip eden 12 bitlik bir koddan (her bariyer için farklı) oluşur. Bariyer uzaktan kumandaları aynı anda 4 veri paketi iletiyor, ancak birçok cihaz bu frekansta çalıştığından (özellikle araba alarmları) ve parazit mümkün olduğundan daha fazlasını kurdum. Nice bariyerleri için darbe süreleri:
Genel olarak tüm bunlar nasıl gerçekleştirilebilir? Son zamanlarda Arduino platformlarına olan tutkum bu konu üzerinde uzun süre düşünmeme izin vermedi.
Bileşenlerin listesi:
1. Arduino Uno,
2. 433 MHz radyo vericisi, bunun için ev yapımı anten,
3. Pil 9 volttur, popüler olarak “Krona”dır.
Bu radyo vericileri, tanınmış Çin mağazalarında radyo alıcılarıyla birlikte çok ucuza (yaklaşık 50 ruble) satılıyor. Bunlar çok basit, üç pinli: güç, toprak ve sinyal pini. Güç kaynağı 5 ila 12 volt arasındadır, besleme voltajı ne kadar yüksek olursa aralık da o kadar iyi olur. Aslında bu yüzden 9 voltluk bir pil seçildi. Arduino Uno için önerilen besleme voltajı 7 ila 12 volt (Vin pini) arasındadır, bu nedenle “Krona” oldukça uygundur. Ayrıca, radyo vericisinin menzili bir antenin varlığına bağlıdır (onsuz menzil yaklaşık 1 metre olacaktır). Bütün setin maliyeti yaklaşık 300 ruble.
Aslında burada Arduino Uno'nun taslağı var:
Int send_code_pin = 13; //int gönder_kodu = 3061; bu benim bariyer void kurulumum için kaba kuvvet tarafından belirlenen koddur() ( pinMode(send_code_pin, OUTPUT); ) void loop () ( for (int send_code = 0; send_code)< 4096; send_code++) // этот цикл после того как код определен необходимо убрать
{
for (int j = 0; j <7; j++) // достаточно 4-х, но из-за помех поставил 7
{
digitalWrite(send_code_pin, HIGH); // стартовый импульс
delayMicroseconds(700);
digitalWrite(send_code_pin, LOW);
for (int i = 12; i >0; i--) ( boolean bit_code = bitRead(send_code, i - 1); if (bit_code) ( digitalWrite(send_code_pin, LOW); // birim gecikmeMicroseconds(1400); digitalWrite(send_code_pin, YÜKSEK); gecikmeMicroseconds(700); ) else ( digitalWrite(send_code_pin, LOW); // sıfır gecikmeMicroseconds(700); digitalWrite(send_code_pin, YÜKSEK); gecikmeMicroseconds(1400); ) ) digitalWrite(send_code_pin, LOW); // pilot periyodu gecikmesiMikrosaniye(25200); )) ) //gecikme(10000); kodu tanımladıktan sonra bir gecikme ayarlayın)
Bariyerden günde bir çıkış dikkate alındığında, tüm olası seçenekleri gözden geçirmek yaklaşık 1 hafta sürdü. Doğru kodu hızla seçme tekniği çok basitti. Komutu kullanma mikro() bir kodun iletim süresini belirledi. Yaklaşık 0,25 saniyeydi. Tüm seçenekleri gözden geçirmek için gereken toplam süre yaklaşık 17 dakikadır. Bariyerin önünde Arduino'yu çalıştırdım ve zamanı not ettim. Yaklaşık 12,5 dakika sonra bariyer açıldı. Buna dayanarak ilk 2800 seçeneği hemen attım. Ve benzeri. Yaklaşık 30 seçenek kaldığında her veri aktarımından sonra 1 saniyelik bir gecikme ayarladım. Veri aktarım kontağını 13. (LED'li) olarak kurduğum için iletimin her anı görülüyordu, sayıp tam kodu belirledim.
Bu kadar! Demo olarak - otopsi videosu.
Bazen cihazlar arasında kablosuz bağlantı kurmanız gerekir. Son zamanlarda Bluetooth ve Wi-Fi modülleri bu amaçla giderek daha fazla kullanılmaya başlandı. Ancak videoları ve ağır dosyaları aktarmak başka, bir makineyi veya robotu 10 komutla kontrol etmek başka şey. Öte yandan, radyo amatörleri genellikle hazır komut kodlayıcılar/kod çözücülerle çalışacak şekilde alıcılar ve vericiler oluşturur, ayarlar ve yeniden yapar. Her iki durumda da oldukça ucuz RF modüllerini kullanabilirsiniz. Çalışmalarının özellikleri ve kesim altında kullanımı.
Küçük bir deney yapalım: Vericinin GND ve VCC kontaklarına gücü bağlayın. DATA pini bir düğme veya jumper aracılığıyla VCC'ye bağlanır. Ayrıca alıcının GND ve VCC kontaklarına da güç bağlarız ve ENABLE ile VCC'yi birbirine bağlarız. DATA çıkışına bir LED bağlarız (tercihen bir direnç aracılığıyla). Anten olarak 1/4 dalga boyunda uygun herhangi bir kablo kullanırız. Diyagram şöyle görünmelidir:
Alıcıyı açtıktan ve/veya ENABLE'a voltaj uyguladıktan hemen sonra LED yanmalı ve sürekli olarak (iyi veya hemen hemen sürekli) yanmalıdır. Vericideki düğmeye bastıktan sonra LED'e hiçbir şey olmuyor - yanmaya devam ediyor. Düğmeyi bıraktığınızda LED yanıp sönecek (sönecek ve tekrar yanacaktır) ve yanmaya devam edecektir. Düğmeye tekrar basıp bıraktığınızda her şey tekrarlanmalıdır. Orada neler oluyordu? Alıcı açıldığında verici uyku durumundaydı, alıcı normal bir sinyal bulamadı ve her türlü gürültüyü almaya başladı ve buna bağlı olarak çıkışta her türlü gürültü ortaya çıktı. Sürekli bir sinyali gürültüden gözle ayırt etmek imkansızdır ve LED'in sürekli parladığı görülmektedir. Düğmeye bastıktan sonra verici hazırda bekletme modundan çıkar ve iletim yapmaya başlar, alıcı çıkışında mantıksal bir "1" görünür ve LED gerçekten sürekli olarak yanar. Düğmeyi bıraktıktan sonra verici, alıcı tarafından alınan mantıksal bir "0" iletir ve çıkışında da bir "0" görünür - LED sonunda söner. Ancak 70 ms sonra verici, girişinde hala aynı "0" olduğunu görür ve uykuya geçer, taşıyıcı frekans üreteci kapanır ve alıcı her türlü gürültüyü, çıkıştaki gürültüyü almaya başlar - LED yanar Tekrar.
Yukarıdakilerden, verici girişindeki sinyalin 70 ms'den daha kısa bir süre boyunca olmaması ve doğru frekans aralığında olması durumunda modüllerin normal bir kablo gibi davranacağı anlaşılmaktadır (şimdilik parazit ve diğer sinyallere dikkat etmiyoruz) ).
Radyo modülleri: verici (FS1000A) ve alıcı (MX-RM-5V) - düşük güçlü cihazlara yönelik LPD433 (Düşük Güçlü Cihaz) aralığında yer alan, lisanssız 433.920 MHz frekansında bir radyo kanalı üzerinden veri iletimi için tasarlanmıştır.
Arduino'ya kolay bağlantı için veya kullanın.
Verici herhangi bir pine bağlanır ve alıcı bağlantısı kullanılan kitaplığın türüne bağlıdır:
Herhangi bir alıcının ilk amplifikatörü ve herhangi bir vericinin son amplifikatörü antendir. En basit anten, kamçı antendir (belirli uzunlukta bir tel parçası). Antenin uzunluğu (hem alıcı hem de verici), taşıyıcı frekansın dalga boyunun dörtte birinin katı olmalıdır. Yani kırbaç antenler çeyrek dalga (L/4), yarım dalga (L/2) ve dalga boyuna (1L) eşit olabilir.