Arduino + nRF24L01: enkel dubbelriktad trådlös kommunikation (3 / 4 steg)
Steg 3: kod
Hämta RadioHead bibliotek och installera den.
Ladda upp denna kod till varje arduino styrelserna:
#include < SPI.h >
#include < RH_NRF24.h >
Singleton instans av drivrutinen för radio
RH_NRF24 nrf24;
int greenLed = 3;
int redLed = 4;
int knappen = 5;
void setup()
{
Serial.BEGIN(9600);
pinMode (greenLed, produktionen);
pinMode (redLed, produktionen);
pinMode (knapp, indata);
tag (!. Serial)
; vänta för seriell port att ansluta. Behövs för Leonardo endast
om (! nrf24.init())
Serial.println ("init misslyckades");
Standardvärden efter init är 2.402 GHz (kanal 2), 2Mbps, 0dBm
om (! nrf24.setChannel(1))
Serial.println ("setChannel misslyckades");
om (! nrf24.setRF (RH_NRF24::DataRate2Mbps, RH_NRF24::TransmitPower0dBm))
Serial.println ("setRF misslyckades");
}
void loop()
{
om (digitalRead(button)) {
knappen trycks, meddelande ska skickas, slå den gröna lysdioden på
digitalWrite (greenLed, hög);
Skicka ett meddelande
uint8_t data [] = "Aloha";
nrf24.send (data, sizeof(data));
nrf24.waitPacketSent();
digitalWrite (greenLed, låg);
} annat {
Vänta på ett meddelande
uint8_t buf [RH_NRF24_MAX_MESSAGE_LEN];
uint8_t len = sizeof(buf);
medan (nrf24.waitAvailableTimeout(200) & & nrf24.recv (buf, & len))
{
något mottogs, slå den högra lysdioden på
digitalWrite (redLed, hög);
}
digitalWrite (redLed, låg);
}
}