
Wiring používam taký, aký je písaný pri knižnici podľa každej. Mávajú len iné piny pre CE a CSN. Vďaka!
Kód: Vybrat vše
//uno old
#include <SPI.h>
#include "RF24.h"
#define CE 7
#define CS 8
RF24 nRF(CE, CS);
byte adresaunor3[]= "unor3";
byte adresaunoold[]= "unoold";
void setup() {
Serial.begin(115200);
nRF.begin();
nRF.setPALevel(RF24_PA_LOW);
nRF.openWritingPipe(adresaunoold);
nRF.openReadingPipe(1,adresaunor3);
}
void loop() {
delay(100);
nRF.startListening();
if ( nRF.available()) {
String slovo;
String prijem = "Bratislava";
while (nRF.available()) {
nRF.read(&slovo, sizeof(slovo));
Serial.println("Prijal som: ");
Serial.println(slovo);
}
delay(100);
nRF.stopListening();
nRF.write(&prijem, sizeof(prijem));
Serial.println("Odoslal som: ");
Serial.println(prijem);
delay(100);
}
}
Kód: Vybrat vše
//uno old
#include <SPI.h>
#include "RF24.h"
#define CE 7
#define CS 8
RF24 nRF(CE, CS);
byte adresaunor3[]= "unor3";
byte adresaunoold[]= "unoold";
void setup() {
Serial.begin(115200);
nRF.begin();
nRF.setPALevel(RF24_PA_LOW);
nRF.openWritingPipe(adresaunor3);
nRF.openReadingPipe(1,adresaunoold);
}
void loop() {
delay(100);
nRF.startListening();
if ( nRF.available()) {
String slovo = "Praha";
String prijem;
while (nRF.available()) {
nRF.read(&prijem, sizeof(prijem));
Serial.println("Prijal som: ");
Serial.println(prijem);
}
delay(100);
nRF.stopListening();
nRF.write(&slovo, sizeof(slovo));
Serial.println("Odoslal som: ");
Serial.println(slovo);
delay(100);
}
}
Kód: Vybrat vše
// nRF24L01 vysílač
// připojení knihoven
#include <SPI.h>
#include "RF24.h"
// nastavení propojovacích pinů
#define CE 2
#define CS 15
// inicializace nRF s piny CE a CS
RF24 nRF(CE, CS);
// nastavení adres pro přijímač a vysílač,
// musí být nastaveny stejně v obou programech!
byte adresaPrijimac[]= "prijimac00";
byte adresaVysilac[]= "vysilac00";
void setup() {
// komunikace přes sériovou linku rychlostí 9600 baud
Serial.begin(9600);
// zapnutí komunikace nRF modulu
nRF.begin();
nRF.setDataRate( RF24_250KBPS );
// nastavení výkonu nRF modulu,
// možnosti jsou RF24_PA_MIN, RF24_PA_LOW, RF24_PA_HIGH and RF24_PA_MAX,
// pro HIGH a MAX je nutný externí 3,3V zdroj
nRF.setPALevel(RF24_PA_HIGH);
// nastavení zapisovacího a čtecího kanálu
nRF.openWritingPipe(adresaVysilac);
nRF.openReadingPipe(1,adresaPrijimac);
// začátek příjmu dat
nRF.startListening();
}
void loop() {
// for smyčka pro postupné odeslání
// hodnot 0 až 3 pro načtení všech dat
// z přijímače
for (int i=0; i < 4; i++ ) {
// ukončení příjmu dat
nRF.stopListening();
// vytisknutí aktuální volby po sériové lince
Serial.print("Posilam volbu ");
Serial.println(i);
// uložení startovního času komunikace
unsigned long casZacatek = micros();
// odeslání aktuální volby, v případě selhání
// vytištění chybové hlášky na sériovou linku
if (!nRF.write( &i, sizeof(i) )){
Serial.println("Chyba při odeslání!");
}
nRF.startListening();
unsigned long casCekaniOdezvy = micros();
boolean timeout = false;
while ( ! nRF.available() ){
if (micros() - casCekaniOdezvy > 200000 ){
timeout = true;
break;
}
}
if ( timeout ){
Serial.println("Chyba při prijmu, vyprseni casu na odezvu!");
}
else{
unsigned long prijataData;
nRF.read( &prijataData, sizeof(prijataData) );
unsigned long casKonec = micros();
Serial.print("Odeslana volba: ");
Serial.print(i);
Serial.print(", prijata data: ");
Serial.println(prijataData);
Serial.print("Delka spojeni: ");
Serial.print(casKonec - casZacatek);
Serial.println(" mikrosekund.");
}
delay(200);
}
}
Kód: Vybrat vše
// nRF24L01 přijímač
#include <SPI.h>
#include "RF24.h"
int prijem;
const int buzzer = 5;
#define CE 2
#define CS 15
RF24 nRF(CE, CS);
byte adresaPrijimac[]= "prijimac00";
byte adresaVysilac[]= "vysilac00";
void setup() {
Serial.begin(9600);
pinMode(buzzer, OUTPUT);
nRF.begin();
nRF.setDataRate( RF24_250KBPS );
nRF.setPALevel(RF24_PA_HIGH);
nRF.openWritingPipe(adresaPrijimac);
nRF.openReadingPipe(1,adresaVysilac);
nRF.startListening();
}
void loop() {
unsigned long odezva;
if( nRF.available()){
// čekání na příjem dat
while (nRF.available()) {
nRF.read( &prijem, sizeof(prijem) );
}
Serial.print("Prijata volba: ");
Serial.print(prijem);
switch( prijem ) {
case 1:
odezva = millis();
tone(buzzer, 50, 500);
break;
case 2:
odezva = millis()/1000;
break;
case 3:
odezva = micros();
break;
default:
odezva = 0;
break;
}
nRF.stopListening();
nRF.write( &odezva, sizeof(odezva) );
nRF.startListening();
}
}
Uživatelé prohlížející si toto fórum: Semrush [Bot] a 1 host