İçindekiler:

Arduino ve DDS Modüllü HF Anten Analizörü: 6 Adım (Resimli)
Arduino ve DDS Modüllü HF Anten Analizörü: 6 Adım (Resimli)

Video: Arduino ve DDS Modüllü HF Anten Analizörü: 6 Adım (Resimli)

Video: Arduino ve DDS Modüllü HF Anten Analizörü: 6 Adım (Resimli)
Video: Frekans Üretici DDS VFO SI5351 ARDUINO NANO ile. 2024, Temmuz
Anonim
Arduino ve DDS Modüllü HF Anten Analizörü
Arduino ve DDS Modüllü HF Anten Analizörü
Arduino ve DDS Modüllü HF Anten Analizörü
Arduino ve DDS Modüllü HF Anten Analizörü

Selam

Bu Eğitilebilir Kitapta, bir anteni ölçebilen ve VSWR'sini HF frekans bantlarının herhangi biri veya tümü üzerinde görüntüleyebilen düşük maliyetli bir anten analizörünü nasıl yaptığımı göstereceğim. Her bant için minimum VSWR'yi ve karşılık gelen frekansı bulacaktır, ancak aynı zamanda anten ayarını kolaylaştırmak için kullanıcı tarafından seçilen bir frekans için gerçek zamanlı bir VSWR görüntüleyecektir. Tek bir frekans bandını süpürüyorsa, frekansa karşı VSWR grafiğini gösterecektir. Ayrıca, bir bilgisayarda daha rafine grafik çizmeye izin vermek için frekans ve VSWR verilerinin çıktısını almak için arkada bir USB bağlantı noktası vardır. USB bağlantı noktası, gerekirse bellenimi yeniden yüklemek için de kullanılabilir.

Yakın zamanda amatör radyoya girdim (çünkü altyapı olmadan çok büyük mesafelerde eşler arası iletişim fikrini sevdim) ve hızla aşağıdaki gözlemleri yaptım:

1. Beni ilgilendiren dünya çapındaki tüm iletişimler HF bantlarında (3-30 MHz) gerçekleşiyor.

2. HF alıcı-vericileri çok pahalıdır ve onları oldukça uyumlu bir antene sürmezseniz kırılırlar.

3. Genel olarak bahçeye gerilmiş tel parçalarından kendi HF anteninizi kurmanız beklenir (2'de harcadığınızdan daha fazla para harcamak istemiyorsanız).

4. Anteniniz uyumsuz olabilir ama denemeden bilemezsiniz.

Şimdi, bir saflık uzmanı muhtemelen, ilk önce anteni ilgilenilen frekansta çok düşük güçte test etmesi ve eşleşmenin kalitesini değerlendirmek için teçhizatın sayacındaki VSWR'yi kontrol etmesi gerektiğini söyleyecektir. Kullanmak isteyebileceğim her frekans için bu tür şeylerle uğraşacak zamanım yok. Gerçekten istediğim bir anten analizörüydü. Bu cihazlar, HF bantları üzerinden herhangi bir frekansta anten eşleşmesinin kalitesini test edebilir. Ne yazık ki onlar da çok pahalı, bu yüzden kendim yapıp yapamayacağımı düşünmeye başladım. Ucuz bir doğrudan dijital sentezleyici modülünü (DDS) kontrol etmek için bir Arduino kullanımını araştıran K6BEZ (bkz. https://www.hamstack.com/project_antenna_analyzer.html) tarafından yürütülen mükemmel çalışmaya rastladım. Kısa süre sonra Arduino'yu maliyet gerekçesiyle terk etti ve bir PIC kullanmayı tercih etti. 2017'de bir Arduino Nano'yu yaklaşık 3,50 £ karşılığında satın alabilirsiniz, bu yüzden çalışmasına tekrar bakmanın, kaldığı yerden devam etmenin ve neler bulabileceğime bakmanın zamanının geldiğini düşündüm (tek kişi ben olmadığımı unutmayın) Bunu kim yaptı: İnternette bulunabilecek çok güzel örnekler var).

