Şimdi Ara

NRF24L01 Veri Aktarım Sorunu

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
4
Cevap
0
Favori
331
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
Öne Çıkar
0 oy
Sayfa: 1
Giriş
Mesaj
  • İ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 ?


    #include <SPI.h>

    #include <nRF24L01.h>

    #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);

    }

    }




    _____________________________




  • if (digitalRead(buton1) == HIGH)

    {

    mesaj[0] = 11;

    radio.write(mesaj, 1);

    }


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

    _____________________________
  • 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 >
    _____________________________




  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
    
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.