BAĞLAN

Arduino İle NRF24L01 Rf Modül Kullanımı

  • Görüntüleme 13985
  • Kablosuz haberleşmede sıkça kullanılan modüllerden NRF24L01 Rf modül kullanımı hakkında bahsedeceğim.Bu modülün kullanımı kolay ve menzili gayet iyi olduğundan projelerinizde rahatlıkla kullanabilirsiniz.Ayrıca fiyatı da uygundur.Düşük güç tüketimi ve 2.4GHz frekans da çalışması bize avantaj sağlamaktadır.

    • NRF24L01 2.4GHz Transceiver Modül
    • Modülün pcb ve harici antenli modeli mevcuttur.Pcb modellerde menzil  250 m iken harici antenli modelinde menzil 1000 m’ye  kadar çıkabiliyor.
    • Modülü projenize göre çift yönlü haberleşme yaptırmak için hem alıcı hem verici olarak kullanabilirsiniz.
    • Modülün Pin Bağlantıları:

    Modül SPI protokolünü kullanarak haberleşmektedir.Bundan dolayı pin bağlantılarını arduino modelinin SPI pinlerine bakarak yapmalısınız.Örnek olarak arduino uno ile pin bağlantılarını gösterelim.

    nRF24L01  Arduino Uno
    VCC 3.3 V
    GND GND
    CS 7
    CE 8
    MOSI 11
    MISO 12
    SCK 13

    Kablosuz haberleşme yaparken modüllerden birini alıcı diğerini ise verici olarak ayarlamamız gerekiyor.İstenirse projenin durumuna göre bir modül hem alıcı hem de verici olarak da kullanılabilmektedir.Modülün alıcı veya verici durumunda olması kablo bağlantılarını değiştirmez.Bu bağlantılar tüm durumlar için aynıdır.

    Örnek Kod:

    Verici kodu:

    #include <SPI.h>
    #include <nRF24L01p.h>
     
    nRF24L01p verici(7,8);//CSN,CE
     
    void setup(){
     delay(150);
     Serial.begin(115200);
     SPI.begin();
     SPI.setBitOrder(MSBFIRST);
     verici.channel(90);
     verici.TXaddress("kontrol");
     verici.init();
    }
     
    String message;
     
    void loop(){
     if(Serial.available()>0){
     char character=Serial.read();
     if(character=='\n'){
     verici.txPL(message);
     verici.send(SLOW);
     message="";
     }else{
     message+=character;
     }
     }
    }

     

    Alıcı Kodu:

    #include <SPI.h>
    #include <nRF24L01p.h>
     
    nRF24L01p alici(7,8);//CSN,CE
     
    void setup(){
     delay(150);
     Serial.begin(115200);
     SPI.begin();
     SPI.setBitOrder(MSBFIRST);
     alici.channel(90);
     alici.RXaddress("kontrol");
     alici.init();
    }
     
    String message;
     
    void loop(){ 
     if(alici.available()){
     alici.read();
     alici.rxPL(message);
     Serial.println(message);
     message="";
     }
    }

    Fonksiyonların Açıklamaları:

    • Modülün nRF24L01p.h adında kütüphanesini buradan indirelim. >>nRF24L01p
    • Yazılımda öncelikle CE ve CSN pinlerini tanımlamamız gerekiyor.
    • nRF24L01p alici(7,8); >> Burdaki komutla 7.pin CSN, 8.pin CE pini olarak tanımlanmış.Bu fonksiyonda alıcı modül adına “alici” ismini verdik.
    • nRF24L01p verici(7,8); >> Burdaki komutla 7.pin CSN, 8.pin CE pini olarak tanımlanmış.Bu fonksiyonda verici modül adına “verici” ismini verdik.
    • SPI protokolü ile haberleştiği için SPI kütüphanesi eklenip  SPI.begin(); fonksiyonu setup’ın içine yazılarak haberleşme başlatılır.
    • alici.channel(90);>> Alıcı modülde setup’ın içinde tanımlanarak haberleşme kanal değerini 90 yaptık.Bu değer iki modülde de aynı değer olmalıdır.0 ile 125 arası değer yazılabilir.
    • verici.channel(90);>> Verici modülde setup’ın içinde tanımlanarak haberleşme kanal değerini 90 yaptık.Bu değer iki modülde de aynı değer olmalıdır.0 ile 125 arası değer yazılabilir.
    • alici.RXaddress(“kontrol”); >> Bu fonksiyon ile modülü alıcı olarak ayarladık ve adres ismine de “kontrol” adını verdik.
    • verici.TXaddress(“kontrol”);>>Bu fonksiyon ile de modülü verici olarak ayarladık ve adres ismine de “kontrol” adını verdik.
    • İki modülün de adres ismi ve haberleşme kanal değeri aynı olmalıdır.

    Önemli Not:Modüller arası haberleşme sağlanamıyorsa her iki modülün de vcc ve gnd pinleri arasına 3.3 uF ile 10 uF  arası değerde kondansatör yerleştirerek tekrar deneyiniz.

    Örnek Uygulama:

    Potansiyometre ile Kablosuz Servo Motor Kontolü

    RF24 Kütüphanesini buradan indirelim.

    Şekildeki alıcı ve verici devrelere bakarak gerekli bağlantıları yapabilirsiniz.

    Yazılım kısmında bir modülü alıcı diğer modülü de verici olarak tanımlayarak kablosuz olarak veri transferini gerçekleştireceğiz.

    Verici Yazılımı:

    #include <SPI.h>
    #include "RF24.h"
    int msg[1];
    //SCK -> 13//MISO -> 12//MOSI -> 11//CSN -> 7//CE -> 8
    RF24 radio(8,7);
    const uint64_t pipe = 0xE8E8F0F0E1LL; 
    int potpin = 0; 
    int val; 
    void setup(void){ 
     radio.begin();
     radio.openWritingPipe(pipe); 
    }
    void loop(void){ 
     val = analogRead(potpin); 
     val = map(val, 0, 1023, 0, 179); 
     msg[0] = val;
     radio.write(msg, 1);
    }
    

    Alıcı Yazılımı:

    #include <Servo.h> 
     #include <SPI.h>
     #include "RF24.h"
     Servo myservo; 
     //SCK -> 13//MISO -> 12//MOSI -> 11//CSN -> 7//CE -> 8
    RF24 radio(8,7);
     const uint64_t pipe = 0xE8E8F0F0E1LL; 
     int msg[1];
     void setup() 
     { 
     myservo.attach(9); 
     radio.begin();
     radio.openReadingPipe(1,pipe);
     radio.startListening(); 
     } 
     void loop() 
     { 
     if (radio.available()){
     bool done = false;
     while (!done){
     done = radio.read(msg, 1); 
     myservo.write (msg[0]);
     
     }
     }
     }
    User Rating: 5.0 (2 votes)
    Sending

    PAYLAŞ

    Sezgin GÜL

    Makine Mühendisi, Maker, Robotik Sistemler Uzmanı

    114 Yorum "Arduino İle NRF24L01 Rf Modül Kullanımı"

    1. halil
      30 Aralık 2016

      merhaba bu projeyi yapmaya çalışıyorum ama alıcı kodunda done hataveriyor sebebini söylermisiniz ?

      Cevapla
      • s_safak
        6 Ocak 2017

        Sorunu cozebildiniz mi bilemiyorum ama Setup altinda Serial.begin(9600); ekleyip done = satirinin ustune Serial.println(done); yazarak basit bir debug yapabilirsiniz. Cunku yukarida done bool olarak tanimlanmis. fakat anladigim kadari ile (kodu kullanmadigim icin bilemiyorum) radio.read(msg, 1) olarak farkli birsey set ediyor olabilir. Bu sekilde daha kolay cozum bulabilirsiniz.

        Cevapla
    2. Rıdvan Sevil
      15 Aralık 2016

      Merhaba; bu yöntem ile arduino mega üzerinden matlab&simulink ‘e sensör üzerinden sinyal gönderebilir miyim?

      Teşekkürler.

      Cevapla
      • s_safak
        6 Ocak 2017

        simulink serial uzerinden yada baska bir uygulama uzerinden veri alabiliyor ise mumkun.
        Bu sistem ile PC ye bagli serial porta gonderdiginiz verileri herhangi bir programlama dili ile okuyup simulink e anlayacagi mesajlari gonderebilirsiniz.

        Cevapla
    3. Rıdvan Sevil
      15 Aralık 2016

      Merhaba; bu sistemle arduino mega üzerinden matlab&simulink ‘e veri aktarabilir miyim?

      Teşekkürler.

      Cevapla
    4. mert çelebi
      12 Aralık 2016

      merhaba sezgin buna benzer bir proje üzerine çalışıyorum yapmak istediğim butona basıldığında servo 90 derece dönsün tekrar basıldığında 0 dereceye geri gelsin bir iki deneme yaptım fakat sonuç alamadım baştaki kalıp haberleşme programına nasıl bi eklenti yapmalıyım yardım edersen sevinirim.

      Cevapla
      • s_safak
        6 Ocak 2017

        verici tarafinda butona basiminizda sizin anlayacaginiz bir mesaj olusturabilirsiniz (RF_motor_turn) gibi. bu mesaji aliciya gonderip hangi yontem akliniza yatar ise o yontem ile gelen mesaji karsilastirip motora donme adimi islemini yaptirabilirsiniz. Servolarda kullanilan libraryler onemli. Kiminde basit komutlar ile donme saglarken en son detayli calisma yaptigim bir library de 0.1 tam tur 0.01 yarim tur 0.001 ceyrek tur mesajlari idi. Bunada dikkat etmeniz gerek.

        Cevapla
    5. aytug
      22 Kasım 2016

      Merhaba benim sorunum şu alıcı verisi olarak çalıştırıyorum sıkıntı yok fakat ben bir cihazı hem alıcı hem verici yapmak istiyorum. Yardımlarınızı bekliyorum.

      Cevapla
    6. .
      12 Kasım 2016

      pa antenli ile sıradan nrf arasında hiçbir kullanım farkı var mı?
      ben sorunsuz bir sekilde antensizi kullanıyorum ama antenli aynı devrede calısmıyor

      Cevapla
    7. Hamza sinal
      21 Ekim 2016

      Kardeşlerim agabi lerim bir ricada buluncam, bir pir hareket sensör ile iki adet nrf24lo1 arasında led di nasıl çalıştıra biliris kodu nasıl yaza biliris bilen varmı ( sinallanis@hotmail.com )

      Cevapla
    8. Ömer Bozdemir
      29 Eylül 2016

      Merhaba nrf24rl01 adaptörü olmadan kullanabilir miyiz nrf2rl01 i teşekkürler acil lütfen!

      Cevapla
    9. Oguzhan
      22 Haziran 2016

      Ben 2 servo ve
      1 motor kullanmak istiyorum
      Ne yapmaliyim

      Cevapla
    10. ayhan öztürk
      15 Haziran 2016

      hocam çok teşekkür ederim uzun zamandan beri uğraşıyordum bir türlü eşleşme sağlayamıyordum…sonunda önceki kütüphaneleri sildim verdiğin linkten indirdim. sadece her iki nrf24 ün vcc ile GND arası 47 uf lik kondansatör bağladım. kondansatör bağlı olmayınca çalışmıyor..HARCADIĞIN EMEK İÇİN TEŞEKKÜRLER…

      Cevapla
      • Sencer
        1 Eylül 2016

        Her yerde farklı değerlerde kondansatör söyleniyor, 2.2, 3.3, 10, 20, 100 uf lik kondansatörler bağladım, hiç biriyle çalıştıramadım. İki adet arduino var biri orjinal diğeri çin malı. Her ikisinde de çalışmıyor. Başka hiç bir işle uğraşamaz oldum şunu çalıştırana kadar.

        Cevapla
        • mete
          11 Ekim 2016

          bende faklı uno lar vardı çalışmadı , her ikisini aynı yapınca çalıştı

          Cevapla
    11. Ali
      15 Haziran 2016

      bir wireless module (Nrf24l01) takılı arduino uno ile bilgisayar arasında kablosuz veri aktarımı yapılabilir mi ? eğer yapılırsa nasıl olacağını anlatabilir misiniz ? alıcı arduino, verici pc olacak, ya da verici arduino alıcı pc olacak. wifi üzerinden. bu verileri okumak için de pc de c# programını kullanmayı düşünüyorum.

      Cevapla
    12. ERDEM
      3 Haziran 2016

      abi birden fazla değer okumak istiyorum nasıl değişiklikler yapmalıyım

      Cevapla
    13. Ibrahim
      1 Haziran 2016

      Selamın aleyküm
      Aynı projeye ek olarak pot un yanına PIR sensörü; servo nun yanına da Led bağlayarak aynı zamanda PIR ile Led i kontrol etmek istiyorum.
      Programı yazdım hata yok gibi ;
      Led yanıyor ama Servo yu kontrol edemiyorum.
      Nrf gnd ile Vcc arasinda 3,3 mikrofarad bağlı sorun nerde olabilir? TEŞEKKÜR EDERİM SIMDIDEN

      Cevapla
    14. EREN
      8 Mayıs 2016

      Verici kısım sinyal gönderiyor fakat alıcı kısım sinyali almıyor, kapasitede kullandık fakat sadece sinyal gönderiyor alıcı kısım bu bilgileri almıyor sebebi ne olabilir.Teşekkürler

      Cevapla
    15. qwerty123
      7 Mayıs 2016

      hocam servo kontrolünde sadece yazdığınız kodlar yeterli mi yukarıda bahsettiğiniz kütüphaneyi indirdikten sonra ne yapacağız ?

      Cevapla
      • Sezgin GÜL
        7 Mayıs 2016

        nrf kütüphanesi indirip arduinonun kütüphanesine ekleyin. servo kütüphanesi zaten mevcut. bu kadar.

        Cevapla
    16. Yusif
      23 Nisan 2016

      merhaba bende sindaki kodda bir probem cikiyor yardimci ola bilirmisiniz?

      Arduino: 1.6.8 (Windows 10), Board: “Arduino Nano, ATmega328”

      C:UsersAyselDocumentsArduinoalici2alici2.ino: In function ‘void loop()’:

      alici2:21: error: void value not ignored as it ought to be

      done = radio.read(msg, 1);

      ^

      exit status 1
      void value not ignored as it ought to be

      This report would have more information with
      “Show verbose output during compilation”
      option enabled in File -> Preferences.

      Cevapla
    17. ENES AYGÜN
      22 Nisan 2016

      meraba hocam ben nrf ile iki verici bi alici sistemi yapmak istiyorum ve hazır kodların birçoğunu denedim yani şöyle söylemeliyim bir göndericide bi buton diğer göndericide bi buton alıcıda ise bir led bu iki butonunda görevi o ledi yakmak ben bunu bir gönderi bir alıcı şeklinde yaptığımda gayet güzel çalışırken iki gönderici bir alıcı yaptığımda sistem sapıtıyor led yan-sön yapıyor. bu arada iki göndericininde kodları birebir aynı ne yapmamı önerirsiniz.

      Cevapla
      • Teknik A.
        6 Ekim 2016

        2.ci göndericinin gönderdiği mesajı değiştir ve ayrı mesajara aynı görevi yukle

        Cevapla
    18. AHMET
      21 Nisan 2016

      Merhaba nrf24l01 kullanarak haberleşme yapmak istiyorum. iki adet mevcut. birine uno birine mega bağlayarak alıcı ve verici kodlarını attım. ancak mesela vericiden ‘selam’ yazdırıp alıcıdan görmek istiyorum. nasıl yapılacağını anlamadım. daha sonrasında vericiye termometre bağlayıp uzaktan okuma yaptıracağım.

      Cevapla
    19. ismail
      21 Nisan 2016

      merhabalar benim isteğim arduinoma bağlı sensörün verilerini kablosuz olarak bilgisayarımda görmek .
      daha önceden seri port için bilgisayarda bir arayüz programında görmüş olduğum verileri şimdi kablosuz görmek istiyorum ne yapmam gerekiyor.

      Cevapla
    20. faisal shaikh
      20 Nisan 2016

      i need a code of 2 pot and 2 servo serial communication between two ardunio via bluetooth or nrf24l01 module plzzzzz help me

      Cevapla
    21. Eren
      20 Nisan 2016

      Hocam 2 arduino uno yu , nrf24l01 ile haberleştirmeye çalışıyoruz. Alıcı olarak kullandığımız arduinonun RX ışığı yanıyor fakat verici olarak kullandığımız arduino nun yazılımı sırasında TX ışığı anlık yanıyor ve sönüyor. 2 farklı bilgisayar kullanıyoruz ve kapasiteleride kullandık fakat bi değişiklik olmadı. Sorun nedir acaba teşekkürler.

      Cevapla
    22. Halit B
      14 Nisan 2016

      Merhaba.
      Arduino megaya nrf24l01 ve as kart modülü bağlamam gerekiyor ve ayni anda veri almam gerekiyor. Fakat nrf24l01 de kullandığım pinler ile ad kart modülünde kullandığım pinler ayni yani ikisindede MOSİ MİSO CSN ve SS pinlerini kullanıyorum ad kart modülünü kullanmadan nrfden veri aliyorum veya nrf olmadan sd karttan veri alabiliyorum fakat ikisini ayni anda kullandigimda ne sd karttan veri alabiliyorum nede nrfden. Bunun icin bi çözümünüz varmi ?
      Teşekkür ederim.

      Cevapla
      • Sezgin GÜL
        14 Nisan 2016

        Normalde spı ile haberleşen iki farklı modül aynı spı pinlerinde çalışır. fakat bazı kütüphanelerde çakışma olduğundan çalışmıyor.

        Cevapla
        • Halit B
          14 Nisan 2016

          nasıl yani kutuphanelerdekı cakısmayı bıraz acarmısın. SPI ın kendı kutuphanesınde mı yoksa nrf24l01 ve sd kartın kutuphanesınde tam olarak anlamadım?

          Cevapla
    23. Ali Çetinkaya
      9 Nisan 2016

      Merhaba hocam,

      NRF24L01 kullanılarak çift yönlü haberleşmenin nasıl yapılacağı ile ilgili bilginiz var mı?

      Cevapla
    24. Ahmet SAĞIR
      2 Nisan 2016

      Merhaba

      Arduino nano ile headtracker yaptım. Ancak bunu wireless olarak yapmak istiyorum. O zaman burda mantıkla hareket edersek 2 adet nano’ya mı ihtiyacım olacak.

      RF ile yapmak mümkün değil mi?

      Cevapla
    25. Ahmet
      27 Mart 2016

      Arduinoları hem nrf24l01 ile haberleştirirken hemde C# arayüzü kullanarak komut vermek istiyorum. Bu durumda iki seri haberleşme olacak. Arduinolar arasında ve C#ile arduino arasında. Bu durumda sıkıntı çıkarmı.

      Cevapla
    26. Adem
      24 Mart 2016

      Hocam kolay gelsin;
      Kodu projemde kullandığımda aynen şöyle bir hata mesajı alıyorum
      ” void value not ignored as it ought to be ” ve bir türlü çözemedim durumu.
      İşin garip kısmı sadece sizin paylaşmış olduğunuz kodu yüklemeye çalışıyorum Arduino’ya yine aynı hatayı alıyorum

      Cevapla
      • Sezgin GÜL
        24 Mart 2016

        Kodların hepsi sorunsuz derleniyor. Arduino programınızda sorun olabilir. Başka kütüphaneler eklemiş isen bazı kütüphaneler birbirleriyle aynı kodda derlenemiyor.

        Cevapla
    27. Süleyman Hilmi Çamdalı
      18 Mart 2016

      Öncelikle böyle faydalı bir yazı için teşekkür ederim.Bir arduinoya 2 adet NRF24L01 bağlamak mümkün mü?

      Cevapla
      • Sezgin GÜL
        18 Mart 2016

        SPI haberleşme yaptığından arduino larda standart pinler bulunur ve bu pinlerden ikişer tane vardır. Yazılımda csn ve ce pinlerini farklı tanımlayıp, diğer (miso,mosi,sck) pinlerini de SPI pinlerine takarsan bağlantı kurabilirsin. Lakin 2 nrf modül kullanmaktansa, bir modül hem alıcı hem verici olarak çalıştığı gibi, aynı anda birden fazla modülle haberleşebiliyor.

        Cevapla
    28. selçuk
      12 Mart 2016

      Hocam iyi günler ben uno ve mega ile denedim olmadı sorun kondansatör olabilir mi? 2 tane kondansatör alcam bunların değeri tam olarak nedir ve nasıl lehimlenecek bilgi verebilir misiniz? Yine olmazsa yeni bir uno alıp uno+uno ile deneyeceğim.

      Cevapla
      • Sezgin GÜL
        12 Mart 2016

        Selçuk kodu yeniledim. rf24 kütüphanesi ile yaptım. Diğer kütüphane ile olan kodu çoğu arkadaş çalıştırırken sorun yaşamış. Bu şekilde sorun yaşamassın.

        Cevapla
        • selçuk
          12 Mart 2016

          yukarıdaki cevabı yeni gördüm

          KAYHAN 28 ŞUBAT 2016
          Mega da bağlantı pinleri farklı
          CE = 9
          CSN= 53
          SCK = 52
          MOSI= 51
          MISO = 50
          Programda da gerekli değişiklikleri yaparsan sorun çözülür.

          bir de bu kodla deneyim olmazsa şu kondansatörden sanırım

          Cevapla
    29. hakan
      7 Mart 2016

      merhaba ben de bu modülleri kullanmaya yeni başladım ve bende sadece pcb antenli kısa mesafe nrf24l01 modellerinden var ve pahalı olduğu için 2 tane antenli model almak şimdilik fazla masraflı kaçıyor onun için merak ediyorum acaba bir tane harici antenli model alıp verici olarak kullansam ve alıcı olarak ta pcb antenli model kullansam(tersi de olabilir) iletişim sağlanabilir mi ve de mesafe artar mı? elinde bu harici antenli modellerden olanlar varsa bu soruma bi cevap bulabilirler mi?ona göre projelerime devam edeceğim çünkü? şimdiden çok teşekkür ederim ve bu arada yazı çok güzel olmuş bilgilerini paylaşan herkese teşekkürler 🙂

      Cevapla
    30. emrah
      5 Mart 2016

      hocam yukardakı kodlardan şu şekilde bir kod çıkardım fakat programı yükledim pottan okuduğum değer alıcı kısmında alıp serialden okuyorum . arduinalardan birinin enerjisini kesip tekrar verdiğimde program birdaha çalışmıyor, ancak arduinoya başka bir program yulleyip üzerine tekrar bu programı yükleyince çalışıyor neden böyle bir sorun yaşıyorum ? arduino nano kullandım mega kullandım ikisndede aynı sorunu yaşadım elimde 5 adet nrf var hepsiylede aynı oluyor

      kodlar şu şekilde

      #include
      #include
      nRF24L01p verici(10,9);
      /* CSN – > 7, CE -> 8 olarak belirlendi */

      int pot=A0;
      int val;
      int pos;
      int pos2;

      int button1;
      int button2;

      int SW1 = 7;
      int SW2 = 6;

      void setup() {
      Serial.begin(9600);
      SPI.begin();
      SPI.setBitOrder(MSBFIRST);
      /* SPI başlatıldı */
      verici.channel(90);
      verici.TXaddress(“kontrol”);
      verici.init();
      /* Verici ayarları yapıldı */
      }

      void loop() {
      val = analogRead(pot);

      Serial.println(val);

      verici.txPL(val);
      boolean gondermedurumu = verici.send(FAST);

      delay(500);

      #include
      #include

      nRF24L01p alici(10,9);
      /* CSN – > 7, CE -> 8 olarak belirlendi */
      int LED1 = 3;
      int LED2 = 5;
      int LED3 = 13;

      void setup() {

      Serial.begin(9600);
      SPI.begin();
      SPI.setBitOrder(MSBFIRST);
      /* SPI başlatıldı */
      alici.channel(90);
      alici.RXaddress(“kontrol”);
      alici.init();
      /* Alıcı ayarları yapıldı */
      pinMode(LED1, OUTPUT);
      pinMode(LED2, OUTPUT);
      pinMode(LED3, OUTPUT);
      }

      int deger;
      int deger2;
      int deger3;

      void loop() {

      while (alici.available()) {
      /* Modülden veri geldiği sürece while devam edecek */
      alici.read();
      alici.rxPL(deger);

      Serial.print(“1. data =”);
      delay(10);
      Serial.println(deger);
      delay(10);

      }
      }

      Cevapla
      • Sezgin GÜL
        5 Mart 2016

        SPI setup kısmında başlatılıyor yani bir modülü kapatıp diğer modülü de kapatmaz isen kapattığın modül çalıştığında diğer modül setup kısmına dönmediğinden iletişime geçemiyor.

        Cevapla
        • emrah
          7 Mart 2016

          hocam tam anlayamadım. spı kısmını nerede yazmamız gerekiyor ?
          yukardaki paylaşmış olduğunuz program aslında bu. enerji kesilip geri verildiginde çalışması gerekmezmi ? bunun için nasıl bir düzenleme yapmam gerekir

          Cevapla
          • Sezgin GÜL
            7 Mart 2016

            Bir arduinoyu kapatıp açtığında setup çalışır ve etrafındaki modüllere bulur fakat önceki bağlandığı diğer arduinoyu kapatıp açmaz ise o arduinonun setup kısmı çalışmayacağından birbirlerini göremezler. yani bir arduinoyu kapatıp açtığında diğer arduinoyu da kapatıp açman gerekir.

            Cevapla
            • emrah
              8 Mart 2016

              hocam anladım fakat bu uygulamamda dediğiniz gibide yapsam çalışmıyor birdaha. ikisine aynı anda enerji veriyorum yine tepki yok. farklı bir program yükleyip çalıştırıp, tekrar bu programı çalıştırdığım zaman çalışıyor düzğün bir şekilde.
              ben bir kumanda yapmak istiyorum butona basıldığı zaman arduinoya enerji verip alıcıya sinyal göndermesi lazım bil ömrünü korumak için. bu bahsettiğiniz şekilde olduğu zaman kumanda olmaz ozaman.

              rf24.h kütüphanesinin kullanıldığı bir program var o program düzgün çalışıyor fakat ondada hem dijital hem analog data gönderemiyorum.

            • Sezgin GÜL
              9 Mart 2016

              Sorun kütüphaneden de kaynaklı olabilir bilmiyorum. Ama amacın pilin erken bitmesini istememek ise buton kullanmak yerine arduinoyu uyutabilirsiniz. Uyku modunda yok denecek kadar az akımla çalışmaya devam eder.

        • can
          5 Nisan 2016

          peki zor değilse kodum üzerinde oynama yapıp tekrardan mail adresime yollarmısınız ?? bitirme projem bu benim ve zorlandım bayağı

          Cevapla
    31. Berkan Y YILMAZ
      2 Mart 2016

      Merhaba böyle bir hata alıyorum nasıl düzeltirim hiç birşekilde iletişim sağlayamıyorum aynen kod yazıyorum …

      C:\Users\ASUSPC\Documents\Arduino\NRF24_ALICI_1\NRF24_ALICI_1.ino:13:27: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]

      alici.RXaddress(“kontrol”);

      ^

      Cevapla
      • Sezgin GÜL
        2 Mart 2016

        kütüphane eklediniz mi ?

        Cevapla
        • barıs yusuf
          23 Haziran 2016

          hocam bende aynı hatayı alıyorum sebebınını bulamadım kutuphaneler de ekli.C:\Users\y\Desktop\verici\verici.ino: In function ‘void setup()’:

          C:\Users\y\Desktop\verici\verici.ino:18:27: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]

          verici.TXaddress(“Hasbi”);

          ^
          bu hata neden kaynaklanabılır baska

          Cevapla
    32. can
      28 Şubat 2016

      Merhabalar, ultrasonik sensör, servo motor ve processing kullanarak bir radar yaptım. Şimdi de sensör ile ölçtüğüm değeri nrf modülü ile diğer arduinoya gönderip proccesing de radarımı aynı şekilde çalıltırmak istiyorum ama sorunlar yaşıyorum irtibada geçebilirsek sevinirim

      Cevapla
      • Sezgin GÜL
        29 Şubat 2016

        Buraya yazın yardımcı olalım.

        Cevapla
        • Can
          4 Nisan 2016

          #include
          #include
          #include “RF24.h”
          //vericiiii
          Servo leftRightServo;
          unsigned long pulseTime = 0; // sensör pulse süresi
          unsigned long distance = 0; // mesafe değişkeni
          const int numReadings = 10;
          int index = 0; //Anlık okunan değerlerin indeksi
          int total = 0; // Toplanan okunan değerlerin indeksi
          int average = 0; // Ortalama
          int leftRightPos = 0;
          int msg[1];
          //SCK -> 13//MISO -> 12//MOSI -> 11//CSN -> 7//CE -> 8
          RF24 radio(8,7);
          const uint64_t pipe = 0xE8E8F0F0E1LL;
          const int trig = 2;
          const int echo = 3;
          int potpin = 0;
          int val;
          int sure ;
          int mesafe ;

          void setup(void){
          leftRightServo.attach(9);
          pinMode(trig, OUTPUT);
          pinMode(echo, INPUT);
          radio.begin();
          radio.openWritingPipe(pipe);
          }
          void loop(void){
          for(leftRightPos = 0; leftRightPos < 180; leftRightPos++) {

          leftRightServo.write(leftRightPos);

          for (index = 0; index= numReadings) {
          index = 0;
          total = 0;
          }
          Serial.print(“X”); // processingin tanıması için önce X stringini gönder
          Serial.print(leftRightPos); // anlık servo açısı
          Serial.print(“V”); // ikinci değer için V yolla
          Serial.println(average); // okunan ortalama sensör değeri
          }
          //servo sağdan sola git
          for(leftRightPos = 180; leftRightPos > 0; leftRightPos–) {
          leftRightServo.write(leftRightPos);
          for (index = 0; index= numReadings) {
          index = 0;
          total = 0;
          }
          Serial.print(“X”);
          Serial.print(leftRightPos);
          Serial.print(“V”);
          Serial.println(average);
          }
          }
          ——————————

          #include
          #include “RF24.h”
          //alıcıııı
          //SCK -> 13//MISO -> 12//MOSI -> 11//CSN -> 7//CE -> 8
          RF24 radio(8,7);
          const uint64_t pipe = 0xE8E8F0F0E1LL;
          int msg[1];
          void setup()
          {
          radio.begin();
          radio.openReadingPipe(1,pipe);
          radio.startListening();
          }
          void loop()
          {

          if (radio.available()){
          bool done = false;
          while (!done){
          done = radio.read(msg, 1);
          Serial.print (msg[0]);

          }

          }
          }
          —————————
          import processing.serial.*; // import serial library
          Serial myPort; // declare a serial port
          float x, y; // variable to store x and y co-ordinates for vertices
          int radius = 350; // set the radius of objects
          int w = 300; // set an arbitary width value
          int degree = 0; // servo position in degrees
          int value = 0; // value from sensor
          int motion = 0; // value to store which way the servo is panning
          int[] newValue = new int[181]; // create an array to store each new sensor value for each servo position
          int[] oldValue = new int[181]; // create an array to store the previous values.
          PFont myFont; // setup fonts in Processing
          int radarDist = 0; // set value to configure Radar distance labels
          int firstRun = 0; // value to ignore triggering motion on the first 2 servo sweeps
          /* create background and serial buffer */
          void setup(){
          // setup the background size, colour and font.
          size(750, 450);
          background (0); // 0 = black
          myFont = createFont(“verdana”, 12);
          textFont(myFont);
          // setup the serial port and buffer
          myPort = new Serial(this, Serial.list()[0], 9600);
          println(Serial.list());
          myPort.bufferUntil(‘\n’);
          }

          /* draw the screen */
          void draw(){
          fill(0); // set the following shapes to be black
          noStroke(); // set the following shapes to have no outline
          ellipse(radius, radius, 750, 750); // draw a circle with a width/ height = 750 with its center position (x and y) set by the radius
          rectMode(CENTER); // set the following rectangle to be drawn around its center
          rect(350,402,800,100); // draw rectangle (x, y, width, height)
          if (degree >= 179) { // if at the far right then set motion = 1/ true we’re about to go right to left
          motion = 1; // this changes the animation to run right to left
          }
          if (degree <= 1) { // if servo at 0 degrees then we're about to go left to right
          motion = 0; // this sets the animation to run left to right
          }
          /* setup the radar sweep */
          /*
          We use trigonmetry to create points around a circle.
          So the radius plus the cosine of the servo position converted to radians
          Since radians 0 start at 90 degrees we add 180 to make it start from the left
          Adding +1 (i) each time through the loops to move 1 degree matching the one degree of servo movement
          cos is for the x left to right value and sin calculates the y value
          since its a circle we plot our lines and vertices around the start point for everything will always be the center.
          */
          strokeWeight(7); // set the thickness of the lines
          if (motion == 0) { // if going left to right
          for (int i = 0; i = 0; i–) { // draw 20 lines with fading colour
          stroke(0,200-(10*i), 0); // using standard RGB values, each between 0 and 255
          line(radius, radius, radius + cos(radians(degree+(180+i)))*w, radius + sin(radians(degree+(180+i)))*w);
          }
          }
          /* Setup the shapes made from the sensor values */
          noStroke(); // no outline
          /* first sweep */
          fill(0,50,0); // set the fill colour of the shape (Red, Green, Blue)
          beginShape(); // start drawing shape
          for (int i = 0; i < 180; i++) { // for each degree in the array
          x = radius + cos(radians((180+i)))*((oldValue[i])); // create x coordinate
          y = radius + sin(radians((180+i)))*((oldValue[i])); // create y coordinate
          vertex(x, y); // plot vertices
          }
          endShape(); // end shape
          /* second sweep */
          fill(0,110,0);
          beginShape();
          for (int i = 0; i < 180; i++) {
          x = radius + cos(radians((180+i)))*(newValue[i]);
          y = radius + sin(radians((180+i)))*(newValue[i]);
          vertex(x, y);
          }
          endShape();
          /* average */
          fill(0,170,0);
          beginShape();
          for (int i = 0; i = 360) {
          stroke(150,0,0);
          strokeWeight(1);
          noFill();
          for (int i = 0; i 35 || newValue[i] – oldValue[i] > 35) {
          x = radius + cos(radians((180+i)))*(newValue[i]);
          y = radius + sin(radians((180+i)))*(newValue[i]);
          ellipse(x, y, 10, 10);
          }
          }
          }
          /* set the radar distance rings and out put their values, 50, 100, 150 etc.. */
          for (int i = 0; i <=6; i++){
          noFill();
          strokeWeight(1);
          stroke(0, 255-(30*i), 0);
          ellipse(radius, radius, (100*i), (100*i));
          fill(0, 100, 0);
          noStroke();
          text(Integer.toString(radarDist+50), 380, (305-radarDist), 50, 50);
          radarDist+=50;
          }
          radarDist = 0;
          /* draw the grid lines on the radar every 30 degrees and write their values 180, 210, 240 etc.. */
          for (int i = 0; i = 300) {
          text(Integer.toString(180+(30*i)), (radius+10) + cos(radians(180+(30*i)))*(w+10), (radius+10) + sin(radians(180+(30*i)))*(w+10), 25,50);
          } else {
          text(Integer.toString(180+(30*i)), radius + cos(radians(180+(30*i)))*w, radius + sin(radians(180+(30*i)))*w, 60,40);
          }
          }
          /* Write information text and values. */
          noStroke();
          fill(0);
          rect(350,402,800,100);
          fill(0, 100, 0);
          text(“Açı: “+Integer.toString(degree), 100, 380, 100, 50); // use Integet.toString to convert numeric to string as text() only outputs strings
          text(“Mesafe: “+Integer.toString(value), 100, 400, 100, 50); // text(string, x, y, width, height)
          fill(0);
          rect(70,60,150,100);
          fill(0, 100, 0);
          text(“Göstergeler:”, 100, 50, 150, 50);
          fill(0,50,0);
          rect(30,53,10,10);
          text(“İlk Tarama”, 115, 70, 150, 50);
          fill(0,110,0);
          rect(30,73,10,10);
          text(“İkinci Tarama”, 115, 90, 150, 50);
          fill(0,170,0);
          rect(30,93,10,10);
          text(“Ortalama”, 115, 110, 150, 50);
          noFill();
          stroke(150,0,0);
          strokeWeight(1);
          ellipse(29, 113, 10, 10);
          fill(150,0,0);
          text(“Hareket”, 115, 130, 150, 50);
          }

          /* get values from serial port */
          void serialEvent (Serial myPort) {
          String xString = myPort.readStringUntil(‘\n’); // read the serial port until a new line
          if (xString != null) { // if theres data in between the new lines
          xString = trim(xString); // get rid of any whitespace just in case
          String getX = xString.substring(1, xString.indexOf(“V”)); // get the value of the servo position
          String getV = xString.substring(xString.indexOf(“V”)+1, xString.length()); // get the value of the sensor reading

          degree = Integer.parseInt(getX); // set the values to variables
          value = Integer.parseInt(getV);
          oldValue[degree] = newValue[degree]; // store the values in the arrays.
          newValue[degree] = value;
          /* sets a counter to allow for the first 2 sweeps of the servo */
          firstRun++;
          if (firstRun > 360) {
          firstRun = 360; // keep the value at 360
          }
          }
          }

          bazı eksikler var ama tamamlanmalı:)

          Cevapla
        • Can
          5 Nisan 2016

          #include .
          #include
          #include “RF24.h”
          //vericiii
          int msg[1];
          //SCK -> 13//MISO -> 12//MOSI -> 11//CSN -> 7//CE -> 8
          RF24 radio(8,7);
          const uint64_t pipe = 0xE8E8F0F0E1LL;

          // Ultrasonik Sinyal pinleri
          const int trigPin = 3;
          const int echoPin = 2;
          long duration;
          int distance;
          Servo myServo;

          void setup() {
          pinMode(trigPin, OUTPUT);
          pinMode(echoPin, INPUT);
          Serial.begin(9600);
          myServo.attach(9); // Servo motor sinyal pini
          radio.begin();
          radio.openWritingPipe(pipe);
          }
          void loop() {
          // 15 derece ile 165 derece arasında dön
          for(int i=15;i15;i–) {
          myServo.write(i);
          delay(30);
          distance = calculateDistance();
          Serial.print(i);
          Serial.print(“,”);
          Serial.print(distance);
          Serial.print(“.”);
          }
          }

          int calculateDistance(){

          digitalWrite(trigPin, LOW);
          delayMicroseconds(2);

          digitalWrite(trigPin, HIGH);
          delayMicroseconds(10);
          digitalWrite(trigPin, LOW);
          duration = pulseIn(echoPin, HIGH);
          distance= duration*0.034/2;
          msg[0] = distance;
          radio.write(msg, 1);
          return distance;
          }
          ————
          #include
          #include “RF24.h”
          //alıcıı
          //SCK -> 13//MISO -> 12//MOSI -> 11//CSN -> 7//CE -> 8
          RF24 radio(8,7);
          const uint64_t pipe = 0xE8E8F0F0E1LL;
          int msg[1];
          void setup()
          {
          radio.begin();
          radio.openReadingPipe(1,pipe);
          radio.startListening();
          }
          void loop()
          {
          if (radio.available()){
          bool done = false;
          while (!done){
          done = radio.read(msg, 1);
          radio.write (msg, 0);

          }
          }
          }
          ——–
          import processing.serial.*; // kütüphane entegresi
          import java.awt.event.KeyEvent;
          import java.io.IOException;

          Serial myPort;

          String angle=””;
          String distance=””;
          String data=””;
          String noObject;
          float pixsDistance;
          int iAngle, iDistance;
          int index1=0;
          int index2=0;
          PFont orcFont;

          void setup() {

          size (1366, 700);
          smooth();
          myPort = new Serial(this,”COM5″, 9600); // Com portunu seçin
          myPort.bufferUntil(‘.’);

          }

          void draw() {

          fill(98,245,31);

          noStroke();
          fill(0,4);
          rect(0, 0, width, 1010);

          fill(98,245,31); // yeşil renk

          drawRadar();
          drawLine();
          drawObject();
          drawText();
          }

          void serialEvent (Serial myPort) {

          data = myPort.readStringUntil(‘.’);
          data = data.substring(0,data.length()-1);

          index1 = data.indexOf(“,”);
          angle= data.substring(0, index1);
          distance= data.substring(index1+1, data.length());

          iAngle = int(angle);
          iDistance = int(distance);
          }

          void drawRadar() {
          pushMatrix();
          translate(683,700);
          noFill();
          strokeWeight(2);
          stroke(98,245,31);
          // draws the arc lines
          arc(0,0,1300,1300,PI,TWO_PI);
          arc(0,0,1000,1000,PI,TWO_PI);
          arc(0,0,700,700,PI,TWO_PI);
          arc(0,0,400,400,PI,TWO_PI);
          // draws the angle lines
          line(-700,0,700,0);
          line(0,0,-700*cos(radians(30)),-700*sin(radians(30)));
          line(0,0,-700*cos(radians(60)),-700*sin(radians(60)));
          line(0,0,-700*cos(radians(90)),-700*sin(radians(90)));
          line(0,0,-700*cos(radians(120)),-700*sin(radians(120)));
          line(0,0,-700*cos(radians(150)),-700*sin(radians(150)));
          line(-700*cos(radians(30)),0,700,0);
          popMatrix();
          }

          void drawObject() {
          pushMatrix();
          translate(683,700);
          strokeWeight(9);
          stroke(255,10,10); // kırmızı renk
          pixsDistance = iDistance*22.5;
          // 40 cm ye kadar ölçer
          if(iDistance40) {
          noObject = “Out of Range”;
          }
          else {
          noObject = “In Range”;
          }
          fill(0,0,0);
          noStroke();
          rect(0, 1010, width, 1080);
          fill(98,245,31);
          textSize(25);
          text(“10cm”,800,690);
          text(“20cm”,950,690);
          text(“30cm”,1100,690);
          text(“40cm”,1250,690);
          textSize(40);
          text(“Object: ” + noObject, 240, 1050);
          text(“Angle: ” + iAngle +” °”, 1050, 1050);
          text(“Distance: “, 1380, 1050);
          if(iDistance<40) {
          text(" " + iDistance +" cm", 1400, 1050);
          }
          textSize(25);
          fill(98,245,60);
          translate(390+960*cos(radians(30)),780-960*sin(radians(30)));
          rotate(-radians(-60));
          text("30°",0,0);
          resetMatrix();
          translate(490+960*cos(radians(60)),920-960*sin(radians(60)));
          rotate(-radians(-30));
          text("60°",0,0);
          resetMatrix();
          translate(630+960*cos(radians(90)),990-960*sin(radians(90)));
          rotate(radians(0));
          text("90°",0,0);
          resetMatrix();
          translate(760+960*cos(radians(120)),1000-960*sin(radians(120)));
          rotate(radians(-38));
          text("120°",0,0);
          resetMatrix();
          translate(840+900*cos(radians(150)),920-960*sin(radians(150)));
          rotate(radians(-60));
          text("150°",0,0);
          popMatrix();
          }

          buna bakarsanız seviinirim diğeri hatalı

          Cevapla
    33. emrah
      28 Şubat 2016

      şöyle bir sıkıntım var hocam,
      vericiyi nano ile yaptım alıcıyı mega ile yaptım. sistemin ikiside bilgisayar usb den çalışıyor.

      problem şu ;
      #include “RF24.h” kütüphanesinin kullanıldığı bir program var, sisteme bu programları yüklediğim zaman sorunsuz şekilde nrf çalışıyor. ardından sizin bu programı yüklüyorum sistem yine çalışıyor fakat enerjiyi kesip tekrar açtıgım zaman alıcı birdaha çalışmıyor. taki başka bir program yükleyip sonra üzerine tekrar sizin programı yükleyince çalışmaya devam ediyor. böyle bir saçmalığı çözemedim

      Cevapla
      • Sezgin GÜL
        29 Şubat 2016

        Sorun şundan kaynaklanıyor. alıcının enerji kesip çalıştırdığında vericiyi de yeniden çalıştırman lazım. Çünkü programın setup kısmı çalışması lazım ki birbirlerini eşleyebilsinler. Bu şekilde deneyin sorun olursa yazın.

        Cevapla
    34. Sezgin GÜL
      26 Şubat 2016

      Hayır rf24.h kütüphanesini ekle oradaki örnek kodlara bakıp öyle dene

      Cevapla
    35. Güven
      26 Şubat 2016

      Sezgin hocam merhaba,ben vericideki pot değerini yani anolog değeri lcd ekranda görmek istiyorum,yani alıcıya servo bağlamıcam,kod bilgim fazla yok alıcı kodda lcd ekran için hangi satırları eklemem gerekiyor acaba?

      Cevapla
      • Sezgin GÜL
        26 Şubat 2016

        lcd kütüphanesini ekleyerek bu şekilde veriyi yazdır.
        LCD.print(deger);
        Lcd ile örnek uygulamaya buradan bakıp yapabilirsin >> http://www.robimek.com/bluetooth-uzerinden-lcd-ekrana-veri-aktarma/

        Cevapla
        • Güven
          26 Şubat 2016

          Hocam bu projeyi yapmadan bu msjı yazmıştım,fakat bu servo kontrol projesini bir türlü çalıştıramadım,defalarca kontrol ettim,kondansatör bağladım nafile..Verici serial monitörde değerleri görebiliyorum fakat alıcıdaki servoda hicbir hareket yok,elimde yedek olduğu için nrf modulu-unoyu ve servoyu değiştirdim yine olmadı,arduino 1.6.7 versiyonu kullanıyorum,başkada ne yapabilirim bilmiyorum.

          Cevapla
          • Sezgin GÜL
            26 Şubat 2016

            rf24.h kütüphanesiyle dene ama fonksiyonları değiştirmen gerekecek.

            Cevapla
            • Güven
              26 Şubat 2016

              fonksiyon derken hocam anlamadım,kod bilgim çok yok,nrf kütüphanesini komple kaldırıp rf yi mi koyayım

    36. HAKAN
      23 Şubat 2016

      hocam char = değer ; neden kullandık zaten val degeri vardı vericide

      Cevapla
      • Sezgin GÜL
        23 Şubat 2016

        ikisinde de veri iletişim türü char olarak yapıldı. ikisine de char tanımlaması yapman lazım.

        Cevapla
    37. Konuralp Demir
      22 Şubat 2016

      Merhabalar. Öncelikle anlatımınız çok kaliteli ve açıklayıcı olmuş, bunu belirtmek istiyorum. nRF24L01 modülün kullanımına dair iki sorum olacak. öncelikle bahsettiğiniz 3.3 uf ve 10 uf arasında değerlerde kondasatörlerin vcc ve gnd pinleri için kullanılması gerektiğini duymuştum, ama sebebini bilmiyorum, bunu açıklayabilirseniz çok memnun olurum. Bir diğer sorum da aynı anda iki joystickin de verisini gönderemez miyim bu modüller aracılığyla? Çünkü bir joystickin tüm verisini (x ekseni, y ekseni, buton) rahatlıkla gönderebiliyorum fakat 2 joyistickin verisini aynı anda göndermeye çalıştığımda sadece birinin verisi gidiyor. joysticklerin hepsinin çalıştığından da eminim. Sorun ne olabilir sizce? Şimdiden ilginize teşekkürler…

      Saygılarımla…
      Konuralp DEMİR

      Cevapla
      • Sezgin GÜL
        22 Şubat 2016

        stabil çalışma sağladığı için kondansatör ekleniyor. 4 veri göndermek için de 2 veri göndermede kodladığın gibi 4 veri ekleyebilirsin. Yani aynı şekilde göndermesi gerekir. Sorun yaşarsan nrf24l01p kütüphanesinde 0x02 array isimli örnek var oradan bakıp entegre et.

        Cevapla
    38. emrah
      21 Şubat 2016

       verici.txPL(pos);
      Verici.txPL(pos2);
      verici.txPl(pos3);
       boolean gondermedurumu = verici.send(FAST);

      Su sekilde birden fazla deger gonderebiliyorum sknti olmaz umarim ?

      Soyle bir sikintim var ; alici ve vericiyi nano ile pc ye usb ile bagli ve yukardaki ornegi yukledigimde ilk etapta yukledim calismadi sonra bi ara yukledim alicidan serilade datalari gormeye basladim 1 saat kadar enerjiyi hic kapatmadim bu arada devreler board uzerine kurulu. Bi ara vericinin usb kablosunu cekip geri taktim alici bida sinyal alamadi devreye hic dokunmamistim. Enerji gidup gelince calismadi alici devre. Neden boyle bi sikinti yapar ki. Pic te defalrca rf uzerine denemelr yaptim hic bole sikinti yasamadim

      Cevapla
      • Sezgin GÜL
        21 Şubat 2016

        Vcc ye yanlışlıkla 5v vermişseniz rf modülü bozar ve iletişim sağlanamaz. Diğer yandan gerilim değişkenliğinden ya da kablolarda temassızlık olabilir tekrar kontrol ediniz. Yine iletişim sağlanamaz ise modülün vcc ile gnd pinleri arasına 3.3 uF ile 10 uF arasında bir kondansatör yerleştirin.

        Cevapla
    39. emrah
      21 Şubat 2016

      hocam programı şuan çalıştırmdım nasıl oldu anlamadım,

      bir sorum olacaktı verici.txPL komutuyla birden falzla değişken içerigini nasıl gönderebiliriz ve alabilriz?

      Cevapla
      • Sezgin GÜL
        21 Şubat 2016

        transceiver modunda çalışma özelliği var yani hem alıcı hem de verici olarak aynı anda çalışıyor. yapman gereken aynı modüle hem alıcı hem de verici komutlarını girmek. Bir modül alıcı konumunda iken 6 farklı verici modülle haberleşebilir.Alıcı kısmın koduna vericilerin adreslerini girdiğinde haberleşme sağlanır.

        Cevapla
    40. emrah
      20 Şubat 2016

      merhaba, yukadaki kodları çalıştırımadım ama internet sitesindeki yazılım içerisinde radio kodları geçen programı yükleyince devrem çalışıyor aynı devreye sizin programı yükleyip pinleri buna göre bağlayınca çalıştırmadım ? sıkıntı ne olabilir

      Cevapla
    41. Tarık
      20 Şubat 2016

      merhabalar, anlatımınız için teşekkürler. Peki bu modülleri android yazılımlı telefonlarla haberleştirmek mümkün mü?

      Cevapla
      • Sezgin GÜL
        20 Şubat 2016

        android telefondan sadece bluetooth kablosuz iletişim sağladığından rf modülle bağlantı kurulamaz.

        Cevapla
    42. abdullah demirci
      19 Şubat 2016

      öncelikle teşşekkürler. 2 yönlü haberleşme ile ilgili çalışmanız varmı? mesala iki taraftada bir buton bir led var. butona basınca diğerinin ledi yanıyor karşı taraf başınca kendisinin ledi yanıyor.

      Cevapla
      • Sezgin GÜL
        19 Şubat 2016

        transceiver modunda yani alıcı verici olarak çalışabiliyor. Örnekler kısmında transceiver örneği var onu incele

        Cevapla
    43. Code Art
      18 Şubat 2016

      Anlatım ve yardımcı olma çabanızdan dolayı öncelikle teşekkürler. 1 tanesi alıcı olarak programlayıp diğer 30 tanesini verici olarak kullanabilirmiyim tek bir alıcı ile 30 tane vericiden bilgi toplamak istiyorum.

      Cevapla
    44. Ahmet
      15 Şubat 2016

      Merhaba, hiç deneme yaptınız mı maksimum mesafe nedir? Datasheet ve satıcılar 250 metre diyor ama mantıklı gelmedi bana? Birde nRF24L01 ve +PA olan modül tamamen aynı yazılım ve aynı mantıkla çalışıyor birinin PA diğerini normal kullanarak haberleştirme yapmamızda bir sorun var mıdır?

      Cevapla
      • Sezgin GÜL
        15 Şubat 2016

        Mesafe denemesi yapmadım. İki modül de aynı mantıkla çalışır ve aynı değerle kullanabilirsiniz.

        Cevapla
    45. sezer
      14 Şubat 2016

      paylaşımızın ve desteğiniz için teşekkürler.

      Cevapla
      • Sezgin GÜL
        14 Şubat 2016

        Rica ederiz. Sizler de maker hareketine katkıda bulunmak isterseniz bu projeleri kendi sosyal medya hesaplarınızdan paylaşarak, daha geniş kitlelere ulaşmasına katkı sağlayabilirsiniz.

        Cevapla
    46. Kenan Habibov
      14 Şubat 2016

      Merhabalar bu ise yeni baslayan birisi olarak bir hayalim var ama kumanda olarak kullanmak istiyorum projemi. Bir adet aksonometre ve bir adet de joyctick arduino ve nrf24l01 aracılığı ile gerçekleştirmek istiyorum. yardımcı ola bilirmisiniz ?

      Cevapla
    47. Mirhan
      2 Şubat 2016

      Hocam, servo motor yerine brushless motor kullanabilir miyiz bu devrede? Kullanabilmek için ne değişiklik yapmamız gerekiyor?

      Cevapla
      • Sezgin GÜL
        2 Şubat 2016

        pinleri high low yapman lazım normal motor sürme işlemi yani. fırçasız motor kullanman için esc de kullanman lazım

        Cevapla
    48. Ramazan
      30 Ocak 2016

      Abi, aynı kodu yükledim, kütüphaneyi indirdim verdiğin talimatları uyguladım ama karşıma bu sorun “Belirtilen dizin/zip dosyası geçerli bir kütüphane içermiyor.” çıktı. Farklı kütüphaneler indirmeme rağmen düzelmedi. Sorun nedir acaba yardımcı olabilir misin?

      Cevapla
    49. oktay
      1 Ocak 2016

      Merhabalar;
      Ben alıcı kısmı bir türlü çalıştıramadım. Vericide TX ledi yanıp sönüyor ve serial monitörde veri gidiyor gözüküyor. Ancak Alıcıda RX ledi hiç yanmıyor. Verici Uno, Alıcı ise Leonardo. Yerlerini değiştirerek de denedim yine sadece verici çalışıyor. Yardımcı olursanız sevinirim.

      Cevapla
    50. ahmet
      1 Ocak 2016

      farklı bilgisayrlar üzerinden mi haberleştirecez acaba tek bilgisayar üzerine 2 tane arduino bağladım bi türlü haberleştiremedim

      Cevapla
      • Sezgin GÜL
        1 Ocak 2016

        aynı pc üzerinden haberleştirmek için farklı serial veri programları kullanmanız gerekir. Örneğin teraterm ile arduinonun serial monitörleri arasından haberleştirme yapabilirsiniz.

        Cevapla
    51. İslam Alagöz
      11 Aralık 2015

      HC-SR04 mesafe sensöründen okuduğum bilgisi nrf24L01 modülü ile diğer arduinoya nasıl aktarırım… İlgilenirsenin sevinirim teşekkür ederim.

      Cevapla
      • Sezgin GÜL
        12 Aralık 2015

        Sensöre ölçüm yaptırarak serial.print yapın.Örnekteki pos serailden print edildi. Sizde bu şekilde yapın

        Cevapla
    52. furkan
      9 Aralık 2015

      Hocam sorun herhalde başka bir yerde ilgilendiğiniz için ve yardımlarınız için teşekkür ederim

      Cevapla
    53. furkan
      9 Aralık 2015

      7.2 voltluk lipoyla adaptör girişinden yapıyorum

      Cevapla
      • Sezgin GÜL
        9 Aralık 2015

        Vin pinine tak öyle dene dene liponun akımı fazla olursa adaptör girişinden sıkıntı olur

        Cevapla
    54. furkan
      9 Aralık 2015

      Hocam benim projede arduino pc ye bağlıyken sorunsuz çalışıyor ama alıcı kısmı bilgisayardan çıkartıp güç kaynağıyla beslediğim zaman haberleşme sağlanmıyor, önce pc den çalıştırıyorum sonra güç kaynağını açıyorum pc bağlantısını kesincede çalışmaya devam ediyor ama güç kaynağı ile açınca haberleşme sağlanamıyor.

      Cevapla
      • Sezgin GÜL
        9 Aralık 2015

        Güç kaynağı yetersizdir veya vin pininde sıkıntı vardır. Beslemeyi nereden yapıyorsun ?

        Cevapla
    55. RAMESH RAJ
      6 Aralık 2015

      WE NEED YOUR EXPERTISE FOR A PARKING OF 1000 CARS IN DIFFERENT SLOTS
      AND TO IDENTIFY WHERE IT IS PARKED IN WHICH SLOT USING ARDUINO WITH WIRELESS AND BT AND BT IN EACH VEHICLE .THE ARDUINO CONNECTED TO WIRE IN FRONT OF EACH SLOT

      Cevapla
    56. Girayhan
      24 Kasım 2015

      Bir adet uno bir adet mega ile çalışıyorum. Unodan gönderip megadan almak istiyorum veriyi . Unoda mesaj gönderildi demesine rağmen megadan değer okuyamyorum. Kodların aynısını yazmama rağmen olmuyor iyi akşamlar

      Cevapla
      • Sezgin GÜL
        24 Kasım 2015

        Kod çalışıyor yazılımsal sorun yok. Megadan unoya göndermeyi deneyin.

        Cevapla
      • Kayhan
        28 Şubat 2016

        Mega da bağlantı pinleri farklı
        CE = 9
        CSN= 53
        SCK = 52
        MOSI= 51
        MISO = 50
        Programda da gerekli değişiklikleri yaparsan sorun çözülür.

        Cevapla
    57. mumin
      15 Kasım 2015

      2 tane arduıno uno nrf24l01 modulu birbiriyle haberleştirdim seri port ekranına yazdım bunu lcd ekranına nasıl gözükcek

      Cevapla

    Bir yorum yaz

    E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

    Projeler Devamı

    Bizi Takip Et

    izmir escort- izmir escort- izmir escort- izmir escort- izmir escort