Güncelleme (29/7/2018) - bu çalışma, Çin'den bi3qwq tarafından, kullanıcı arayüzünde gerçekten güzel iyileştirmeler yapan ve nazik bir şekilde paylaştığı büyük ölçüde üzerine inşa edilmiştir. Çok profesyonel bir PCB tasarladı (harika bir kalibrasyon direnci özelliğine sahip) ve gerçekten iyi görünümlü bir yapı yaptı. Her şeyden önce, daha önce yorum yapanların çoğunu memnun edeceğini bildiğim bir şema hazırladı. Daha fazla bilgi için lütfen yorumlar bölümüne bakın.

Güncelleme - Son zamanlarda orijinal taslağın kapsamadığı 60 m'ye giriyorum. Şimdi 160 m ve 60 m bantlarını ekleyen donanım yazılımı sürüm 7'yi yükledim. Bunlar eklenti değil; analizörün çalışmasına tamamen entegredirler. Hala okunaklı olan ama o küçük ekranda aynı anda on bant göstermeme izin veren bir u8glib yazı tipi bulabildiğim için şanslıydım (tek boşluk olmamasına rağmen, bu biraz kedere neden oldu). Mevcut kalibrasyon değerlerinin enterpolasyonuna / ekstrapolasyonuna dayalı olarak yeni bantlar için tahmini kalibrasyon değerlerine sahibim. Daha sonra bunları sabit dirençlerle kontrol ettim ve oldukça iyi sonuçlar veriyorlar.

Güncelleme - birkaç kişinin şemalar hakkında sorduğu gibi, temel Arduino / DDS / VSWR köprü devresi, K6BEZ'in orijinal çalışmasından büyük ölçüde değiştirilmemiş. Lütfen bu projeyi temel aldığım orijinal şeması için yukarıdaki URL'ye bakın. Zahmetsiz bir kullanıcı deneyimi sağlamak için bir kodlayıcı, bir OLED ekran ve tam gelişmiş bir ürün yazılımı ekledim.

Güncelleme - Bu sistem, diyot dedektörleri içeren dirençli bir köprü ile bağlantılı olarak çok düşük voltajlı bir DDS sinyal kaynağı kullanır. Böylece diyotlar doğrusal olmayan bölgelerinde çalışıyor ve bu sistemin ilk versiyonum VSWR'yi az okuma eğilimindeydi. Örnek olarak, bir 16 ohm veya 160 ohm empedans yükü, 50 ohm'luk bir sistemde yaklaşık 3'lük bir VSWR göstermelidir; bu sayaç, bu durumda 2'ye daha yakın bir VSWR gösterdi. Bu nedenle, bu sorun için etkili bir çözüm gibi görünen bilinen yükleri kullanarak bir yazılım kalibrasyonu gerçekleştirdim. Bu, bu talimatın sondan bir önceki adımında açıklanmıştır ve gözden geçirilmiş bir taslak yüklenmiştir.

Güncelleme - yerleşik grafik oluşturma özelliği, özellikle minimum VSWR için anten uzunluklarını ayarlarken, dışarıda bırakılmayacak kadar yararlı olduğundan, tekli taramalara eklendi: bir grafik size anında görünür bir eğilim verir.

1. Adım: Eşyalarınızı Satın Alın

Aşağıdaki öğelere ihtiyacınız olacak. Bunların çoğu Ebay'den ucuza temin edilebilir. En pahalı tek ürün, 10 sterline yakın fiyatıyla kutuydu! Bazı öğeleri ikame etmek mümkün olabilir (örneğin, 50 Rs yerine 47 Rs kullandım). Diyotlar oldukça sıra dışıydı (İtalya'dan 5 indirim almak zorunda kaldım) ve ne yaptığınızı biliyorsanız, daha kolay bulunabilen ürünler için ikame etmeye değer olurdu.

  • Arduino Nano
  • DDS modülü (DDS AD9850 Sinyal Üreteç Modülü HC-SR08 Sinyal Sinüs Kare Dalga 0-40MHz)
  • 1.3" i2c OLED ekran
  • MCP6002 op-amp (8 pimli)
  • 2 kapalı AA143 diyot
  • Seramik kapasitörler: 2 kapalı 100 nF, 3 kapalı 10 nF
  • 1 uF elektrolitik kapasitör
  • Dirençler: 3 kapalı 50 R, 2 kapalı 10 K, 2 kapalı 100 K, 2 kapalı 5 K, 2 kapalı 648 R
  • 2,54 mm adım vidalı klemensler: 3 kapalı 2 pinli, 2 kapalı 4 pinli
  • Tek çekirdekli bağlantı teli
  • 702 veya benzeri bağlantı teli
  • şerit tahtası
  • Arduino ve DDS'yi takmak için kare başlık şeridi (dişi) - yanlışlıkla yuvarlak soket malzemesini satın almayın!
  • SO-239 kasaya montaj soketi
  • Basmalı anahtarlı ve düğmeli döner kodlayıcı (15 darbe, 30 tetik)
  • Ucuz döner kodlayıcı 'modülü' (isteğe bağlı)
  • proje kutusu
  • Geçiş anahtarı
  • Sağ açılı mini usb'den USB B'ye bölme montaj kablosu (50 cm)
  • PP3 ve pil klipsi / tutucu
  • Kendinden yapışkanlı PCB montaj direkleri / zıtlıklar

