在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

能2公里無線遙控的2.4GHz遙控器

伊娃老師來了 ? 來源:伊娃老師來了 ? 作者:伊娃老師來了 ? 2023-03-04 11:11 ? 次閱讀

cfe89e06-b841-11ed-a826-dac502259ad0.png

工具:

焊槍+焊錫

焊接夾具

螺絲刀

膠水

d038f2fc-b841-11ed-a826-dac502259ad0.png

d09823c6-b841-11ed-a826-dac502259ad0.png

遙控器(發射器):

1 xNRF24L01+PA+LNA2.4G發射接收通信模塊

1 x24L01無線模塊轉接板

1 xArduinoNano板

1 x100nF100納法電容

2 x雙軸按鍵傳感器

2 x2檔搖臂開關

1 x7.4v460Mah鋰電池

1 x330R電阻

1 x10K電位器

2 x15P2.54mm單排排針插座

1 x54mmX20mmPCB

1 x7-9V的電池或者1x6節五號電池盒跟電池

若干:PCB板、電線、螺絲

// 8 Channel Transmitter (No Trim) | 8 Kanal Verici (Trim Yok)// Input pin A5
  #include   #include   #include   const uint64_t pipeOut = 000322;         // NOTE: The same as in the receiver 000322 | Al?c? kodundaki adres ile ayn? olmal?  RF24 radio(9, 10);                       // select CE,CSN pin | CE ve CSN pinlerin se?imi
  struct Signal {  byte throttle;  byte pitch;  byte roll;  byte yaw;  byte aux1;  byte aux2;  byte aux3;  byte aux4;
};  Signal data;  void ResetData(){  data.throttle = 0;  data.pitch = 127;  data.roll = 127;  data.yaw = 127;  data.aux1 = 0;                       // Signal lost position | Sinyal kesildi?indeki pozisyon  data.aux2 = 0;  data.aux3 = 0;  data.aux4 = 0;}  void setup(){                                       //Configure the NRF24 module  | NRF24 modül konfigürasyonu  radio.begin();  radio.openWritingPipe(pipeOut);  radio.setAutoAck(false);  radio.setDataRate(RF24_250KBPS);    // The lowest data rate value for more stable communication  | Daha kararl? ileti?im i?in en dü?ük veri h?z?.  radio.setPALevel(RF24_PA_MAX);      // Output power is set for maximum |  ??k?? gücü maksimum i?in ayarlan?yor.  radio.stopListening();              // Start the radio comunication for Transmitter | Verici i?in sinyal ileti?imini ba?lat?r.  ResetData();
}                                      // Joystick center and its borders | Joystick merkez ve s?n?rlar?  int Border_Map(int val, int lower, int middle, int upper, bool reverse){  val = constrain(val, lower, upper);  if ( val < middle )  val = map(val, lower, middle, 0, 128);  else  val = map(val, middle, upper, 128, 255);  return ( reverse ? 255 - val : val );}  void loop(){                                     // Control Stick Calibration for channels  |  Her bir kanal i?in kumanda Kol Kalibrasyonlar?
  data.roll = Border_Map( analogRead(A3), 0, 512, 1023, true );        // "true" or "false" for signal direction | "true" veya "false" sinyal y?nünü belirler  data.pitch = Border_Map( analogRead(A2), 0, 512, 1023, true );  data.throttle = Border_Map( analogRead(A1),570, 800, 1023, false );  // For Single side ESC | Tek y?nlü ESC i?in  // data.throttle = Border_Map( analogRead(A1),0, 512, 1023, false ); // For Bidirectional ESC | ?ift y?nlü ESC i?in  data.yaw = Border_Map( analogRead(A0), 0, 512, 1023, true );  data.aux1 = Border_Map( analogRead(A4), 0, 512, 1023, true );        // "true" or "false" for change signal direction | "true" veya "false" sinyal y?nünü de?i?tirir.  data.aux2 = Border_Map( analogRead(A5), 0, 512, 1023, true );        // "true" or "false" for change signal direction | "true" veya "false" sinyal y?nünü de?i?tirir.  data.aux3 = digitalRead(7);  data.aux4 = digitalRead(8);
  radio.write(&data, sizeof(Signal));} 

