07-11-2021, 16:30
Witam
Chcialbym zrobic prosty nadajnik i odbiornik na dwoch nrf24l01.
Mam podlaczone dwa Joye oraz dwa buttony, niby wszystko dziala poza malym ale...
Po wybraniu jakiejkowiek opcji, mam diode led na odbiorniku podlaczona na test,
lecz nie swieci sie ciag,ym swiatlem lecz mruga...moze ktos pomoc.
Nadajnik:
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#define CE_PIN 7
#define CSN_PIN 8
#define Lx_axis A1
#define Ly_axis A0
#define Px_axis A3
#define Py_axis A2
#define button1 2
#define button2 3
int sensorValueLX = 0;
int sensorValueLY = 0;
int sensorValuePX = 0;
int sensorValuePY = 0;
const uint64_t pipe = 0xE8E8F0F0E1LL;
RF24 radio(CE_PIN, CSN_PIN);
int data[6];
void setup()
{
Serial.begin(115200);
radio.begin();
radio.setPALevel(RF24_PA_HIGH);
radio.openWritingPipe(pipe);
pinMode(button1, INPUT_PULLUP);
pinMode(button2, INPUT_PULLUP);
}
void loop()
{
sensorValueLX = analogRead(Lx_axis);
sensorValueLY = analogRead(Ly_axis);
sensorValuePX = analogRead(Px_axis);
sensorValuePY = analogRead(Py_axis);
if (sensorValueLX < 100)
{
sensorValueLX = 1;
}
if (sensorValueLX > 900)
{
sensorValueLX = 2;
}
if (sensorValuePX < 100)
{
sensorValuePX = 1;
}
if (sensorValuePX > 900)
{
sensorValuePX = 2;
}
if (sensorValueLY < 100)
{
sensorValueLY = 1;
}
if (sensorValueLY > 900)
{
sensorValueLY = 2;
}
if (sensorValuePY < 100)
{
sensorValuePY = 1;
}
if (sensorValuePY > 900)
{
sensorValuePY = 2;
}
delay(5);
data[0] = sensorValueLX;
data[1] = sensorValueLY;
data[2] = sensorValuePX;
data[3] = sensorValuePY;
data[4] = digitalRead(button1);
data[5] = digitalRead(button2);
radio.write( data, sizeof(data) );
}
Odbiornik:
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
RF24 radio(7, 8); // CE, CSN
const uint64_t pipe = 0xE8E8F0F0E1LL;
int data[6];
void setup() {
Serial.begin(115200);
pinMode(4, OUTPUT);
digitalWrite(4, LOW);
radio.begin();
radio.openReadingPipe(1, pipe);
radio.setPALevel(RF24_PA_HIGH);
radio.startListening();
}
void loop()
{
delay(5);
radio.read( data, sizeof(data));
/*
Serial.print(data[0]); // Lewy L i P
Serial.print(" ");
Serial.print(data[1]); // Lewy G i D
Serial.print(" ");
Serial.print(data[2]); // Prawy L i P
Serial.print(" ");
Serial.print(data[3]); // Prawy G i D
Serial.print(" ");
Serial.print(data[4]); // Button 2
Serial.print(" ");
Serial.println(data[5]); // Button 3
*/
if (data[4] == 1) {
digitalWrite(4, HIGH);
} else {
digitalWrite(4, LOW);
}
}
Chcialbym zrobic prosty nadajnik i odbiornik na dwoch nrf24l01.
Mam podlaczone dwa Joye oraz dwa buttony, niby wszystko dziala poza malym ale...
Po wybraniu jakiejkowiek opcji, mam diode led na odbiorniku podlaczona na test,
lecz nie swieci sie ciag,ym swiatlem lecz mruga...moze ktos pomoc.
Nadajnik:
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#define CE_PIN 7
#define CSN_PIN 8
#define Lx_axis A1
#define Ly_axis A0
#define Px_axis A3
#define Py_axis A2
#define button1 2
#define button2 3
int sensorValueLX = 0;
int sensorValueLY = 0;
int sensorValuePX = 0;
int sensorValuePY = 0;
const uint64_t pipe = 0xE8E8F0F0E1LL;
RF24 radio(CE_PIN, CSN_PIN);
int data[6];
void setup()
{
Serial.begin(115200);
radio.begin();
radio.setPALevel(RF24_PA_HIGH);
radio.openWritingPipe(pipe);
pinMode(button1, INPUT_PULLUP);
pinMode(button2, INPUT_PULLUP);
}
void loop()
{
sensorValueLX = analogRead(Lx_axis);
sensorValueLY = analogRead(Ly_axis);
sensorValuePX = analogRead(Px_axis);
sensorValuePY = analogRead(Py_axis);
if (sensorValueLX < 100)
{
sensorValueLX = 1;
}
if (sensorValueLX > 900)
{
sensorValueLX = 2;
}
if (sensorValuePX < 100)
{
sensorValuePX = 1;
}
if (sensorValuePX > 900)
{
sensorValuePX = 2;
}
if (sensorValueLY < 100)
{
sensorValueLY = 1;
}
if (sensorValueLY > 900)
{
sensorValueLY = 2;
}
if (sensorValuePY < 100)
{
sensorValuePY = 1;
}
if (sensorValuePY > 900)
{
sensorValuePY = 2;
}
delay(5);
data[0] = sensorValueLX;
data[1] = sensorValueLY;
data[2] = sensorValuePX;
data[3] = sensorValuePY;
data[4] = digitalRead(button1);
data[5] = digitalRead(button2);
radio.write( data, sizeof(data) );
}
Odbiornik:
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
RF24 radio(7, 8); // CE, CSN
const uint64_t pipe = 0xE8E8F0F0E1LL;
int data[6];
void setup() {
Serial.begin(115200);
pinMode(4, OUTPUT);
digitalWrite(4, LOW);
radio.begin();
radio.openReadingPipe(1, pipe);
radio.setPALevel(RF24_PA_HIGH);
radio.startListening();
}
void loop()
{
delay(5);
radio.read( data, sizeof(data));
/*
Serial.print(data[0]); // Lewy L i P
Serial.print(" ");
Serial.print(data[1]); // Lewy G i D
Serial.print(" ");
Serial.print(data[2]); // Prawy L i P
Serial.print(" ");
Serial.print(data[3]); // Prawy G i D
Serial.print(" ");
Serial.print(data[4]); // Button 2
Serial.print(" ");
Serial.println(data[5]); // Button 3
*/
if (data[4] == 1) {
digitalWrite(4, HIGH);
} else {
digitalWrite(4, LOW);
}
}