Jednoduchá komunikace nRF24L01
Úvodní stránka › Fórum › Vaše projekty › Arduino › Jednoduchá komunikace nRF24L01
Označeno štítky: NRF24L01
- Toto téma obsahuje celkem 11 odpovědí. Do diskuze (3 diskutující) se naposledy zapojil uživatel
Jerry a poslední změna proběhla před 8 roky a 11 měsíci.
-
AutorPříspěvky
-
2.12.2016 v 11:45 #9372
Jerry
ÚčastníkDobrý den
Jsem v podstatě začátečník. Potřeboval bych jednoduché zapojení a kód pro zapnutí a vypnutí led přes NRF24L01. Děkuji
10.12.2016 v 11:19 #9460Oldřich Horáček
SprávceZdravím Jardo, k NRF24L01 je toho na netu hodně. To je možná důvod, proč tady zatím nikdo neodpověděl. Doporučuji začít například tady:
a pak pokračovat volně dál až do chvíle, než vše zvládnete a bude vám to fungovat.
http://www.arduino8.cz/komunikujeme-bezdratove-s-nrf24l01-1-cast-zapojeni/
http://shanes.net/simple-nrf24l01-with-arduino-sketch-and-setup/
http://www.instructables.com/id/Wireless-Remote-Using-24-Ghz-NRF24L01-Simple-Tutor/
Pokud vám to funguje ale cítíte, že jste něco přeskočil, doporučuju stáhnout ebook zdarma o Arduinu a projít si i věci na kterých to celé stojí. Nebo si přes vánoce lehnout s naší knížkou 🙂
Hodně úspěchů s Arduinem!
Oldřich 🙂10.12.2016 v 12:48 #9461Jerry
ÚčastníkDěkuji
11.12.2016 v 20:17 #9473Jerry
ÚčastníkAhoj
V prvním příspěvku mi při kompilaci kódu pro RX na řádku „done = radio.read(msg, 1);“ vypisuje chybu. Nemůžu přijít na to ke to je.
Děkuji11.12.2016 v 22:14 #9481posjirka
Účastníkpředpokládám chyhu v knihovnách. Stáhni si ty z instructables.com
http://www.instructables.com/id/Wireless-Remote-Using-24-Ghz-NRF24L01-Simple-Tutor/?ALLSTEPS
a nainstaluj si je.
Někdy je na vině i samotné Arduino IDE a je třeba jej přeinstalovat nebo alespoň pročistit instalované knihovny.Podle ohlasů na istructable je na vině knihovna RF24 …
11.12.2016 v 22:45 #9484Jerry
Účastníkmám 1.6.12 tak nevím jestli je to špatně
11.12.2016 v 23:28 #948511.12.2016 v 23:31 #9487Jerry
Účastník#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
int msg[1];
RF24 radio(9,10);
const uint64_t pipe = 0xE8E8F0F0E1LL;
int LED1 = 3;void setup(void){
Serial.begin(9600);
radio.begin();
radio.openReadingPipe(1,pipe);
radio.startListening();
pinMode(LED1, OUTPUT);}void loop(void){
if (radio.available()){
bool done = false;
while (!done){
done = radio.read(msg, 1);
Serial.println(msg[0]);
if (msg[0] == 111){delay(10);digitalWrite(LED1, HIGH);}
else {digitalWrite(LED1, LOW);}
delay(10);}}
else{Serial.println(„No radio available“);}}12.12.2016 v 8:27 #9488posjirka
Účastníktak já už chybu našel a není tvoje 🙂
Nevím proč, ale používají radio.read() jako funkci s návratovou hodnotou ( done = …).
Tato funkce ale žádnou návrtotvou hodnotu nepodporuje a tudíž nemůže ani fungovat while …Ve výsledku zkus tuto verzi:
#include <SPI.h> #include <nRF24L01.h> #include <RF24.h> int msg[1]; RF24 radio(9,10); const uint64_t pipe = 0xE8E8F0F0E1LL; int LED1 = 3; void setup(void){ Serial.begin(9600); radio.begin(); radio.openReadingPipe(1,pipe); radio.startListening(); pinMode(LED1, OUTPUT); } void loop(void){ if(radio.available()){ //bool done = false; //while (!done){ while (radio.available()){ radio.read(msg, 1); Serial.println(msg[0]); if (msg[0] == 111){ delay(10); digitalWrite(LED1, HIGH); } else { digitalWrite(LED1, LOW); } delay(10); } } else { Serial.println("No radio available"); } }a pro vkládání kodu používej párové značky CODE (předposlední tlačítko při psaní odpovědi) jinka se ti to rozhází, přepíšou se ti dvojité úvozovky atd.
12.12.2016 v 22:36 #9513Jerry
ÚčastníkMyslím, že původní kód pro vysílač není úplný. Trochu jsem tápal (jako začátečník) a po úpravě to začalo fungovat. Před tím jsem musel měnit proměnnou msg 0 a 1
Takhle už to funguje#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
int msg[1];
RF24 radio(9,10);
const uint64_t pipe = 0xE8E8F0F0E1LL;
int SW1 = 7;void setup(void){
Serial.begin(9600);
radio.begin();
radio.openWritingPipe(pipe);}void loop(void){
if (digitalRead(SW1) == HIGH){
msg[0] = 111;
radio.write(msg, 1);}
else
radio.write(msg, 0);}12.12.2016 v 22:40 #9514Jerry
ÚčastníkUž to funguje
12.12.2016 v 22:56 #9515Jerry
Účastník -
AutorPříspěvky
- Pro reakci na toto téma se musíte přihlásit.
