{"id":169,"date":"2015-10-02T20:16:02","date_gmt":"2015-10-02T17:16:02","guid":{"rendered":"https:\/\/burakcaliskan.org\/blog\/?p=169"},"modified":"2015-10-02T20:24:43","modified_gmt":"2015-10-02T17:24:43","slug":"nrf24l01-arduino","status":"publish","type":"post","link":"https:\/\/burakcaliskan.org\/blog\/nrf24l01-arduino\/","title":{"rendered":"nRF24L01 Arduino"},"content":{"rendered":"<p><strong>Arduino ile nRF24L01+ Kullan\u0131m\u0131<\/strong><\/p>\n<p>Arduino ile yapaca\u011f\u0131m\u0131z projelerde kablosuz haberle\u015fmeye s\u0131k s\u0131k ihtiya\u00e7 duyuyoruz. Hareketli cihazlar\u0131 uzaktan kontrol etmek, yerle\u015ftirdi\u011fimiz sens\u00f6rlerin bilgilerini alabilmek, otomasyon sistemleri, hasta takip gibi bir\u00e7ok sebepten\u00a0kablosuz \u00e7\u00f6z\u00fcmler gerekebiliyor. nRF24L01+ bu konuda Arduino veya di\u011fer mikrodenetleyicilerle kullanabilece\u011finiz maliyeti d\u00fc\u015f\u00fck ama \u00f6zellikleri g\u00fc\u00e7l\u00fc bir cihaz.<\/p>\n<p>Anten takmadan kullanabilece\u011finiz\u00a0mikro\u015ferit antenli PCB\u2019lerini de olduk\u00e7a d\u00fc\u015f\u00fck fiyatlardan temin edebiliyorsunuz. Bu da anten maliyetinden de kurtar\u0131yor. Devre ve anteni kendiniz kurmak isterseniz de d\u0131\u015far\u0131dan takman\u0131z gereken \u00a0\u00a0eleman say\u0131s\u0131 olduk\u00e7a az. Uzun mesafe haberle\u015fme yapmak isterseniz d\u0131\u015far\u0131dan anten ba\u011flanabilen haz\u0131r kartlar da mevcut.<\/p>\n<p>nRF24L01+ Nordic Semiconductor firmas\u0131 taraf\u0131ndan \u00fcretiliyor ve 2.4GHz frekans\u0131nda \u00e7al\u0131\u015f\u0131yor. 2Mbit gibi fiyat\u0131na oranla hayli y\u00fcksek bir h\u0131za da \u00e7\u0131kabilme kabiliyetine sahip. Ayr\u0131ca, bu mod\u00fcl\u00fc hem al\u0131c\u0131 hem verici olarak kullanabilirsiniz. Bir ba\u015fka yaz\u0131da bu cihaz kullan\u0131larak uzaktan bir arabay\u0131 nas\u0131l kumanda edip arabadan veri alabilece\u011finizi inceleyece\u011fiz.<\/p>\n<p><!--more--><\/p>\n<p><strong>Pin numaralar\u0131<\/strong><\/p>\n<p>CSN\u00a0\u2013&gt; 7<\/p>\n<p>CE\u00a0\u2013&gt; 8<\/p>\n<p>MOSI \u2013&gt; 11<\/p>\n<p>MISO \u2013&gt; 12<\/p>\n<p>SCK\u00a0\u2013&gt; 13<\/p>\n<p>VCC \u2013&gt; 3.3V<\/p>\n<p>GND \u2013&gt; GND<\/p>\n<p>IRQ \u2013&gt; Bo\u015fta(bu uygulamada kullanm\u0131yoruz.)<\/p>\n<p>Yaz\u0131l\u0131m<\/p>\n<p>K\u00fct\u00fcphane ve \u00d6rnek<\/p>\n<p>Arduino ile nRF24L01+\u2019y\u0131 kullanmak istedi\u011finizde de i\u015finizi olduk\u00e7a kolayla\u015ft\u0131ran bir k\u00fct\u00fcphanesi bulunuyor. K\u00fct\u00fcphane dosyalar\u0131na <a href=\"http:\/\/www.mediafire.com\/download\/v6bn0a7g3ep3y7o\/nRF24L01p.rar\" target=\"_blank\">bu linkten<\/a>\u00a0ula\u015fabilirsiniz.<\/p>\n<p>K\u00fct\u00fcphaneyi y\u00fckledi\u011finizde i\u00e7erisinde 6 adet \u00f6rnek bulunacak. Bunlara Arduino yaz\u0131l\u0131m\u0131n\u0131n \u00f6rnekler men\u00fcs\u00fcnden eri\u015febilirsiniz. Burda g\u00f6sterilecek olan uygulama \u00e7ift y\u00f6nl\u00fc haberle\u015fmeye bir \u00f6rnektir. Kodu denemek i\u00e7in 2 farkl\u0131 Arduino\u2019ya kodlar\u0131n at\u0131lmas\u0131 ve nRF24L01p+ mod\u00fcllerinin ba\u011flanarak seri port ekranlar\u0131n\u0131n a\u00e7\u0131lmas\u0131 gerekmektedir. Arduino\u2019lardan birisi her saniye kar\u015f\u0131 tarafa bir mesaj yollayacak ve ne kadar s\u00fcredir \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 s\u00f6yleyecek, kar\u015f\u0131 taraf da mesaj\u0131 ald\u0131\u011f\u0131n\u0131 bildiren bir mesaj d\u00f6nd\u00fcrecektir. Kodlara anla\u015f\u0131lmalar\u0131 i\u00e7in al\u0131c\u0131 ve g\u00f6nderen isimleri verilmi\u015ftir. Haberle\u015fme \u00e7ift y\u00f6nl\u00fc olup her iki mod\u00fcl de hem al\u0131c\u0131 hem de verici olarak kullan\u0131lm\u0131\u015ft\u0131r.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Al\u0131c\u0131;<\/strong><\/p>\n<pre class=\"lang:default decode:true \">#include &lt;nRF24L01p.h&gt;\r\n#include &lt;SPI.h&gt;\r\n\r\n\/\/ Pinler S\u0131rayla CSN ve CE'dir.\r\nnRF24L01p alici(7,8);\r\n\r\nvoid setup(){\r\ndelay(150);\r\nSerial.begin(9600);\r\n\r\nSPI.begin();\r\nSPI.setBitOrder(MSBFIRST);\r\nalici.channel(90); \/\/ Kanal numaralar\u0131 ayn\u0131 olmal\u0131(0-125)\r\nalici.RXaddress(\"Oda 1\");\r\nalici.TXaddress(\"Oda 2\");\r\nalici.init();\r\n}\r\n\r\n\/\/ Gelen mesaj\u0131 tutacak\r\nString ileti;\r\n\r\nvoid loop(){\r\n\/\/ Gelen veri varsa\r\nif(alici.available()){\r\nalici.read();\r\nalici.rxPL(ileti);\r\nSerial.println(ileti);\r\nileti = \"\";\r\nalici.txPL(\"Mesaj alindi!\");\r\nalici.send(SLOW);\r\n}\r\n}<\/pre>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><strong>G\u00f6nderici;<\/strong><\/p>\n<div class=\"crayon-main\">\n<pre class=\"lang:c decode:true \">#include &lt;SPI.h&gt;\r\n#include &lt;nRF24L01p.h&gt;\/\/ Pinler S\u0131rayla CSN ve CE'dir.\r\nnRF24L01p verici(7, 8);\r\nvoid setup() {\r\ndelay(150);\r\nSerial.begin(9600);\r\n\r\nSPI.begin();\r\nSPI.setBitOrder(MSBFIRST);\r\nverici.channel(90); \/\/ Kanal numaralar\u0131 ayn\u0131 olmal\u0131(0-125)\r\nverici.TXaddress(\"Oda 1\");\r\nverici.RXaddress(\"Oda 2\");\r\nverici.init();\r\n}\r\n\r\nString ileti = \"Selam!\";\r\nString ileti2;\r\n\r\nlong int x = millis();\r\nvoid loop() {\r\n\/\/ 1 saniye dolduysa yeni veri g\u00f6nder\r\nif ( millis() - x &gt;= 1000) {\r\nSerial.println(\"== Giden Veri Var\");\r\nx = millis();\r\nverici.txPL(ileti+String(x\/1000));\r\nverici.send(SLOW);\r\n}\r\n\r\n\/\/ Gelen veri varsa\r\nif (verici.available()) {\r\nSerial.print(\"== Gelen Veri Var: \");\r\nverici.read();\r\nverici.rxPL(ileti2);\r\nSerial.println(ileti2);\r\nileti2 = \"\";\r\n}\r\n}<\/pre>\n<p>&nbsp;<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Arduino ile nRF24L01+ Kullan\u0131m\u0131 Arduino ile yapaca\u011f\u0131m\u0131z projelerde kablosuz haberle\u015fmeye s\u0131k s\u0131k ihtiya\u00e7 duyuyoruz. Hareketli cihazlar\u0131 uzaktan kontrol etmek, yerle\u015ftirdi\u011fimiz sens\u00f6rlerin bilgilerini alabilmek, otomasyon sistemleri, hasta takip gibi bir\u00e7ok sebepten\u00a0kablosuz \u00e7\u00f6z\u00fcmler gerekebiliyor. nRF24L01+ bu konuda Arduino veya di\u011fer mikrodenetleyicilerle kullanabilece\u011finiz maliyeti d\u00fc\u015f\u00fck ama \u00f6zellikleri g\u00fc\u00e7l\u00fc bir cihaz. Anten takmadan kullanabilece\u011finiz\u00a0mikro\u015ferit antenli PCB\u2019lerini de olduk\u00e7a d\u00fc\u015f\u00fck [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":171,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[20],"tags":[81,83,84,82],"_links":{"self":[{"href":"https:\/\/burakcaliskan.org\/blog\/wp-json\/wp\/v2\/posts\/169"}],"collection":[{"href":"https:\/\/burakcaliskan.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/burakcaliskan.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/burakcaliskan.org\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/burakcaliskan.org\/blog\/wp-json\/wp\/v2\/comments?post=169"}],"version-history":[{"count":9,"href":"https:\/\/burakcaliskan.org\/blog\/wp-json\/wp\/v2\/posts\/169\/revisions"}],"predecessor-version":[{"id":175,"href":"https:\/\/burakcaliskan.org\/blog\/wp-json\/wp\/v2\/posts\/169\/revisions\/175"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/burakcaliskan.org\/blog\/wp-json\/wp\/v2\/media\/171"}],"wp:attachment":[{"href":"https:\/\/burakcaliskan.org\/blog\/wp-json\/wp\/v2\/media?parent=169"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/burakcaliskan.org\/blog\/wp-json\/wp\/v2\/categories?post=169"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/burakcaliskan.org\/blog\/wp-json\/wp\/v2\/tags?post=169"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}