Ayrıca bir havya ve elektronik aletlere de ihtiyacınız olacak. Muhafaza için bir 3D yazıcı ve bir sütunlu matkap yardımcı olur, ancak isterseniz muhtemelen her şeyi stripboard üzerine monte edebilir ve bir kutu ile uğraşmayabilirsiniz.

Doğal olarak bu işi üstlenirsiniz ve ortaya çıkan sonuçlardan kendi sorumluluğunuzda yararlanırsınız.

Adım 2: Stripboard'u Yerleştirin

Stripboard'u Yerleştirin
Stripboard'u Yerleştirin
Stripboard'u Yerleştirin
Stripboard'u Yerleştirin

Bileşenleri stripboard üzerinde nasıl düzenleyeceğinizi planlayın. Bunu K6BEZ'in orijinal şemasına bakarak (kodlayıcı veya ekrandan yoksun - https://www.hamstack.com/hs_projects/antenna_analyzer_docs.pdf Sayfa 7'ye bakın) başvurarak kendiniz yapabilir veya zamandan tasarruf edebilirsiniz. düzenimi kopyala.

Bu düzenleri kare kağıt ve kurşun kalem kullanarak basit bir şekilde yapıyorum. Her kavşak bir stripboard deliğini temsil eder. Bakır raylar yatay olarak gider. Bir çarpı, bozuk bir izi temsil eder (6 mm'lik bir matkap veya varsa uygun aleti kullanın). Etrafında bir kutu bulunan daire çizgileri başlıkları temsil eder. Vidalı büyük kutular bağlantı bloklarını gösterir. Diyagramımda, tahtanın ortasından yatay olarak geçen fazladan bir çizgi olduğunu unutmayın. Bir araya getirirken bunu dışarıda bırakın ('bu satırı atla' olarak işaretlenmiştir).

Bileşenlerden bazıları garip bir şekilde düzenlenmiş gibi görünebilir. Bunun nedeni, tasarımın temel donanımı çalıştırdıktan sonra gelişmesiydi (özellikle kodlayıcının donanım kesintilerine ihtiyaç duyduğunu fark ettiğimde).

Bileşenleri tahtaya lehimlerken, bacakları lehimlemek için tahtayı çevirirken, onları sıkıca yerinde tutmak için Blu-Tak kullanıyorum.

Arduino ve DDS modülünü hizalayarak ve anahtar pinlerini bağlamak için sadece stripboard kullanarak kullandığım kablo miktarını en aza indirmeye çalıştım. Kodlayıcıyı okumak için gereken donanım kesintilerinin yalnızca D2 ve D3 pinlerinde çalıştığını fark etmemiştim, bu yüzden DDS RESET'i orijinal D3 bağlantısından biraz kabloyla taşımak zorunda kaldım:

DDS SIFIRLAMA - Arduino D7

DDS SDAT - Arduino D4

DDS FQ. UD - Arduino D5

DDS SCLK - Arduino D6

A ve B enkoder girişleri için Arduino D2 & D3 kullanılmaktadır. Encoder switch girişi için D11 kullanılmaktadır. D12 kullanılmıyor ama gelecekteki genişleme için yine de bunun için bir vidalı terminal yapacağımı düşündüm.

Arduino A4 & A5, OLED ekranı için SDA & SCL (I2C) sinyallerini sağlar.

Arduino A0 & A1, VSWR köprüsünden (OPAMP aracılığıyla) girişleri alır.

Adım 3: Modülleri Kurun, Çevre Birimleri Takın ve Kodu Flashlayın

Modülleri Kurun, Çevre Birimleri Takın ve Kodu Flashlayın
Modülleri Kurun, Çevre Birimleri Takın ve Kodu Flashlayın

Bir muhafazaya monte etme zahmetine girmeden önce kartı test etmeye değer. Vidalı terminal bloklarını kullanarak esnek kablo kullanarak aşağıdaki bileşenleri panoya bağlayın:

  • 1.3" OLED ekran (SDA ve SCL, sırasıyla Arduino pin A4 ve A5'e bağlanır; toprak ve Vcc, açıkçası Arduino GND ve +5V'ye gider)
  • Döner kodlayıcı (bunun için bir toprak, iki sinyal hattı ve bir anahtar hattı gerekir - kodlayıcı yanlış çalışıyorsa anahtar hatlarını çevirmeniz gerekebilir - bunları sırasıyla Arduino topraklamasına, D2, D3 ve D11'e bağlayın). Prototipleme çalışmam için, çıplak kodlayıcılardaki pinler çok dayanıksız olduğundan, 15/30 kodlayıcıyı bir KH-XXX kodlayıcı modül kartına monte ettiğimi unutmayın. Son iş için kabloları doğrudan kodlayıcıya lehimledim.
  • 9V pil
  • SO-239 soketi - merkez pimini anten sinyal hattına lehimleyin ve bir M3 halka terminali kullanın ve anten topraklaması için vidalayın

Aşağıdaki çizimi Arduino'ya flashlayın. Ayrıca Oli Kraus'un çok iyi OLED sürücü kitaplığını eklediğinizden emin olun, aksi takdirde derleme çökecek ve yanacaktır:

OLED ekranınız biraz farklıysa, u8glib'de farklı bir yapılandırma ayarına ihtiyacınız olabilir; bu, Oli'nin örnek kodunda iyi belgelenmiştir.

Adım 4: Hepsini Güzel Bir Kutuya Koyun (isteğe bağlı)

Hepsini Güzel Bir Kutuya Koy (isteğe bağlı)
Hepsini Güzel Bir Kutuya Koy (isteğe bağlı)
Hepsini Güzel Bir Kutuya Koy (isteğe bağlı)
Hepsini Güzel Bir Kutuya Koy (isteğe bağlı)
Hepsini Güzel Bir Kutuya Koy (isteğe bağlı)
Hepsini Güzel Bir Kutuya Koy (isteğe bağlı)
Hepsini Güzel Bir Kutuya Koy (isteğe bağlı)
Hepsini Güzel Bir Kutuya Koy (isteğe bağlı)

Sadece ara sıra kullanılması muhtemel olduğundan, analiz cihazını çıplak bir tahta olarak bırakmayı ciddi olarak düşündüm. Yine de düşününce, tek bir anten üzerinde çok fazla iş yaparsam, zarar görebileceğini düşündüm. Böylece her şey bir kutuya girdi. Kutunuz muhtemelen farklı olacağından bunun nasıl yapıldığına dair ayrıntılara girmenin bir anlamı yok, ancak bazı önemli özelliklerden bahsetmeye değer:

1. Stripboard'u monte etmek için kendinden yapışkanlı PCB ayırıcıları kullanın. Hayatı gerçekten kolaylaştırıyorlar.

2. Arduino USB bağlantı noktasını kasanın arkasına çıkarmak için kısa bir USB adaptör kablosu kullanın. Ardından, frekansa karşı VSWR verilerini elde etmek ve ayrıca kapağı çıkarmadan Arduino'yu yeniden başlatmak için seri bağlantı noktasına erişmek kolaydır.

3. Web'de hiçbir şey bulamadığım için OLED ekranı desteklemek için özel bir 3D baskılı parça geliştirdim. Bu, kırılgan ekranı korumak için 2 mm'lik bir akrilik parçasının yerleştirilmesine izin veren bir girintiye sahiptir. Çift taraflı bant veya kendinden diş açan vidalar kullanılarak monte edilebilir (tırnaklar her iki tarafta olacak şekilde). Ekran takıldıktan sonra, her şeyi sabitlemek için PLA pimlerini devre kartının arkasına eritmek için sıcak bir tel (ataş ve üfleme lambası gibi) kullanabilirsiniz. İlgilenenler için işte STL dosyası:

Adım 5: Kalibrasyon

kalibrasyon
kalibrasyon

Başlangıçta herhangi bir kalibrasyon yapmadım ama VSWR ölçerin sürekli olarak düşük değerde olduğunu keşfettim. Bu, bir antenin iyi görünmesine rağmen, teçhizatımın otomatik ayarlayıcısının onunla eşleşemediği anlamına geliyordu. Bu sorun, DDS modülünün çok düşük bir genlik sinyali vermesi nedeniyle ortaya çıkar (3,5 MHz'de yaklaşık 0,5 Vpp, frekans arttıkça yuvarlanma). VSWR köprüsündeki dedektör diyotları bu nedenle doğrusal olmayan bölgelerinde çalışır.

Bunun için iki olası düzeltme vardır. Birincisi, DDS'nin çıkışına geniş bantlı bir amplifikatör takmaktır. Potansiyel olarak uygun cihazlar Çin'den ucuza temin edilebilir ve çıkışı yaklaşık 2 V pp'ye yükseltirler. Bunlardan birini sipariş ettim ama henüz denemedim. Benim düşüncem, bu genliğin bile biraz marjinal olacağı ve bir miktar doğrusal olmayanlığın kalacağı yönünde. İkinci yöntem, bilinen yükleri mevcut sayacın çıkışına koymak ve her frekans bandında görüntülenen VSWR'yi kaydetmektir. Bu, gerçek ve bildirilen VSWR için düzeltme eğrileri oluşturmanıza olanak tanır, bu da daha sonra anında düzeltmeyi uygulamak için Arduino taslağına konabilir.

Kolay olduğu için ikinci yöntemi benimsedim. Sadece şu dirençleri ele alın: 50, 100, 150 ve 200 ohm. Bu 50 ohm enstrümanda bunlar tanım gereği 1, 2, 3 ve 4 VSWR'lerine karşılık gelecektir. Çizimde bir 'use_calibration' anahtarı var. Bunu DÜŞÜK olarak ayarlayın ve çizimi yükleyin (bu, açılış ekranında bir uyarı gösterecektir). Ardından, her direnç için her frekans bandının merkezinde ölçümler yapın. Beklenen ve görüntülenen VSWR'yi çizmek için bir elektronik tablo kullanın. Ardından, TrueVSWR=m.ln(MeasuredVSWR)+c formunun çarpanını ve kesişimini veren her frekans bandı için logaritmik bir eğri uydurabilirsiniz. Bu değerler, son iki sütunda swr_results dizisine yüklenmelidir (krokideki önceki açıklama ifadesine bakın). Bu onları koymak için garip bir yer ama acelem vardı ve bu dizi depoları yüzdüğü için o zaman mantıklı bir seçim gibi görünüyordu. Ardından use_calibration anahtarını HIGH konumuna getirin, Arduino'yu yeniden başlatın ve yola çıkın.

Nokta frekansı ölçümlerini yaparken, ilk bant seçimi için kalibrasyonun uygulandığına dikkat edin. Sıklıkta büyük değişiklikler yaparsanız bu güncellenmeyecektir.

Şimdi sayaç sabit yükler için beklendiği gibi okuyor ve antenlerimi ölçerken mantıklı görünüyor! Geldiğinde o geniş bant amfiyi denemekle uğraşmayacağımdan şüpheleniyorum…

Adım 6: Çözümleyiciyi Kullanma

Çözümleyiciyi Kullanma
Çözümleyiciyi Kullanma
Çözümleyiciyi Kullanma
Çözümleyiciyi Kullanma

PL-259 kablosu aracılığıyla bir anten bağlayın ve cihazı açın. Bir açılış ekranı görüntüleyecek ve ardından tüm ana HF bantlarını otomatik olarak tarayacaktır. Ekran test edilen frekansı, mevcut VSWR okumasını, minimum VSWR okumasını ve meydana geldiği frekansı gösterir. Ölçüm gürültüsünü azaltmak için, her frekans noktasında VSWR'nin beş ölçümü alınır; bu beş okumanın ortalama değeri daha sonra son değer görüntülenmeden önce frekansa göre dokuz noktalı hareketli ortalama filtreden geçirilir.

Bu tüm bant taramasını durdurmak istiyorsanız, kodlayıcı düğmesine basmanız yeterlidir. Tarama duracak ve toplanan tüm bant verilerinin bir özeti görüntülenecektir (henüz süpürülmemiş bantlar için boş değerlerle). İkinci bir basış ana menüyü getirecektir. Kodlayıcı döndürülerek ve ardından uygun noktaya basılarak seçimler yapılır. Ana menüde üç seçenek vardır:

Tüm bantları süpür, tüm ana HF bantlarını yeniden başlatır. Bittiğinde, yukarıda açıklanan özet ekranını görüntüleyecektir. Bunu bir yere yazın veya saklamak istiyorsanız bir fotoğraf çekin.

Tek bandı süpürme, kodlayıcı ile tek bir bant seçmenize ve ardından onu süpürmenize olanak tanır. Seçim yapılırken hem dalga boyu hem de frekans aralığı görüntülenir. Tarama bittiğinde, kodlayıcıya ikinci bir kez basıldığında, minimum VSWR ve meydana gelen frekansın sayısal bir göstergesiyle, az önce taranan bandın basit bir VSWR-frekans grafiği görüntülenir. Bu, dipol kollarınızı kısaltmak veya uzatmak isteyip istemediğinizi bilmek istiyorsanız çok kullanışlıdır, çünkü VSWR trendini frekansla gösterir; bu, basit sayısal raporla kaybolur.

Tek frekans, tek bir sabit frekans seçmenize ve ardından gerçek zamanlı olarak anten ayarlama amaçları için canlı bir VSWR ölçümünü sürekli olarak güncellemenize olanak tanır. Önce ilgili frekans bandını seçin; ekran daha sonra seçilen bandın merkez frekansını ve canlı bir VSWR okumasını gösterecektir. Bu noktada ilgili bant kalibrasyonu uygulanır. Frekansın bir rakamının altı çizilecektir. Bu, kodlayıcı ile sola ve sağa hareket ettirilebilir. Enkodere basmak hattı cesaretlendirir; daha sonra kodlayıcıyı döndürmek rakamı azaltır veya artırır (0-9, sarma veya taşıma olmadan). Rakamı düzeltmek için kodlayıcıya tekrar basın, ardından bir sonrakine geçin. Bu özelliği kullanarak tüm HF spektrumundaki hemen hemen her frekansa erişebilirsiniz - başlangıçtaki bant seçimi sizi muhtemelen olmak istediğiniz yere yakınlaştırmanıza yardımcı olur. Yine de bir uyarı var: seçilen bant için kalibrasyon başlangıçta yüklenir. Rakamları değiştirerek seçilen banttan çok uzaklaşırsanız, kalibrasyon daha az geçerli olacaktır, bu nedenle seçilen bant içinde kalmaya çalışın. Bu modu bitirdiğinizde, alt çizgiyi 'çıkış' altına gelene kadar tamamen sağa hareket ettirin, ardından ana menüye dönmek için kodlayıcıya basın.

PC'nizi analizörün arkasındaki USB soketine (yani Arduino'ya) bağlarsanız, herhangi bir süpürme işlemi sırasında frekansı VSWR değerlerine karşı toplamak için Arduino seri monitörünü kullanabilirsiniz (şu anda 9600'e ayarlıdır ancak bunu değiştirebilirsiniz). taslağımı düzenleyerek kolayca). Değerler daha sonra bir elektronik tabloya yerleştirilebilir, böylece daha kalıcı grafikler vb. çizebilirsiniz.

Ekran görüntüsü, 9:1 UUN ile 7,6 m olta dikey antenim için VSWR özetini gösterir. Donanımım, dahili otomatik ayarlayıcı birimiyle 3:1 maksimum SWR'yi barındırabilir. Görüyorsunuz ki 80 m ve 17 m hariç tüm bantlarda akort edebileceğim. Şimdi, çok bantlı bir antene sahip olduğumun bilgisiyle rahatlayabilirim ve bantların çoğunda yayın yaparken pahalı hiçbir şeyi kırmayacağım.

İyi şanslar ve umarım bunu faydalı bulursunuz.

Önerilen: