0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何用Arduinos和NRF24L01模塊創(chuàng)建發(fā)射器和接收器

454398 ? 來源:工程師吳畏 ? 2019-08-01 11:29 ? 次閱讀

此項(xiàng)目所需的組件如下:

2 Arduino

2 NRF24L01模塊

操縱桿模塊

伺服電機(jī)

連接電線

伺服電機(jī)控制如何工作

變送器側(cè)我們有一個(gè)操縱桿模塊,Arduino和NRF24L01,而在接收端我們有一個(gè)NRF24L01,Arduino和一個(gè)伺服電機(jī)。

當(dāng)我們?cè)谒椒较蛞苿?dòng)操縱桿時(shí),操縱桿模塊將發(fā)送Ardui的模擬值沒有。我們已將NRF24L01模塊設(shè)置為發(fā)射器模式,并將操縱桿移動(dòng)值發(fā)送到特定地址。

在接收端,我們已將NRF24L01模塊設(shè)置為接收模式。我們?cè)诮邮斩私o出了相同的地址,其他NRF24L01模塊正在傳輸數(shù)據(jù)。因此,只要模塊接收數(shù)據(jù),Arduino就會(huì)讀取它并根據(jù)它移動(dòng)伺服電機(jī)。

NRF24L01引腳

此模塊的功耗非常低。它在傳輸過程中消耗大約12mA的功率,甚至低于LED。

該模塊工作在3.3V,所以不要直接連接到5V的Arduino,因?yàn)樗赡軙?huì)損壞。 NRF24L01模塊的其他引腳具有5V容限,因此您可以將它們直接連接到Arduino。

SCK,MOSI和MISO引腳用于SPI通信,CSN和CE引腳用于設(shè)置待機(jī)或激活模式以及設(shè)置發(fā)送或命令模式。

電路圖

連接有點(diǎn)冗長,所以我將分別解釋發(fā)送器和接收器的連接。

對(duì)于發(fā)射器

使用Arduino建立發(fā)射器側(cè)的連接,如下所示:

將NRF24L01的3.3V引腳與3.3V的Arduino連接

將NRF24L01的GND引腳與Arduino的GND連接

將NRF24L01的CSN引腳連接到Arduino的引腳8

將NRF24L01的CE引腳與Arduino的引腳7連接

連接NRF24L01的SCK引腳Arduino的第13針

將NRF24L01的MOSI引腳與Arduino的引腳11連接

將NRF24L01的MISO引腳與Arduino的引腳12連接?/li》

然后將操縱桿模塊與Arduino連接如下:

操縱桿模塊的VCC到Arduino的5V電源

GND of操縱桿模塊到Arduino的GND

操縱桿模塊的VER到Arduino的A1

操縱桿模塊的HOR到Arduino的A0

對(duì)于接收器

在接收器端,NRF24L01與Arduino的連接 相同作為發(fā)射器側(cè)的那些。使用Arduino進(jìn)行伺服電機(jī)連接如下:

紅線到Arduino的5V電源

Arduino的GND到布線》

黃色電線到Arduino的第6針

代碼發(fā)射器

#include

#include

#include

RF24 radio(7, 8); // CSN, CE

const byte address[6] = “00001”;

int x_key = A1;

int y_key = A0;

int x_pos;

int y_pos;

void setup() {

radio.begin();

radio.openWritingPipe(address);

radio.setPALevel(RF24_PA_MIN);

radio.stopListening();

pinMode (x_key, INPUT) ;

pinMode (y_key, INPUT) ;

}

void loop() {

x_pos = analogRead (x_key) ;

y_pos = analogRead (y_key) ;

radio.write(&x_pos, sizeof(x_pos));

delay(100);

}

接收者代碼

#include

#include

#include

#include

Servo servo;

RF24 radio(7, 8); // CSN, CE

const byte address[6] = “00001”;

int servo_pin = 6;

void setup() {

Serial.begin(9600);

radio.begin();

servo.attach (servo_pin ) ;

radio.openReadingPipe(0, address);

radio.setPALevel(RF24_PA_MIN);

radio.startListening();

}

void loop() {

if (radio.available()) {

int x_pos ;

radio.read(&x_pos, sizeof(x_pos));

Serial.println(x_pos);

x_pos = map(x_pos, 0, 1023, 0, 180);

if (x_pos》400 && x_pos《600)

{

}

else{

servo.write (x_pos) ;

}

}

}

代碼細(xì)分和解釋

首先,包含庫對(duì)于NRF24L01和伺服電機(jī)。

#include

#include

#include

#include

