色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何使用433 MHz RF模塊和AVR微控制器構建無線項目

科技觀察員 ? 來源:circuitdigest ? 作者:里沙布·耆那教 ? 2022-11-10 16:27 ? 次閱讀

使我們的項目無線化總是讓它看起來很酷,并擴展了可以控制的范圍。從使用普通紅外 LED 進行短距離無線控制到 ESP8266 進行全球 HTTP 控制,有很多方法可以無線控制某些東西。在本項目中,我們將學習如何使用 433 MHz RF 模塊和 AVR 微控制器構建無線項目。

在這個項目中,我們做以下事情:-

我們將 Atmega8 用于射頻發射器,將Atmega8用于射頻接收器部分。

我們將 LED 和按鈕與 Atmega8 微控制器連接。

在發射器方面,我們將按鈕與Atmega連接并傳輸數據。在接收器側,我們將無線接收數據并在LED上顯示輸出。

我們使用編碼器和解碼器IC來傳輸4位數據。

接收頻率為433Mhz,使用市場上廉價的RF TX-RX模塊。

所需組件

Atmega8 AVR 微控制器 (2)

USBASP 編程

10 針 FRC 電纜

面包板 (2)

發光二極管 (2)

按鈕 (1)

HT12D 和 HT12E 對

射頻模塊

電阻器 (10k,47k,1M)

跳線

5V電源

使用的軟件

我們使用CodeVisionAVR軟件編寫代碼,使用SinaProg軟件使用USBASP程序員將代碼上傳到Atmega8。

在介紹原理圖和代碼之前,讓我們先了解RF模塊與編碼器-解碼器IC的工作原理

433MHz 射頻發射器和接收器模塊

poYBAGNstfuABJG3AAB8VoOuxt8447.jpg

這些是我們在項目中使用的發射器和接收器模塊。它是433 MHz最便宜的模塊,這些模塊在一個通道中接受串行數據。

如果我們看到模塊的規格變送器的額定工作電壓為3.5-12V,發射距離為20-200米。它確實以433 MHz 頻率的 AM(音頻調制)協議傳輸。我們可以以 4KB/S 的速度以 10mW 的功率傳輸數據。

pYYBAGNstf2AXIXdAABpsZwtuo0906.jpg

在上圖中,我們可以看到發射器模塊的引腳。從左到右,引腳是VCC,DATA和GND。我們還可以添加天線并將其焊接在上圖中表示的點上。

對于接收器規格,接收器的額定電壓為5V 直流,靜態電流為 4MA作為輸入。接收頻率為433.92 MHz,靈敏度為-105DB。

poYBAGNstf6Ae-9TAADRKwtBnnQ615.jpg

在上圖中,我們可以看到接收器模塊的引腳。四個引腳從左到右依次為VCC、數據、數據和GND。中間的兩個引腳在內部連接。我們可以使用任何一個或兩個。但是,最好同時使用兩者來降低噪聲耦合

此外,數據表中沒有提到一件事,模塊中間的可變電感或POT用于頻率校準。如果我們無法接收傳輸的數據,則發射和接收頻率可能不匹配。這是一個射頻電路,我們需要將發射器調諧到完美的發射頻率點。此外,與發射器相同,該模塊也有一個天線端口;我們可以以線圈形式焊接焊絲,以獲得更長的接收時間。

傳輸范圍取決于提供給發射器的電壓和兩側天線的長度。對于這個特定的項目,我們沒有使用外部天線,而是在發射器側使用了5V。我們檢查了5米的距離,效果很好。

電路圖

射頻發射器側電路圖

pYYBAGNstf-AYvCEAADIZWuT-xs205.png

引腳 D7 的 atmega8 -> 引腳 13 HT12E

引腳 D6 的 atmega8 -> 引腳 12 HT12E

atmega8 的引腳 D5 -> 引腳 11 HT12E

引腳 D4 的 atmega8 -> 引腳 10 HT12E

按鈕固定 Atmega 的 B0。

HT12E 引腳 15 和 16 之間的 1M 歐姆電阻

HT12E 的引腳 17 連接到射頻發射器模塊的數據引腳。

HT12E 至 5V 的引腳 18。

HT12E 的 GND 引腳 1-9 和引腳 14 以及 Atmega 的引腳 8。

射頻接收器側電路圖

pYYBAGNstgGAPWrlAAC1W291RfY529.png

atmega8 的引腳 D7 -> 引腳 13 HT12D

