Kod odbiornika:
Kod: Zaznacz cały
#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"
int msg[1];
RF24 radio(9,10);
//const uint64_t pipe = 0xE8E8F0F0E1LL;
const uint64_t pipe = 0x1CF8361637LL;
int LED1 = 3;
void setup()
{
Serial.begin(9600);
radio.begin();
radio.openReadingPipe(1,pipe);
radio.startListening();
pinMode(LED1, OUTPUT);
}
void loop()
{
if (radio.available())
{
bool done = false;
while (!done){
done = radio.read(msg, 1);
Serial.println(msg[0]);
if (msg[0] == 0)
{
delay(10);
digitalWrite(LED1, HIGH);
}
else {digitalWrite(LED1, LOW);
}
delay(10);}}
else
{
Serial.println("Radio nie dostępne");
}
}
Kod: Zaznacz cały
#include <SPI.h> //dodaj obsługę biblioteki SPI
#include <nRF24L01.h> //dodaj bibliotekę obsługującą moduł
#include <RF24.h> //dodaj bibliotekę główną modułów RF24
const uint64_t pipe = 0x1CF8361637LL; //kod kanału
RF24 radio(9, 10); //tworzymy instancje komunikacji
int pot[1];
int zmienna =0; //utwórz tablicę jednoelementową o nazwie pot
void setup()
{
pinMode(5,INPUT); //ustaw potencjometr jako wejście
radio.begin(); //uruchom moduł
radio.setDataRate(RF24_2MBPS); //ustaw prędkość transmisji na 2Mb/s
radio.setPALevel(RF24_PA_HIGH); //ustaw wzmocnienie modułu radiowego na wysokie
radio.openWritingPipe(pipe); //rozpocznij transmisję
}
void loop()
{
pot[0]= zmienna; //przypisz pierwszemu elementowi tablicy (pierwszej zmiennej) wartość z ADC
// ewentualnie pot[0] = digitalRead(5);
radio.write(pot, sizeof(pot)); //wyslij zmienną pot z odpowiadającą jej długością
}
Kod: Zaznacz cały
if (radio.available())
{
bool done = false;
while (!done){
done = radio.read(msg, 1);
Serial.println(msg[0]);
if (msg[0] == 0)
{
delay(10);
digitalWrite(LED1, HIGH);
}
Jak porusza się kablami to czasem pokazuje się 0 a czasem 255. Czy ktoś wie w czym jest problem? Wystarczy mi program który ciągle wysyła wiadomość którą mogę zmienić.
EDIT: Serial wygląda mniej więcej tak:
Radio nie dostępne
Radio nie dostępne
Radio nie dostępne
Radio nie dostępne
255
Radio nie dostępne
0
0
0
0
0
0
0
0