- Gerekli Bileşenler
- Kullanılan Yazılım
- 433MHz RF Verici ve Alıcı Modülü
- Devre şeması
- CodeVision kullanarak Atmega 8 için Proje Oluşturma
- KOD ve Açıklama
- Kodu Atmega8'e yükleyin
Projelerimizi Kablosuz yapmak, her zaman havalı görünmesini sağlar ve ayrıca kontrol edilebileceği menzili genişletir. Kısa mesafeli kablosuz kontrol için normal bir IR LED kullanmaktan, dünya çapında HTTP kontrolü için bir ESP8266'ya kadar, bir şeyi kablosuz olarak kontrol etmenin birçok yolu vardır. Bu projede 433 MHz RF modülü ve AVR mikro denetleyici kullanarak kablosuz projelerin nasıl oluşturulacağını öğreniyoruz.
Bu projede aşağıdakileri yapıyoruz: -
- Biz kullanmak ATmega8 RF vericisi ve için Atmega8'in RF Alıcı bölümünde için.
- Atmega8 mikrodenetleyicileri ile bir LED ve bir Basma Düğmesi arabirimine sahibiz.
- Verici tarafında ise Atmega ile Arayüz Butonu ve verileri iletiyoruz. Alıcı tarafında, verileri kablosuz olarak alacağız ve çıkışı LED üzerinde göstereceğiz.
- 4 bitlik verileri iletmek için kodlayıcı ve kod çözücü IC kullanıyoruz.
- Alım Frekansı, piyasada bulunan ucuz RF TX-RX modülü kullanılarak 433Mhz'dir.
Gerekli Bileşenler
- Atmega8 AVR Mikrodenetleyici (2)
- USBASP programcısı
- 10 pimli FRC kablosu
- Ekmek tahtası (2)
- LED'ler (2)
- Basmalı düğme (1)
- HT12D ve HT12E çifti
- RX-TX RF Modülü
- Dirençler (10k, 47k, 1M)
- Atlama Telleri
- 5V güç kaynağı
Kullanılan Yazılım
Biz kullanmak CodeVisionAVR bizim kodu ve yazma için yazılım SinaProg USBASP programcı kullanarak Atmega8'in bizim kodunu yüklemek için yazılım.
Bu yazılımları verilen bağlantılardan indirebilirsiniz:
CodeVisionAVR :
SinaProg:
Şemalara ve kodlara geçmeden önce, RF modülünün Encoder-Decoder IC'leri ile çalışmasını anlayalım.
433MHz RF Verici ve Alıcı Modülü
Projede kullandığımız verici ve alıcı modüllerdir. 433 MHz için mevcut en ucuz modüldür. Bu modüller tek kanalda seri verileri kabul eder.
Modüllerin teknik özelliklerini görürsek, verici giriş voltajı olarak 3.5-12V çalışma için derecelendirilmiştir ve iletim mesafesi 20-200 metredir. 433 MHz frekansında AM (Audio Modulation) protokolünde iletim yapar. Verileri 10 mW güç ile 4KB / S hızında aktarabiliyoruz.
Üstteki resimde Verici modülünün pin çıkışını görebiliriz. Soldan sağa pinler VCC, DATA ve GND'dir. Ayrıca anteni ekleyip yukarıdaki resimde gösterilen noktaya lehimleyebiliriz.
İçin Alıcı şartname, Alıcı bir puana sahip akım 5V dc ve 4MA durgun girdi olarak. Alıcı frekans 433.92 MHz bir ile -105DB duyarlılık.
Yukarıdaki görüntüde alıcı modülün pin çıkışını görebiliriz. Dört pin Soldan sağa, VCC, DATA, DATA ve GND'dir. Bu ortadaki iki pim dahili olarak bağlıdır. Herhangi birini veya ikisini birden kullanabiliriz. Ancak her ikisinin de gürültü bağlantısını düşürmek için kullanılması iyi bir uygulamadır.
Ayrıca veri sayfasında belirtilmeyen bir şey, modülün ortasındaki değişken indüktör veya POT frekans kalibrasyonu için kullanılır. İletilen verileri alamazsak, gönderme ve alma frekanslarının eşleşmemesi olasılıkları vardır. Bu bir RF devresidir ve vericiyi mükemmel iletilen frekans noktasında ayarlamamız gerekir. Ayrıca, verici ile aynı, bu modülde ayrıca bir Anten portu vardır; Daha uzun alım için telleri sarmal biçimde lehimleyebiliriz.
İletim aralığı, Vericiye sağlanan gerilime ve her iki taraftaki antenlerin uzunluğuna bağlıdır. Bu özel proje için harici anten kullanmadık ve verici tarafında 5V kullandık. 5 metre mesafeyle kontrol ettik ve mükemmel çalıştı.
RF Verici ve Alıcı Devresindeki RF çifti hakkında daha fazla bilgi edinin. RF çifti kullanan aşağıdaki projeleri kontrol ederek RF'nin çalışması hakkında daha fazla bilgi edinebilirsiniz:
- RF Kontrollü Robot
- IR - RF Dönüştürücü Devresi
- Raspberry Pi Kullanan RF Uzaktan Kontrollü LED'ler
- RF Kontrollü Ev Aletleri
Devre şeması
RF Verici tarafı için Devre Şeması
- ATmega8'in D7 pimi -> Pin13 HT12E
- Atmega8'in D6 pimi -> Pin12 HT12E
- ATmega8'in D5 pimi -> Pin11 HT12E
- ATmega8'in D4 pimi -> Pin10 HT12E
- Atmega'nın B0 Pimine Basma Düğmesi.
- HT12E'nin 15. ve 16. pinleri arasında 1M ohm direnç.
- HT12E'nin pin17'si RF verici modülünün veri pinine.
- HT12E'nin 18 numaralı pini 5V'ye.
- HT12E'nin GND pimi 1-9 ve Pin 14 ve Atmega'nın Pimi 8.
RF Alıcı Tarafı için Devre Şeması
- ATmega8'in D7 pimi -> Pin13 HT12D
- Atmega8'in D6 pimi -> Pin12 HT12D
- ATmega8'in D5 pimi -> Pin11 HT12D
- ATmega8'in D4 pimi -> Pin10 HT12d
- Atmega'nın B0 Pimine LED.
- HT12D'nin 14 numaralı pinini RF alıcı modülünün veri pinine.
- HT12D'nin 15. ve 16. pinleri arasında 47Kohm direnç.
- HT12D'nin GND pini 1-9 ve Atmega'nın Pimi 8.
- HT12D'nin 17. pinine LED.
- Atmega'nın 7. pimine ve HT12D'nin 18. pimine 5V.
CodeVision kullanarak Atmega 8 için Proje Oluşturma
Bu yazılımları kurduktan sonra proje oluşturmak ve kod yazmak için aşağıdaki adımları izleyin:
1. Adım. CodeVision'ı açın Dosya -> Yeni -> Proje'ye tıklayın . Onay Diyalog kutusu görünecektir. Evet'e tıklayın
Adım 2. CodeWizard açılacaktır. İlk seçeneğe, yani AT90'a tıklayın ve Tamam'a tıklayın.
Adım 3. Mikrodenetleyici çipinizi seçin, burada gösterildiği gibi Atmega8'i alacağız.
Adım 4: - Bağlantı Noktaları'na tıklayın. Gelen Verici kısmında, Düğme eden giriş ve 4 veri hatları çıkış vardır. Yani, çıktı olarak 4 pin Atmega'yı başlatmalıyız. Bağlantı Noktası D'ye tıklayın. Bit 7, 6, 5 ve 4'ü üzerine tıklayarak çıkarın.
Adım 5: - tıklayın Programı -> Kaydet ve Çık, üret . Şimdi işimizin yarısından fazlası tamamlandı
Adım 6: - Masaüstünde Yeni bir klasör oluşturun, böylece dosyalarımız klasörde kalır, aksi takdirde tüm masaüstü penceresine dağılacaktır. Klasörünüzü istediğiniz gibi adlandırın ve program dosyalarını kaydetmek için aynı adı kullanmanızı öneririm.
Dosyaları kaydetmek için birbiri ardına üç diyalog kutusu olacak. İlkini kaydettikten sonra görünecek diğer iki diyalog kutusu için de aynısını yapın.
Şimdi, çalışma alanınız böyle görünüyor.
İşimizin çoğu Sihirbazın yardımıyla tamamlandı. Şimdi, verici ve alıcı kısmı için sadece birkaç satır kod yazmamız gerekiyor ve işte bu…
Alıcı bölümü için dosyalar oluşturmak için aynı adımları izleyin. Alıcı kısmında sadece Led bizim çıktımızdır, bu yüzden Port B0'ı bit yapın.
KOD ve Açıklama
LED'i RF kullanarak kablosuz olarak değiştirmek için kod yazacağız. Hem Verici hem de Alıcı tarafındaki Atmega için tam kod bu makalenin sonunda verilmiştir.
RF Verici için Atmega8 kodu:
İlk olarak, kodumuzda gecikme kullanmak için delay.h başlık dosyasını ekleyin.
#Dahil etmek
Şimdi, bir while döngüsü bulacağınız son kod satırlarına gelin . Ana kodumuz bu döngüde olacak.
In iken döngü, biz düğmeye basıldığında değilken 0x20 gönderir, düğmeye basıldığında PORTD için 0x10 bayt göndermek ve olacaktır. Göndermek için herhangi bir değeri kullanabilirsiniz.
while (1) { if (PINB.0 == 1) { PORTD = 0x10; } eğer (PINB.0 == 0) { PORTD = 0x20; } } }
RF Alıcısı için Atmega kodu
Öncelikle, RF modülünden gelen karakteri depolamak için void main fonksiyonunun üzerindeki değişkenleri tanımlayın.
#Dahil etmek
Şimdi while döngüsüne gelin . Bu döngü olarak, bir karakter değişkeni gelen bayt depolamak byte ve bizim verici kısmında yazdıkça gelen bayt aynı olup olmadığını kontrol. Baytlar aynıysa, PortB.0'ı yüksek yapın ve LED'i değiştirmek için PORTB.0'ı DEĞİLDİR.
while (1) { bayt = PIND; eğer (PIND.7 == 0 && PIND.6 == 0 && PIND.5 == 0 && PIND.4 == 1) { PORTB.0 = ~ PORTB.0; gecikme_ms (1000); }}}
Projeyi Oluşturun
Kodumuz tamamlandı. Şimdi, projemizi inşa etmeliyiz . Gösterilen proje simgesini tıklayın.
Projeyi oluşturduktan sonra, Debug-> Exe klasöründe, projenizi kaydetmek için daha önce yaptığınız klasörde bulunan bir HEX dosyası oluşturulur. Sinaprog yazılımını kullanarak Atmega8'e yüklemek için bu HEX dosyasını kullanacağız.
Kodu Atmega8'e yükleyin
Atmega8'i programlamak için devrelerinizi verilen şemaya göre bağlayın. FRC kablosunun bir tarafını USBASP programlayıcısına bağlayın ve diğer tarafı aşağıda açıklandığı gibi mikrodenetleyicinin SPI pinlerine bağlanacaktır:
- FRC dişi konektörün Pin1'i -> Atmega8'in Pin 17, MOSI'si
- Atmega8'in Vcc'sine bağlı Pin 2, yani Pin 7
- Atmega8 yani Pin 1'in Sıfırlanmasına bağlı Pin 5
- Atmega8'in SCK'sına bağlı Pin 7, yani Pin 19
- Atmega8'in MISO'suna bağlı Pin 9, yani Pin 18
- Atmega8'in GND'sine bağlı Pin 8, yani Pin 8
Devre şemasına göre devre tahtasında kalan bileşenleri bağlayın ve Sinaprog'u açın .
Yukarıda oluşturulan Hex dosyasını Sinaprog'u kullanarak yükleyeceğiz, bu yüzden açın ve Cihaz açılır menüsünden Atmega8'i seçin. Gösterildiği gibi Debug-> Exe klasöründen HEX dosyasını seçin.
Şimdi, Programa tıklayın.
İşlemi tamamladınız ve Mikrodenetleyiciniz programlandı. Alıcı tarafında başka bir Atmega programlamak için aynı adımları kullanın.
Tam kod ve tanıtım videosu aşağıda verilmiştir.