引腳 D6 的 atmega8 -> 引腳 12 HT12D

引腳 D5 的 atmega8 -> 引腳 11 HT12D

引腳 D4 的 atmega8 -> 引腳 10 HT12d

LED 連接到 Atmega 的引腳 B0。

HT12D的引腳14到射頻接收器模塊的數據引腳。

HT12D 引腳 15 和 16 之間的 47Kohm 電阻。

HT12D 的 GND 引腳 1-9 和 Atmega 的引腳 8。

LED 連接到 HT12D 的引腳 17。

5V 至 Atmega 的引腳 7 和 HT12D 的引腳 18。

poYBAGNstgWASCcaAAFDEsWfMOM192.jpg

使用 CodeVision 為 Atmega 8 創建項目

安裝這些軟件后,請按照以下步驟創建項目并編寫代碼:

第 1 步。打開 CodeVision 單擊“文件 -> 新建”-> 項目。將出現確認對話框。點擊是

pYYBAGNstgeAVZa0AACSmU93eSM529.png

第 2 步。代碼向導將打開。單擊第一個選項,即 AT90,然后單擊確定。

poYBAGNstgmACh7MAAC8vZSNJSE162.png

第 3 步。選擇您的微控制器芯片,在這里我們將采用如圖所示的Atmega8。

poYBAGNstg2AbRY7AACn3AGlTK4574.png

第 4 步:-單擊端口。在變送器部分,按鈕是我們的輸入,輸出4條數據線。因此,我們必須初始化 Atmega 的 4 個引腳作為輸出。單擊端口 D.通過單擊使位 7、6、5 和 4 輸出。

pYYBAGNstg-AR2vFAABkiPCrAIw650.png

第 5 步:-單擊程序 - >生成,保存并退出。現在,我們一半以上的工作已經完成

pYYBAGNsthGAZpFAAACKBkwvfRU739.png

第 6 步:-在桌面上創建一個新文件夾,以便我們的文件保留在文件夾中,否則它將分散在整個桌面窗口中。根據需要命名您的文件夾,我建議使用相同的名稱來保存程序文件。

我們將有一個接一個的三個對話框來保存文件。對保存第一個對話框后將出現的其他兩個對話框執行相同的操作。

現在,您的工作區如下所示。

poYBAGNsthSAGAeOAADie_Din-E232.png

我們的大部分工作都是在向導的幫助下完成的。現在,我們只需要為發射器和接收器部分編寫幾行代碼,就是這樣......

按照相同的步驟為接收器部分創建文件。在接收器部分,只有 Led 是我們的輸出,因此使端口 B0 位輸出。

代碼和解釋

我們將編寫使用 RF 無線切換 LED的代碼。本文末尾給出了發射器和接收器側的 Atmega 的完整代碼。

射頻發射器的 Atmega8 代碼:

首先包含delay.h頭文件以在我們的代碼中使用 delay。

#include

#include

void main(void)

{

現在,來到代碼的最后一行,您將在其中找到一個 while循環。我們的主代碼將在此循環中。

在 While 循環中,我們將在按下按鈕時將0x10字節發送到 PORTD,并在未按下按鈕時發送0x20。您可以使用任何值進行發送。

while (1)

{

if(PINB.0 == 1) {

PORTD = 0x10;

}

if(PINB.0 == 0) {

PORTD = 0x20;

}

}

}

射頻接收器的Atmega代碼

首先在 void main 函數上方聲明變量,用于存儲來自 RF 模塊的傳入字符。

#include

#include

#include

unsigned char byte = 0;

void main(void) {

現在來到while循環。在此循環中,將傳入字節存儲到 char 變量字節,并檢查傳入字節是否與我們在發射器部分中寫入的字節相同。如果字節相同,請將端口 B.0設置為高電平,而不是使用 PORTB.0 來切換 LED。

while (1)

{

byte = PIND;

if(PIND.7==0 && PIND.6==0 && PIND.5==0 && PIND.4==1)

{

PORTB.0 = ~PORTB.0;

delay_ms(1000);

} } }

構建項目

我們的代碼完成了。現在,我們必須構建我們的項目。單擊“構建項目”圖標,如下所示。

pYYBAGNstheAYkYEAACkCgYppvc374.png

構建項目后,將在調試> Exe文件夾中生成一個十六進制文件,該文件可以在您之前為保存項目而創建的文件夾中找到。我們將使用此十六進制文件通過Sinaprog軟件上傳到Atmega8中。

