İçindekiler:
- Adım 1: Verici Değişiklikleri
- Adım 2: Alıcı Değişiklikleri: PIC16F887 ve HD44780 LCD Ekleme
- Adım 3: Birkaç Referans…
- Adım 4: Sonuçlar ve Gelecekteki Çalışmalar
Video: Ucuz 433MHz RF Modülleri ve Pic Mikrodenetleyiciler Kullanan Kablosuz İletişim. Bölüm 2: 4 Adım (Resimlerle)
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:20
Bu talimatın ilk bölümünde, ucuz TX/RX 433MHz modüllerini kullanarak kablosuz olarak basit bir dize göndermek için MPLAB IDE ve XC8 derleyici kullanarak bir PIC12F1822'nin nasıl programlanacağını gösterdim.
Alıcı modülü bir USB'den UART TTL kablo adaptörüne bir PC'ye bağlandı ve alınan veriler RealTerm'de görüntülendi. İletişim 1200 baud'da gerçekleştirildi ve ulaşılan maksimum menzil duvarlardan yaklaşık 20 metre idi. Testlerim, yüksek veri hızına ve uzun menzile ihtiyaç duyulmayan uygulamalarda ve sürekli iletim için bu modüllerin son derece iyi performans gösterdiğini gösterdi.
Bu projenin ikinci kısmı, alıcıya bir PIC16F887 mikrodenetleyici ve 16×2 karakter LCD modülünün nasıl ekleneceğini gösterir. Ayrıca, vericide, birkaç ön örnek baytının eklenmesiyle basit bir protokol izlenir. Bu baytlar, gerçek yükü almadan önce RX modülünün kazancını ayarlaması için gereklidir. Alıcı tarafında, PIC, LCD ekranda görüntülenen verilerin alınmasından ve doğrulanmasından sorumludur.
Adım 1: Verici Değişiklikleri
İlk kısımda, verici saniyede 1200 bit hızında sekiz veri biti, bir başlatma ve bir durdurma biti kullanarak birkaç ms'de bir basit bir dizi gönderiyordu. İletim neredeyse sürekli olduğu için alıcı, kazancını alınan verilere göre ayarlamakta sorun yaşamadı. İkinci kısımda, bellenim, iletimin her 2.3 saniyede bir gerçekleştirileceği şekilde değiştirilir. Bu, her iletim arasında uyku moduna alınan mikro denetleyiciyi uyandırmak için watchdog zamanlayıcı kesmesi (2.3s'ye ayarlanmış) kullanılarak elde edilir.
Alıcının kazancına ince ayar yapması için zamana sahip olması için, gerçek verilerden önce kısa LO süreleri "(0Xf8)(0Xf8)(0Xf8)(0Xf8)(0Xf8)(0Xfa)" olan birkaç başlangıç baytı gönderilir. Yük daha sonra bir başlangıç '&' ve bir durdurma '*' baytı ile gösterilir.
Bu nedenle, basit protokol aşağıdaki gibi tanımlanır:
(0Xf8)(0Xf8)(0Xf8)(0Xf8)(0Xf8)(0Xfa)&Merhaba InstWorld!*
Ayrıca, dc-dc yükseltme modülünün neden olduğu dalgalanmadan kurtulmak için RF modülünün V+ ve GND arasına 10 uF dekuplaj tantal kondansatör eklenir.
Baud hızı aynı kaldı, ancak testlerim 2400 baud'da da iletimin verimli olduğunu gösterdi.
Adım 2: Alıcı Değişiklikleri: PIC16F887 ve HD44780 LCD Ekleme
Alıcı tasarımı PIC16F887'ye dayanıyordu, ancak küçük değişikliklerle farklı bir PIC kullanabilirsiniz. Projemde bu 40 pin μC'yi kullandım, çünkü bu tasarıma dayalı gelecekteki projeler için ekstra pinlere ihtiyacım olacak. RF modülünün çıkışı UART rx pinine bağlanırken, alınan verileri görüntülemek için 16x2 karakterlik bir lcd (HD44780) PORTB pinleri b2-b7 üzerinden bağlanır.
Bölüm 1'de olduğu gibi, alınan veriler de RealTerm'de görüntülenir. Bu, bir USB'den UART TTL kablo adaptörüne bir PC'ye bağlanan UART tx pini kullanılarak elde edilir.
Bellenime bakıldığında, bir UART kesintisi gerçekleştiğinde, program alınan baytın bir başlangıç baytı ('&') olup olmadığını kontrol eder. Evetse, bir durdurma baytı ('*') yakalanana kadar sonraki baytları kaydetmeye başlar. Cümlenin tamamı elde edilir edilmez ve daha önce açıklanan basit protokole uygunsa, hem lcd ekrana hem de UART tx portuna gönderilir.
Başlangıç baytını almadan önce alıcı, önceki başlangıç baytlarını kullanarak kazancını zaten ayarlamıştır. Bunlar, alıcının sorunsuz çalışması için kritik öneme sahiptir. Basit bir taşma ve çerçeveleme hatası denetimi gerçekleştirilir, ancak bu yalnızca temel bir UART hata işleme uygulamasıdır.
Donanım açısından, alıcı için birkaç parça gereklidir:
1 adet PIC16F887
1 x HD44780
1 x RF Rx modülü 433Mhz
1 x 10 μF tantal kapasitör (dekuplaj)
1 x 10 K düzeltici (LCD yazı tipi parlaklığı)
1 x 220 Ω 1/4 W direnç (LCD arka ışığı)
1 x 1 KΩ 1/4 W
1 x Anten 433Mhz, 3dbi
Uygulamada, alınanlar duvarlara rağmen 20 metreye kadar olan mesafelerde son derece iyi çalıştı.
Adım 3: Birkaç Referans…
Resmi Microschip web sitesinin yanı sıra, web üzerinde PIC programlama ve sorun giderme hakkında ipuçları veren birçok blog bulunmaktadır. Aşağıdakileri çok yararlı buldum:
www.romanblack.com/
0xee.net/
www.ibrahimlabs.com/
picforum.ric323.com/
Adım 4: Sonuçlar ve Gelecekteki Çalışmalar
Umarım bu talimat, RF modüllerinin ve Pic mikrodenetleyicilerinin nasıl kullanılacağını anlamanıza yardımcı olmuştur. Ürün yazılımınızı kendi ihtiyaçlarınıza göre ayarlayabilir ve CRC ve şifrelemeyi dahil edebilirsiniz. Tasarımınızı daha da karmaşık hale getirmek istiyorsanız, Microschip'in Keeloq teknolojisini kullanabilirsiniz. Uygulamanızın çift yönlü veriye ihtiyaç duyması durumunda, her iki mikrodenetleyicide bir çift TX/RX olması gerekir veya daha karmaşık alıcı-verici kullanabilirsiniz. modüller. Ancak, bu tür ucuz 433MHz modülleri kullanarak, sadece yarı çift yönlü iletişim gerçekleştirilebilir. Buna ek olarak, iletişimi daha güvenilir hale getirmek için TX ve RX arasında bir çeşit el sıkışmanız gerekir.
Bir sonraki talimatta, vericiye sıcaklık, barometrik basınç ve nem içeren bir ortam sensörünün eklendiği pratik bir uygulama göstereceğim. Burada iletilen veriler crc içerecek ve temel bir şifrelemeye sahip olacaktır.
Sensör, PIC12F1822'nin i2c portunu kullanacakken, hem verici hem de alıcının uygulanması şemalar ve pcb dosyaları aracılığıyla gösterilecektir. Beni okuduğunuz için teşekkürler!
Önerilen:
Uzun Menzilli, 1.8km, Arduino'dan Arduino'ya HC-12. İle Kablosuz İletişim: 6 Adım (Resimlerle)
Uzun Menzilli, 1.8km, Arduino'dan Arduino'ya HC-12 İle Kablosuz İletişim.: Bu talimatta, açık havada 1.8km'ye kadar uzun bir mesafede Arduino'lar arasında nasıl iletişim kuracağınızı öğreneceksiniz.HC-12 kablosuz bir seri bağlantı noktasıdır. çok kullanışlı, son derece güçlü ve kullanımı kolay iletişim modülü. Önce uçacaksınız
Arduino İle 2.4Ghz NRF24L01 Modülünü Kullanan Kablosuz Uzaktan Kumanda - Nrf24l01 Quadcopter için 4 Kanal / 6 Kanal Verici Alıcı - Rc Helikopter - Arduino Kullanan Rc Uçak: 5 Adım (Resimlerle)
Arduino İle 2.4Ghz NRF24L01 Modülünü Kullanan Kablosuz Uzaktan Kumanda | Nrf24l01 Quadcopter için 4 Kanal / 6 Kanal Verici Alıcı | Rc Helikopter | Arduino Kullanan Rc Uçak: Bir Rc araba çalıştırmak için | Quadcopter | dron | RC uçak | RC tekne, her zaman bir alıcı ve vericiye ihtiyacımız var, RC QUADCOPTER için 6 kanallı bir verici ve alıcıya ihtiyacımız olduğunu ve bu tür TX ve RX'in çok maliyetli olduğunu varsayalım, bu yüzden bir tane yapacağız
PIC Mikrodenetleyiciler için ICSP'yi Anlamak: 4 Adım (Resimlerle)
PIC Mikrodenetleyicileri için ICSP'yi Anlamak: Mikrodenetleyicileri programlamak zor değildir. Bir programcı inşa etmek harika bir ilk elektronik projesidir. Bu talimatın amacı, Microchip PIC'lerde kullanılan basit 'devre içi seri programlama' yöntemini açıklamaktır
NIXIE TUBE SÜRÜCÜ MODÜLLERİ - Bölüm I: 8 Adım (Resimlerle)
NIXIE TUBE SÜRÜCÜ MODÜLLERİ - Bölüm I: Aradığım şey, üzerinde çalıştığım çeşitli projelerde birden fazla nixie tüp rakamıyla kolayca başa çıkmanın bir yoluydu. Çok sayıda basamağı minimum basamak aralığıyla birbirine bağlamanın ve basamakların kontrol edilmesini sağlamanın gerçekten kolay bir yolunu istedim
NIXIE BORU SÜRÜCÜ MODÜLLERİ Bölüm III - HV GÜÇ KAYNAĞI: 14 Adım (Resimlerle)
NIXIE TUBE SÜRÜCÜ MODÜLLERİ Kısım III - HV GÜÇ KAYNAĞI: Arduino/Freeduino mikro denetleyicisini Kısım I ve Kısım II'de açıklanan nixie tüp sürücü modüllerine bağlantı için hazırlamaya bakmadan önce, gerekli yüksek ateşleme voltajını sağlamak için bu güç kaynağını oluşturabilirsiniz. nixie tüpleri tarafından. Bu