Arama butonu
Bu konudaki kullanıcılar: 1 misafir, 1 mobil kullanıcı
2
Cevap
301
Tıklama
0
Öne Çıkarma
NRF24L01 Veri Aktarım Sorunu
R
5 yıl
Binbaşı

if (digitalRead(buton1) == HIGH)
{
mesaj[0] = 11;
radio.write(mesaj, 1);
}

"button1" deki kodunuzu yukarıdaki gibi düzenlerseniz, sorun ortadan kalkacaktır.



A
5 yıl
Er
Konu Sahibi

İyi günler nrf24l01 ile veri aktarımı yapmaya çalışıyorum. Yaşadığım sıkıntı mesaj[0] ile aynı anda 2 veriyi gönderebiliyorum ama birini mesaj[0] diğerini mesaj[1] ile göndermeye çalıştığımda mesaj[0]'da sıkıntı çıkmıyor. mesaj[1] gönderdiğimde tüm iletişim kesiliyor kaçırdığım nokta neresi acaba ?

=AZXzlUvk-fAmJdw7wrGjAfKjV26vwJb14RPOJ1FrcjCpvU9_Y52OEO4sJooSnh6lRfGNOvDAn-SCtQxkIht4KKCcmDUeRK_erOc4X1oAh_DbL9p6R0CMVpOF5iofB6VqCIDGQ6V2iYkd7d3TcbG9ecux2nKiztGiJDKEF98-zjMy-Q&amp;__tn__=-UK-R]#include <SPI.h>
=AZXzlUvk-fAmJdw7wrGjAfKjV26vwJb14RPOJ1FrcjCpvU9_Y52OEO4sJooSnh6lRfGNOvDAn-SCtQxkIht4KKCcmDUeRK_erOc4X1oAh_DbL9p6R0CMVpOF5iofB6VqCIDGQ6V2iYkd7d3TcbG9ecux2nKiztGiJDKEF98-zjMy-Q&amp;__tn__=-UK-R]#include <nRF24L01.h>
=AZXzlUvk-fAmJdw7wrGjAfKjV26vwJb14RPOJ1FrcjCpvU9_Y52OEO4sJooSnh6lRfGNOvDAn-SCtQxkIht4KKCcmDUeRK_erOc4X1oAh_DbL9p6R0CMVpOF5iofB6VqCIDGQ6V2iYkd7d3TcbG9ecux2nKiztGiJDKEF98-zjMy-Q&amp;__tn__=-UK-R]#include <RF24.h>
int mesaj[2];
int buton = 7;
int buton1 = 6;
RF24 radio(10, 9);
const byte address[6] = "00001";
void setup()
{
radio.begin();
radio.openWritingPipe(address);
pinMode(buton, INPUT);
pinMode(buton1, INPUT);
radio.stopListening();
}
void loop()
{
if (digitalRead(buton) == HIGH)
{
mesaj[0] = 10;
radio.write(mesaj, 1);
}
if (digitalRead(buton1) == HIGH)
{
mesaj[1] = 11;
radio.write(mesaj, 1);
}
}

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



A
5 yıl
Er
Konu Sahibi

Kodu şuan güzel çalışıyor. Kendi Projeme göre tasarlamam bitmedi ama arayan arkadaşlar için çok fazla türkçe kaynak yok burada dursun belki birine lazım olur. Fazlalık tanımlamalar olabilir içinde dediğim gibi kendi projeme göre ekledim onları. Şuanki haliyle 1 potansiyometre ve 2 butonun durumunu karşıya aktarıyor.


VERİCİ KODU

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
RF24 radio(10,9); // CE, CSN
const byte address[6] = "00001";
char xyData[32] = "";
int joystick[3];
int buton = 7;
int button = 6;
boolean buton1 = 0;
boolean buton2 = 0;

void setup() {
 Serial.begin(9600);
 radio.begin();
 radio.openWritingPipe(address);
 radio.setPALevel(RF24_PA_MAX);
 radio.stopListening();
 pinMode(buton, INPUT);
}
void loop() {
 joystick[1] = analogRead(A0);
 buton1 = digitalRead(buton);
 buton2 = digitalRead(button);
 if(buton1 == HIGH)
 {
  joystick[0]= buton1;
 }else if(buton1 == LOW)
 {
 joystick[0]= buton1;
 }
 if(buton2 == HIGH)
 {
  joystick[2]= buton2;
 }else if(buton2 == LOW)
 {
 joystick[2]= buton2;
 }
  radio.write( joystick, sizeof(joystick) );
 delay(100);
 }


ALICI KODU



#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#include <Servo.h>
Servo motor;

 
RF24 radio(8,9); // CE, CSN
const byte address[6] = "00001";
char receivedData[32] = "";
int xAxis, yAxis, zAxis;
int motorSpeedA = 0;
int motorSpeedB = 0;
int joystick[3];
boolean buton1 = 0; 
boolean buton2 = 0; 
int deger;
int derece;

int led = 2;
int led1 = 3;

void setup() {
 pinMode(led, OUTPUT);
 pinMode(led1, OUTPUT);
 Serial.begin(9600);
 radio.begin();
 radio.openReadingPipe(0, address);
 radio.setPALevel(RF24_PA_MAX);
 radio.startListening();
 motor.attach(5);
}
void loop() {
 if (radio.available()) {  
   
  radio.read( joystick, sizeof(joystick) );
  radio.read(&receivedData, sizeof(receivedData));
  radio.read(&buton1, sizeof(buton1));  
  radio.read(&buton2, sizeof(buton2)); 
  xAxis = joystick[1];
  yAxis = joystick[0];
  zAxis = joystick[2];
  Serial.println(xAxis);
  Serial.println(yAxis);
  Serial.println(zAxis);
 deger = xAxis;
 derece = map(deger, 0,1023,0,180);
 motor.write(derece);


if(yAxis == 1)
{
digitalWrite(2, HIGH);
}
else
{
digitalWrite(2, LOW);
}
delay(5);
if(zAxis == 1)
{
digitalWrite(3, HIGH);
}
else
{
digitalWrite(3, LOW);
}
delay(5);
}
}





< Bu mesaj bu kişi tarafından değiştirildi avsarrr -- 15 Ekim 2020; 0:7:26 >

DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.