將代碼上傳到 Atmega8

根據給定的圖表連接電路以編程Atmega8。將FRC電纜的一端連接到USBASP編程器,另一端將連接到微控制器的SPI引腳,如下所述:

poYBAGNsthyAC-5XAABxP4nGW2o051.png

FRC 母連接器引腳 1 -> 引腳 17,Atmega8 的 MOSI

引腳 2 連接到 atmega8 的 Vcc,即引腳 7

引腳 5 連接到 atmega8 的復位,即引腳 1

引腳 7 連接到 atmega8 的 SCK,即引腳 19

引腳 9 連接到 atmega8 的 MISO,即引腳 18

引腳 8 連接到 atmega8 的 GND,即引腳 8

按照電路圖連接試驗板上的其余組件,然后打開Sinaprog。

我們將使用Sinaprog上傳上面生成的十六進制文件,因此打開它并從設備下拉菜單中選擇 Atmega8。從調試> Exe 文件夾中選擇十六進制文件,如下所示。

poYBAGNsth6APZghAABgEvRne9E388.png

現在,單擊程序。

pYYBAGNstiCAfbqhAAD6CIV689g154.jpg

您已完成,您的微控制器已編程。使用相同的步驟在接收器側對另一個Atmega進行編程。

Code for Transmitter Part:


#include

#include

void main(void)