d0c043ec-b841-11ed-a826-dac502259ad0.png

// 8 Channel Transmitter & Trims | 8 Kanal Verici ve Trimler
  #include   #include   #include   #include 
  const uint64_t pipeOut = 000322;        // NOTE: The same as in the receiver 000322 | Al?c? kodundaki adres ile ayn? olmal?  RF24 radio(9, 10);                      // Select CE,CSN pin | CE ve CSN pinlerin se?imi
 #define trimbut_1 1                      // Trim button 1 / Pin D1 #define trimbut_2 2                      // Trim button 2 / Pin D2 #define trimbut_3 3                      // Trim button 3 / Pin D3 #define trimbut_4 4                      // Trim button 4 / Pin D4 #define trimbut_5 5                      // Trim button 5 / Pin D5 #define trimbut_6 6                      // Trim button 6 / Pin D6
 int tvalue1 = EEPROM.read(1) * 4;        // Reading trim values from Eprom  |  Trim de?erlerinin Epromdan okunmas? int tvalue2 = EEPROM.read(3) * 4; int tvalue3 = EEPROM.read(5) * 4;
  struct Signal {  byte throttle;  byte pitch;  byte roll;  byte yaw;  byte aux1;  byte aux2;  byte aux3;  byte aux4;};
  Signal data;  void ResetData(){  data.throttle = 512;                      // Signal lost position | Sinyal kesildi?indeki pozisyon  data.pitch = 127;  data.roll = 127;  data.yaw = 127;  data.aux1 = 0;  data.aux2 = 0;  data.aux3 = 0;  data.aux4 = 0;}  void setup(){                                         // Configure the NRF24 module  | NRF24 modül konfigürasyonu  radio.begin();  radio.openWritingPipe(pipeOut);  radio.setAutoAck(false);  radio.setDataRate(RF24_250KBPS);       // The lowest data rate value for more stable communication  | Daha kararl? ileti?im i?in en dü?ük veri h?z?.  radio.setPALevel(RF24_PA_MAX);         // Output power is set for maximum |  ??k?? gücü maksimum i?in ayarlan?yor.  radio.stopListening();                 // Start the radio comunication for Transmitter | Verici i?in sinyal ileti?imini ba?lat?r.  ResetData();
  pinMode(trimbut_1, INPUT_PULLUP);  pinMode(trimbut_2, INPUT_PULLUP);  pinMode(trimbut_3, INPUT_PULLUP);  pinMode(trimbut_4, INPUT_PULLUP);  pinMode(trimbut_5, INPUT_PULLUP);  pinMode(trimbut_6, INPUT_PULLUP);
  tvalue1= EEPROM.read(1) * 4;  tvalue2= EEPROM.read(3) * 4;  tvalue3= EEPROM.read(5) * 4;}
// Joystick center and its borders | Joystick merkez ve s?n?rlar?  int Border_Map(int val, int lower, int middle, int upper, bool reverse){  val = constrain(val, lower, upper);  if ( val < middle )  val = map(val, lower, middle, 0, 128);  else  val = map(val, middle, upper, 128, 255);  return ( reverse ? 255 - val : val );}  void loop(){
// Trims and Limiting trim values  |  Trimler ve Trim de?erlerini s?n?rland?rma
  if(digitalRead(trimbut_1)==LOW and tvalue1 < 630) {    tvalue1=tvalue1+15;    EEPROM.write(1,tvalue1/4);    delay (130);  }  if(digitalRead(trimbut_2)==LOW and tvalue1 > 280){    tvalue1=tvalue1-15;    EEPROM.write(1,tvalue1/4);    delay (130);  }
  if(digitalRead(trimbut_3)==LOW and tvalue2 < 630) {    tvalue2=tvalue2+15;    EEPROM.write(3,tvalue2/4);    delay (130);  }  if(digitalRead(trimbut_4)==LOW and tvalue2 > 280){    tvalue2=tvalue2-15;    EEPROM.write(3,tvalue2/4);    delay (130);  }
    if(digitalRead(trimbut_5)==LOW and tvalue3 < 630) {     tvalue3=tvalue3+15;     EEPROM.write(5,tvalue3/4);     delay (130);  }  if(digitalRead(trimbut_6)==LOW and tvalue3 > 280){    tvalue3=tvalue3-15;    EEPROM.write(5,tvalue3/4);    delay (130);  }