然后,定義我們連接NRF24L01的CSN和CE引腳的引腳。之后,我們初始化將發(fā)送和接收數(shù)據(jù)的地址。該地址在發(fā)射機(jī)和接收機(jī)側(cè)應(yīng)該相同。該地址可以是任意五個(gè)字母的字符串。

RF24 radio(7,8);//CSN,CE

const字節(jié)地址[6] =“00001”;

在發(fā)送器的設(shè)置功能中,我們?cè)O(shè)置發(fā)送數(shù)據(jù)的地址。然后我們將功率放大范圍設(shè)置為最小,因?yàn)槲覀兊哪K彼此更接近。

radio.openWritingPipe(地址);

radio.setPALevel(RF24_PA_MIN);

對(duì)于接收方,我們使用以下命令并設(shè)置模塊以從該地址接收數(shù)據(jù)。

radio.openReadingPipe(0,address);

In發(fā)送器的循環(huán)功能,我們從操縱桿模塊讀取并在我們之前設(shè)置的地址發(fā)送值。

radio.write(& x_pos,sizeof(x_pos));

接收器側(cè)的以下命令將從發(fā)送器獲取數(shù)據(jù),并且在將數(shù)據(jù)映射到0-180之后,我們將移動(dòng)伺服。

radio.read(& x_pos,sizeof( X_POS));

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 接收器
    +關(guān)注

    關(guān)注

    14

    文章

    2474

    瀏覽量

    72041
  • 發(fā)射器
    +關(guān)注

    關(guān)注

    6

    文章

    852

    瀏覽量

    53536
  • nRF24L01
    +關(guān)注

    關(guān)注

    17

    文章

    330

    瀏覽量

    69548
  • Arduino
    +關(guān)注

    關(guān)注

    188

    文章

    6473

    瀏覽量

    187424
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    有人用過USB轉(zhuǎn)NRF24L01模塊嗎,求指教

    如圖,我買了一個(gè)這個(gè)模塊,然后買了兩個(gè)NRF24L01。 其中一個(gè)接上了USB轉(zhuǎn)NRF24L01模塊,另外一個(gè)直連了stm32。 我想問接到轉(zhuǎn)換
    發(fā)表于 01-08 17:12

    nRF24L01P被SI24R1竟然完美兼容替換

    發(fā)現(xiàn)一個(gè)新一代nRF24L01P與上一代nRF24L01相比寄存沒有太大的變化,但是有幾個(gè)關(guān)于通信管道和ACK的寄存的配置還是與上一代不同的。另外,個(gè)人理解shockburst和e
    發(fā)表于 11-28 16:52

    TMS320DM6467支持HDMI發(fā)射器/接收器

    電子發(fā)燒友網(wǎng)站提供《TMS320DM6467支持HDMI發(fā)射器/接收器.pdf》資料免費(fèi)下載
    發(fā)表于 10-15 11:36 ?0次下載
    TMS320DM6467支持HDMI<b class='flag-5'>發(fā)射器</b>/<b class='flag-5'>接收器</b>

    對(duì)射光電怎樣區(qū)分發(fā)射接收

    對(duì)射光電傳感是一種常用的光電檢測(cè)設(shè)備,它由發(fā)射器接收器兩部分組成,通過發(fā)射器發(fā)出光信號(hào),接收器接收
    的頭像 發(fā)表于 09-04 10:34 ?1646次閱讀

    無線充電接收器怎么使用

    無線充電接收器是一種利用電磁感應(yīng)原理實(shí)現(xiàn)無線充電的設(shè)備,它能夠?qū)o線充電發(fā)射器發(fā)出的電磁波轉(zhuǎn)換為電能,為手機(jī)、耳機(jī)、智能手表等設(shè)備提供充電。無線充電接收器的使用過程相對(duì)簡(jiǎn)單,但要實(shí)現(xiàn)高效、安全的充電
    的頭像 發(fā)表于 09-02 09:20 ?892次閱讀

    無線充電接收器對(duì)手機(jī)有損害嗎

    原理。在無線充電系統(tǒng)中,通常包括一個(gè)發(fā)射器(無線充電底座)和一個(gè)接收器(內(nèi)置于手機(jī)或其他設(shè)備中)。發(fā)射器產(chǎn)生一個(gè)交變磁場(chǎng),而接收器中的線圈感應(yīng)這個(gè)磁場(chǎng),從而產(chǎn)生電流,為設(shè)備充電。 無線
    的頭像 發(fā)表于 09-02 09:15 ?751次閱讀

    適用于無線基礎(chǔ)設(shè)施的高速LVDS線路發(fā)射器/接收器SC5108

    適用于無線基礎(chǔ)設(shè)施的高速LVDS線路發(fā)射器/接收器SC5108
    的頭像 發(fā)表于 08-01 10:06 ?386次閱讀
    適用于無線基礎(chǔ)設(shè)施的高速LVDS線路<b class='flag-5'>發(fā)射器</b>/<b class='flag-5'>接收器</b>SC5108

    如何將ESP8266-01模塊用作物理層設(shè)備?

    嗨,大家好。我想將 ESP8266-01 模塊用作物理層設(shè)備,就像射頻發(fā)射器接收器一樣。 一個(gè)模塊將用作
    發(fā)表于 07-19 12:18

    TL28L92 3.3V/5V雙通道通用異步接收器/發(fā)射器數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《TL28L92 3.3V/5V雙通道通用異步接收器/發(fā)射器數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 07-09 09:34 ?0次下載
    TL28<b class='flag-5'>L</b>92 3.3V/5V雙通道通用異步<b class='flag-5'>接收器</b>/<b class='flag-5'>發(fā)射器</b>數(shù)據(jù)表

    NRF24L01加個(gè)if就發(fā)送不成功的原因?

    我最近在調(diào)個(gè)NRF24L01其實(shí)早已經(jīng)調(diào)試好了,之前都是一個(gè)發(fā)送一個(gè)接,我現(xiàn)在想改成,我發(fā)送端發(fā)送成功后,接收端能返回信息回來。我調(diào)試時(shí)發(fā)現(xiàn)在把發(fā)送函數(shù)放到“if”里面發(fā)送不成功.把\"
    發(fā)表于 05-10 07:06

    nrf24l01+自動(dòng)應(yīng)答失敗的原因?

    目前調(diào)試24L01+,非自動(dòng)應(yīng)答可以收到數(shù)據(jù),但自動(dòng)應(yīng)答時(shí),一直出現(xiàn)達(dá)到最大重發(fā)次數(shù),但接收方有收到數(shù)據(jù)。 發(fā)送端: oid ANO_NRF_TX_MODE(void
    發(fā)表于 04-24 07:51

    無線通信時(shí)代nRF24L01無線模塊的應(yīng)用與特點(diǎn)

    nRF24L01是一種低功耗、高性能的2.4GHz無線收發(fā),由Nordic Semiconductor公司開發(fā)。它廣泛應(yīng)用于無線通信領(lǐng)域,特別是在低功耗應(yīng)用和物聯(lián)網(wǎng)設(shè)備中。
    的頭像 發(fā)表于 04-16 16:05 ?2727次閱讀
    無線通信時(shí)代<b class='flag-5'>nRF24L01</b>無線<b class='flag-5'>模塊</b>的應(yīng)用與特點(diǎn)

    NRF24L01P和SI24R1的區(qū)別

    NRF24L01無線模塊廣泛地運(yùn)用于:無線門禁、無線數(shù)據(jù)通訊、安防系統(tǒng)、遙控裝置、遙感 勘測(cè)、智能運(yùn)動(dòng)設(shè)備、工業(yè)傳感;平常我們用到的無線鼠標(biāo)基本上采用的都是NORDIC的N RF24L01
    發(fā)表于 03-29 15:05

    藍(lán)牙發(fā)射器有什么作用,藍(lán)牙發(fā)射器接收器的區(qū)別

    藍(lán)牙發(fā)射器是一種能夠?qū)⒁纛l信號(hào)通過藍(lán)牙信號(hào)進(jìn)行無線傳輸?shù)脑O(shè)備。其主要作用是將電視、電腦、音響等設(shè)備的音頻信號(hào)傳輸?shù)蕉鷻C(jī)、音響等藍(lán)牙接收設(shè)備上,實(shí)現(xiàn)無需線纜的音頻傳輸,讓用戶更加自由地享受音頻娛樂。
    的頭像 發(fā)表于 02-10 14:41 ?7263次閱讀

    藍(lán)牙適配器、藍(lán)牙接收器和藍(lán)牙發(fā)射器傻傻分不清?

    藍(lán)牙接收器是一種設(shè)備,通常用于將非藍(lán)牙設(shè)備轉(zhuǎn)換為藍(lán)牙設(shè)備。藍(lán)牙接收器通常連接到音頻設(shè)備(如音箱、耳機(jī)、汽車音響等),以使它們能夠接收通過藍(lán)牙傳輸?shù)囊纛l信號(hào)。
    發(fā)表于 02-02 10:23 ?8914次閱讀
    藍(lán)牙適配器、藍(lán)牙<b class='flag-5'>接收器</b>和藍(lán)牙<b class='flag-5'>發(fā)射器</b>傻傻分不清?