{

DDRB=(0<
// State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=0

PORTB=(0<

// Port C initialization

// Function: Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In

DDRC=(1<
// State: Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T

PORTC=(0<

// Port D initialization

// Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In

DDRD=(1<
// State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T

PORTD=(0<
while (1)

{

if(PINB.0 == 1) {

PORTD = 0x10;

}

if(PINB.0 == 0) {

PORTD = 0x20;

}

}

}


Code for Receiver Part:


#include

#include

// Declare your global variables here

unsigned char byte = 0;

unsigned char lightON = 0;//light status

int LED_status = 0;

void main(void)

{

// Input/Output Ports initialization

// Port B initialization

// Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=Out Bit0=Out

DDRB=(0<
// State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=0 Bit0=0

PORTB=(0<
// Port D initialization

// Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In

DDRD=(0<
// State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T

PORTD=(0<
while (1)

{

byte = PIND;

if(PIND.7==0 && PIND.6==0 && PIND.5==0 && PIND.4==1 && LED_status==0)

{

PORTB.0 = ~PORTB.0;

delay_ms(1000);

}

}

}


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 微控制器
    +關注

    關注

    48

    文章

    7564

    瀏覽量

    151509
  • HTTP
    +關注

    關注

    0

    文章

    510

    瀏覽量

    31293
  • ESP8266
    +關注

    關注

    50

    文章

    962

    瀏覽量

    45087
收藏 人收藏

    評論

    相關推薦

    如何使用8051微控制器和藍牙模塊構建一個Android手機控制的機器人

    在這個項目中,我們將使用8051微控制器和藍牙模塊構建一個Android手機控制的機器人。該機器人是使用直流電機設計的,直流電機的方向將由從
    發表于 11-18 16:37 ?1491次閱讀
    如何使用8051<b class='flag-5'>微控制器</b>和藍牙<b class='flag-5'>模塊</b><b class='flag-5'>構建</b>一個Android手機<b class='flag-5'>控制</b>的機器人

    8位AVR USB微控制器供電的加密狗應用電路

    AVR296 AVRUSBRF01 USB / RF加密狗應用電路由AT90USB162 8位AVR USB微控制器供電。該板設計用于使用提供的演示軟件輕松評估USB和
    發表于 03-10 09:59

    怎樣去設計一種基于433MHz RF模塊的Arduino遙控小船

    使用433MHz RF模塊制作一艘簡易的Arduino遙控小船本篇文章中,我們將制作一個遠程控制的Arduino小船,可以使用433
    發表于 09-17 06:37

    Arduino配合RF 433MHz收發模塊實現無線通信

    使用。   如何用Arduino控制   閑話不多說,我們直接實踐。接下去我們就演示一下Arduino配合RF 433MHz收發模塊實現無線
    發表于 05-15 15:35

    內嵌微控制器無線數據發射的特性及應用

    簡要介紹內嵌AVR RISC 微控制器無線數據發射AT86RF401 的功能、內部結構、引腳排列及典型的應用電路。
    發表于 05-13 15:57 ?13次下載

    如何實現用AVR微控制器控制音樂播放?

    AVR微控制器控制的音樂播放
    的頭像 發表于 07-10 00:46 ?2976次閱讀

    關于AVR XMEGA微控制器的介紹

    Atmel AVR XMEGA 微控制器
    的頭像 發表于 07-09 04:10 ?3473次閱讀

    關于AVR微控制器的的省能技巧介紹

    適用於所有AVR微控制器的一般省能技巧 - 在無犧牲功能和績效的情況下節省用電,為AVR微控制器帶來更大效益!
    的頭像 發表于 07-08 01:08 ?2769次閱讀

    關于AVR微控制器最早期的樣品介紹

    愛特梅爾AVR微控制器共同發明人兼首席營銷官Alf-Egil Bogen 介紹AVR微控制器最早期的樣品。
    的頭像 發表于 07-06 05:38 ?4220次閱讀

    關于RF433無線模塊及應用領域分析詳解

    433MHz無線收發模組,采用高頻射頻技術,因此也叫RF433射頻小模塊。其由全數字科技生產的單IC射頻前端與ATMEL的AVR單片機組成,
    發表于 04-30 14:08 ?4w次閱讀

    如何使用Arduino構建一個無線門鈴

     在這個項目中,我們將使用 Arduino 構建一個無線門鈴。我們將有一個按鈕,按下該按鈕將無線播放我們選擇的旋律,以指示有人在門口。對于無線
    發表于 08-19 15:57 ?1821次閱讀
    如何使用Arduino<b class='flag-5'>構建</b>一個<b class='flag-5'>無線</b>門鈴

    使用AVR微控制器構建一個生物識別考勤系統

    在這個項目中,我們將使用 AVR 微控制器構建一個生物識別考勤系統取代人工考勤程序。該系統將更加可靠和高效,因為它可以節省時間并避免躲閃。
    發表于 08-24 15:49 ?667次閱讀
    使用<b class='flag-5'>AVR</b><b class='flag-5'>微控制器</b><b class='flag-5'>構建</b>一個生物識別考勤系統

    單片機常用模塊433無線數傳通信

    今天向大家介紹一個單片機開發常用模塊433無線數傳模塊無線收發模塊
    發表于 05-31 15:39 ?5次下載
    單片機常用<b class='flag-5'>模塊</b>:<b class='flag-5'>433</b><b class='flag-5'>無線</b>數傳通信

    使用STM32WB系列微控制器構建無線應用

    電子發燒友網站提供《使用STM32WB系列微控制器構建無線應用.pdf》資料免費下載
    發表于 09-20 10:15 ?2次下載
    使用STM32WB系列<b class='flag-5'>微控制器</b><b class='flag-5'>構建</b><b class='flag-5'>無線</b>應用

    RF4463PRO 433MHz LoRa模塊100mW高性能無線收發模塊V3

    433MHz LoRa模塊是一種基于433MHz頻段的LoRa無線通信模塊。LoRa是一種低功耗、遠距離通信技術,適用于物聯網、遠程監控、智
    發表于 10-19 14:49 ?0次下載
    主站蜘蛛池模板: 亚洲精品在线看| younv 学生国产在线视频| 俄罗斯6一12呦女精品| 日韩中文亚洲欧美视频二| 大香伊人中文字幕精品| 成人免费毛片观看| 手机观看毛片| 久久99精国产一区二区三区四区 | 国产亚洲精品久久77777| 亚洲综合中文字幕无线码| 国产成+人+综合+亚洲不卡| 欧美性黑吊xxx| 88福利视频| 色老99九久精品偷偷鲁| 鸡鸡插屁股| yellow免费影视大全| 亚洲AV國產国产久青草| 免费视频国产| gogogo视频在线观看| 污污内射在线观看一区二区少妇| 精品视频免费在线观看| 草民电影网午夜伦理电影网| 亚洲免费人成 久久| 欧美在线看费视频在线| 花蝴蝶在线直播观看| yellow视频免费观看| 亚洲精品伊人久久久久| 日本aa大片| 久久午夜免费视频| 国产精品久久久久久亚洲毛片| 97人妻在线公开视频在线观看| 亚洲AV无码乱码国产麻豆P| 欧美牲交A欧美牲交VDO| 久久不射电影网| 国产精品香蕉视频在线| xiah俊秀| 中文字幕天堂久久精品| 亚洲AV日韩AV欧美在线观看网 | 国产a级黄色毛片| 97精品在线| 一区不卡二区卡|