// Control Stick Calibration for channels  |  Her bir kanal i?in kumanda Kol Kalibrasyonlar?
  data.roll = Border_Map( analogRead(A3), 0, tvalue1, 1023, true );       // "true" or "false" for signal direction | "true" veya "false" sinyal y?nünü belirler  data.pitch = Border_Map( analogRead(A2), 0, tvalue2, 1023, true );  data.throttle = Border_Map( analogRead(A1),570, 800, 1023, false );    // For Single side ESC | Tek y?nlü ESC i?in  // data.throttle = Border_Map( analogRead(A1),0, 512, 1023, false );   // For Bidirectional ESC | ?ift y?nlü ESC i?in  data.yaw = Border_Map( analogRead(A0), 0, tvalue3, 1023, true );  data.aux1 = Border_Map( analogRead(A4), 0, 512, 1023, true );  data.aux2 = Border_Map( analogRead(A5), 0, 512, 1023, true );  data.aux3 = digitalRead(7);  data.aux4 = digitalRead(8);  radio.write(&data, sizeof(Signal));} 

控制電機(接收器):

1xNRF24L01+PA+LNA2.4G發射接收通信模塊

1x24L01無線模塊轉接板

1xArduinoNano板

1x100nF100納法電容

2x15P2.54mm單排排針插座

3x8P單排排針

1x54mmX20mmPCB板

1x7-9V的鋰電池

1x無刷電機+電子調速器(測試用,也可換舵機)

6x輕觸開關

若干:PCB板、電線

d111e3a0-b841-11ed-a826-dac502259ad0.png

