Close

Arduino Nano vs. NRF24l01

Úvodní stránka Fórum Hardware Arduino Arduino Nano vs. NRF24l01

  • Toto téma obsahuje celkem 0 odpovědí. Do diskuze (1 diskutující) se naposledy zapojil uživatel GabrielM a poslední změna proběhla před 8 roky a 8 měsíci.
Aktuálně je na stránce zobrazen 1 příspěvek (celkem z 1)
  • Autor
    Příspěvky
  • #4087
    GabrielM
    Účastník

    Zdravím všechny,
    po vyzkoušení několik jednoduchých funkcí jako je ovládání servomotorů, komunikace po I2C a pár dalších jsem se dostal k bezdrátovým modulům NRF24l01. 4etl jsem několik tutoriálů, jak tento bezdrátový modul připojit, ale zatím se mi to nepodařilo ve smyslu, že nějaká data odejdou, ale po prvním přijetí dat mi bezdrátový modul neustále vrací „přijaté“ hodnoty, které s odeslanou hodnotou nemají nic společného, vypisuje to samé nuly. Tady uvádím zapojení a kódy:

    Zapojení je:
    1 – GND
    2 – 3V3 (přímo z arduina nano, doplněno o kapacitu)
    3 – CE – D9
    4 – CSN – D10
    5 – SCK – D13
    6 – MOSI – D11
    7 – MISO – D12
    8 – IRQ – nepřipojeno

    Kód Master:

    #include <SPI.h>
    #include <Mirf.h>
    #include <nRF24L01.h>
    #include <MirfHardwareSpiDriver.h>

    #define CE_PIN 9
    #define CSN_PIN 10

    void setup() {
    Wire.begin();
    delay(200);
    Serial.begin(9600); // RF24
    Mirf.spi = &MirfHardwareSpi;
    Mirf.cePin = CE_PIN;
    Mirf.csnPin = CSN_PIN;
    Mirf.init();
    Mirf.setTADDR((byte *)“TX_01″); // name the receiving channel – must match tranmitter setting!
    Mirf.setRADDR((byte *)“TX_02″); // name the receiving channel – must match tranmitter setting!
    Mirf.payload = 5; // number of transmitted bytes
    Mirf.channel = 90; // channel 90 as it is outside of WLAN bands , channels used by wireless surveillance cameras
    Mirf.config(); //config the device
    Mirf.configRegister(RF_SETUP,0x06); // Set 1MHz data rate – this increases the range slightly

    Serial.print(„Ready!“);
    }

    void loop() {
    Mirf.send((byte*)“AHOJ“);
    while(Mirf.isSending());
    delay(1000);
    }

    Kód pro slave:

    #include <SPI.h>
    #include <Mirf.h>
    #include <nRF24L01.h>
    #include <MirfHardwareSpiDriver.h>

    #define CE_PIN 9
    #define CSN_PIN 10

    void setup() {
    pinMode (LED, OUTPUT); // Define the LED pin as Output

    Serial.begin(9600);
    delay(1000);
    Mirf.spi = &MirfHardwareSpi;
    Mirf.cePin = CE_PIN;
    Mirf.csnPin = CSN_PIN;
    delay(10);
    Mirf.init();
    Mirf.setTADDR((byte *)“TX_01″); // name the receiving channel – must match tranmitter setting!
    Mirf.setRADDR((byte *)“TX_02″); // name the receiving channel – must match tranmitter setting!
    Mirf.payload = 5; // number of transmitted bytes
    Mirf.channel = 90; // channel 90 as it is outside of WLAN bands , channels used by wireless surveillance cameras
    Mirf.config(); //config the device
    Mirf.configRegister(RF_SETUP,0x06); // Set 1MHz data rate – this increases the range slightly

    Serial.println(„Nrf24L01 Receiver Started“);
    }

    void loop() {
    byte data[Mirf.payload];

    if(Mirf.dataReady()){
    Mirf.getData((byte*)&data);

    Serial.print(data[0]);
    Serial.print(data[1]);
    Serial.print(data[2]);
    Serial.println(data[3]);
    }
    }

Aktuálně je na stránce zobrazen 1 příspěvek (celkem z 1)
  • Pro reakci na toto téma se musíte přihlásit.