//  8 Channel Receiver | 8 Kanal Al?c?
#include #include #include #include 
int ch_width_1 = 0;int ch_width_2 = 0;int ch_width_3 = 0;int ch_width_4 = 0;int ch_width_5 = 0;int ch_width_6 = 0;int ch_width_7 = 0;int ch_width_8 = 0;
Servo ch1;Servo ch2;Servo ch3;Servo ch4;Servo ch5;Servo ch6;Servo ch7;Servo ch8;
struct Signal {
byte throttle;byte pitch;byte roll;byte yaw;byte aux1;byte aux2;byte aux3;byte aux4;};
Signal data;
const uint64_t pipeIn = 000322;RF24 radio(9, 10);
void ResetData(){
data.throttle = 0;data.roll = 127;data.pitch = 127;data.yaw = 127;data.aux1 = 0;                                              // Define the inicial value of each data input. | Veri giri?lerinin ba?lang?? de?erleridata.aux2 = 0;data.aux3 = 0;data.aux4 = 0;}
void setup(){                                                           // Set the pins for each PWM signal | Her bir PWM sinyal i?in pinler belirleniyor.  ch1.attach(0);  ch2.attach(2);  ch3.attach(3);  ch4.attach(4);  ch5.attach(5);  ch6.attach(6);  ch7.attach(7);  ch8.attach(8);
  ResetData();                                             // Configure the NRF24 module  | NRF24 Modül konfigürasyonu  radio.begin();  radio.openReadingPipe(1,pipeIn);  radio.setAutoAck(false);  radio.setDataRate(RF24_250KBPS);                          // The lowest data rate value for more stable communication  | Daha kararl? ileti?im i?in en dü?ük veri h?z?.  radio.setPALevel(RF24_PA_MAX);                            // Output power is set for maximum |  ??k?? gücü maksimum i?in ayarlan?yor.  radio.startListening();                                   // Start the radio comunication for receiver | Al?c? i?in sinyal ileti?imini ba?lat?r.
}
unsigned long lastRecvTime = 0;
void recvData(){while ( radio.available() ) {radio.read(&data, sizeof(Signal));lastRecvTime = millis();                                    // Receive the data | Data al?n?yor}}
void loop(){recvData();unsigned long now = millis();if ( now - lastRecvTime > 1000 ) {ResetData();                                                // Signal lost.. Reset data | Sinyal kay?psa data resetleniyor}
ch_width_1 = map(data.roll, 0, 255, 1000, 2000);ch_width_2 = map(data.pitch, 0, 255, 1000, 2000);ch_width_3 = map(data.throttle, 0, 255, 1000, 2000);ch_width_4 = map(data.yaw, 0, 255, 1000, 2000);ch_width_5 = map(data.aux1, 0, 255, 1000, 2000);ch_width_6 = map(data.aux2, 0, 255, 1000, 2000);ch_width_7 = map(data.aux3, 0, 1, 1000, 2000);ch_width_8 = map(data.aux4, 0, 1, 1000, 2000);

ch1.writeMicroseconds(ch_width_1);                          // Write the PWM signal | PWM sinyaller ??k??lara g?nderiliyorch2.writeMicroseconds(ch_width_2);ch3.writeMicroseconds(ch_width_3);ch4.writeMicroseconds(ch_width_4);ch5.writeMicroseconds(ch_width_5);ch6.writeMicroseconds(ch_width_6);ch7.writeMicroseconds(ch_width_7);ch8.writeMicroseconds(ch_width_8);

} 

d13ffcae-b841-11ed-a826-dac502259ad0.png

d177f618-b841-11ed-a826-dac502259ad0.png

9V穩壓器:

1 x7809三級穩壓管

1 x1uF微法電容

1 x10uF微法電容

2 x100nf納法電容

若干:PCB板、電線

d1abe108-b841-11ed-a826-dac502259ad0.png

5V穩壓器:

1 x7805三級穩壓管

1 x1uF微法電容

1 x10uF微法電容

2 x100nf納法電容

若干:PCB板、電線

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

    關注

    18

    文章

    837

    瀏覽量

    66125
  • DIY
    DIY
    +關注

    關注

    176

    文章

    887

    瀏覽量

    348617
  • nRF24L01
    +關注

    關注

    17

    文章

    330

    瀏覽量

    69475
  • 2.4GHz
    +關注

    關注

    0

    文章

    45

    瀏覽量

    17890
  • Arduino
    +關注

    關注

    188

    文章

    6469

    瀏覽量

    187070
收藏 人收藏

    評論

    相關推薦

    nRFready?2.4GHz 射頻智能遙控器參考設計

    外圍設備,這種無線和協議的組合提供帶寬,延遲和共存性能,無縫支持所有nRFready?射頻智能遙控器的先進功能,即使在最具挑戰性的2.4GHz的操作環境(例如,附近有其它的Wi - Fi和藍牙
    發表于 03-24 10:09

    nRFready?2.4GHz 射頻智能遙控器參考設計

    外圍設備,這種無線和協議的組合提供帶寬,延遲和共存性能,無縫支持所有nRFready?射頻智能遙控器的先進功能,即使在最具挑戰性的2.4GHz的操作環境(例如,附近有其它的Wi - Fi和藍牙
    發表于 03-24 12:53

    2.4GHz 無線VISTA遙控器實驗開發系統

    attach://167141.pdfattach://167141.pdf為了便于用戶開發應用先進的Nordic Flash SOC無線芯片,迅通科技提供2.4GHz 無線VISTA遙控器
    發表于 11-04 09:31

    家電常用2.4G遙控器方案

    `睿訊電子提供的2.4G遙控器方案已經在市場上推廣應用達5年之久,也是國內最早從事普及型2.4G遙控器的方案商,我們可提供全系列數字RF遙控器
    發表于 11-11 15:43

    基于STM32的開源微型四軸飛行之傳感航模遙控器

    航模遙控器常見的無線遙控按照使用技術不同,主要有紅外遙控2.4G遙控。紅外
    發表于 04-10 17:22

    2.4GHz無線射頻芯片A7105應用

    2.4GHz無線射頻芯片A7105應用...本文進行了室內照明系統的無線遙控研究,采用2.4GHz無線
    發表于 02-29 16:55

    遙控器設置方法_萬遙控器代碼

    電視是每個家庭必不可少的家用電器,所以我們在使用遙控器的時間也會比較多。但如果遙控器換了怎么辦,很多人都會想到配一個萬遙控器,那么萬
    發表于 09-14 18:08 ?18.8w次閱讀
    萬<b class='flag-5'>能</b><b class='flag-5'>遙控器</b>設置方法_萬<b class='flag-5'>能</b><b class='flag-5'>遙控器</b>代碼

    一文弄懂無線遙控器

    相信大家對于無線遙控器都有著自己的認知,認為無線遙控器就是我們家用的電視啊、空調啊的遙控器嗎?是的,這些當然是
    發表于 11-14 09:18 ?9141次閱讀

    2.4G遙控器解決方案

    日常生活當中我們常用的遙控器就是無線紅外遙控器,這種遙控器成本低,實用性也強,不好的地方就是不能隨便轉換角度遙控,也不能遮擋。但
    的頭像 發表于 12-01 16:45 ?4645次閱讀

    2.4G遙控器方案開發,無需指向也可以進行遙控

    相比于傳統的紅外線式遙控器無線2.4g遙控器擺脫了指向性的問題,我們可以在屋內任何位置以及任何角度來使用遙控器操作設備而不用擔心設備無法接
    的頭像 發表于 12-08 13:03 ?2305次閱讀
    <b class='flag-5'>2.4</b>G<b class='flag-5'>遙控器</b>方案開發,無需指向也可以進行<b class='flag-5'>遙控</b>

    宇凡微2.4G遙控器方案開發,靈活控制無需指向

    日常生活當中我們常用的遙控器就是無線紅外遙控器,這種遙控器成本低,實用性也強,不好的地方就是不能隨便轉換角度遙控,也不能遮擋。但
    的頭像 發表于 08-01 11:28 ?889次閱讀

    一種使用2.4GHz頻段的無線遙控器方案開發

    2.4G遙控器是一種使用2.4GHz頻段的無線遙控器,常用于遙控玩具、航模和家電等電子設備上。
    的頭像 發表于 01-11 17:22 ?1396次閱讀

    2.4G無線遙控器方案開發,穩定性強,可用于多種應用

    2.4G遙控器是一種使用2.4GHz頻段的無線遙控器,常用于遙控玩具、航模和家電等電子設備上。相
    的頭像 發表于 01-18 15:44 ?2459次閱讀

    應用在機頂盒遙控器中的2.4GHz無線芯片

    機頂盒遙控器是用于控制機頂盒,進而控制電視機的遙控器。以機頂盒遙控器為例,其遙控器按鈕由前后兩部分組成,前一部分按鈕是用來代替電視機遙控器
    的頭像 發表于 02-29 09:48 ?880次閱讀
    應用在機頂盒<b class='flag-5'>遙控器</b>中的<b class='flag-5'>2.4GHz</b><b class='flag-5'>無線</b>芯片

    2.4GHz ISM射頻前端芯片GC1103在無線遙控玩具中的應用

    2.4GHz ISM射頻前端芯片GC1103在無線遙控玩具中的應用
    的頭像 發表于 05-23 09:54 ?598次閱讀
    <b class='flag-5'>2.4GHz</b> ISM射頻前端芯片GC1103在<b class='flag-5'>無線</b><b class='flag-5'>遙控</b>玩具中的應用
    主站蜘蛛池模板: 四虎国产在线| 韩剧天堂| 国产一区二区三区不卡观| 天天舔天天干天天操| hd性欧美| 色5月婷婷| 岛国毛片在线观看| 欧美一二| 欧美在线视频7777kkkk| 美女扒开尿囗给男人玩的动图 | 色视频观看| 夜色成人| 人人澡 人人澡 人人看| 欧美日本一道免费一区三区| 欧美 在线播放| 免费国产综合视频在线看| 成人国产三级精品| 国产专区青青草原亚洲| www.色涩涩.com| 九九热在线免费视频| 毛片123| 免费特黄视频| 亚洲色图综合图区| 成年片免费网址网站| 国产在线h| 欧美一区二区三区性| 人人搞人人干| 亚洲高清免费视频| 一级大片免费观看| 男人的j桶女人的j视频| 国产一区二区三区在线观看视频 | 天天操2023| 淫性视频| 亚洲欧美圣爱天天综合| 男男宿舍高h炒肉bl| 狠狠色丁香久久婷婷综合丁香| 51视频在线观看免费国产| 日本免费色网站| 久久精品国产亚洲片| 色妞导航| 久久99精品福利久久久|