Merhaba, bugünkü yazımızda Arduino ile kablosuz haberleşme alanında oldukça popüler olan NRF24L01 kullanımına göz atacağız. Bu projemizde iki Arduino’yu kablosuz haberleştirerek data aktarımı yapacağız. İlk önce malzemelerimize göz atalım.
Malzeme Listesi
NRF24L01 Nedir? Nasıl Çalışır?
Arduino gibi geliştirme kartları ile kablosuz haberleşme sağlamak için birçok modül var fakat NRF24L01 en popüler olanı diyebiliriz. Hem ucuz hem de uzun menzilli olması onu kablosuz haberleşme projelerinin vazgeçilmez bir parçası yapıyor.
NRF24L01 2.4GHz frekansında kablosuz haberleşme yapmanıza imkân sağlayan düşük güç tüketimine sahip bir modüldür.
Antenli ve antensiz olmak üzere iki tane modeli vardır. Her iki modelin bağlantısı aynı olmakla beraber aralarındaki tek fark kablosuz iletişim menzilidir. Antensiz modelinde açık alanda 100 metreye kadar haberleşme sağlanabilirken antenli modelinde menzil 1000 metreye kadar varabiliyor.
SPI arabirimini desteklemekte olup, Bu sayede tam 6 tane Arduino’nun bir ana Arduino ile haberleşmesini saylayabilirsiniz. Ama bugün sadece 2 Arduino arasındaki haberleşmeye örnek olacak bir proje gerçekleştireceğiz.
Modülün pinlerine ve kullanımına değinmek gerekirse, modülde toplam 8 tane pin bulunmakta ve biz aktif olarak bu pinlerin 7 tanesini haberleşmek için kullanacağız.
GND Toprak pinidir.
VCC Güç pinidir. 1,9 ila 3,9 arasında bir voltaj verebilirsiniz. Arduino ile kullanımda 3.3V çıkışa bağlayabilirsiniz. 5V pinine kesinlikle bağlamayın. Güç ile alakalı problemler yaşamamak için taşıyıcı kartı kullanımızı öneririm. Aksi halde iletişimde kopukluklar meydana gelebiliyor.
CE aktif bir HIGH pinidir. Seçildiğinde, NRF24L01 hangi moduna bağlı olarak veri gönderir ya da alır.
CSN aktif bir LOW pinidir ve normalde HIGH tutulur. Bu pin LOW olduğunda NRF24L01, SPI portunu veri alımı moduna geçirir.
SCK SPI haberleşme için gerekli olan saat hareketlerini kabul eder.
MOSI NRF24L01’in SPI girdisidir.
MISO NRF24L01’den SPI çıkışıdır.
SCK, MISO ve MOSI pinleri SPI haberleşme ile alakalı olduğundan dolayı Arduino çeşidine göre farklılık gösterebilmektedir. Bu yüzden devreyi kurarken bu tabloya da göz atmayı ihmal etmeyin.
MOSI | MISO | SCK | |
Arduino Uno | 11 | 12 | 13 |
Arduino Nano | 11 | 12 | 13 |
Arduino Mega | 51 | 50 | 52 |
NRF24L01 modülünü tanıdığımıza göre devre şemasına geçebiliriz.
Arduino ile NRF24L01 Kullanımı – Devre Şeması
Hem alıcı hem de verici için kullanacağımız devre aynı. Modüllerin alıcı ya da verici olma durumunu kodlarda belirtiyoruz.
NRF24L01 | Arduino Uno/Nano |
VCC | 5V (taşıyıcı kart) |
GND | GND |
CS | 10 |
CE | 9 |
MOSI | 11 |
MISO | 12 |
SCK | 13 |
Arduino ile NRF24L01 Kullanımı – Verici Kodları
Arduino ile NRF24L01 Kullanımı – Alıcı Kodları
Kodları derleyebilmek için gerekli olan RF24 kütüphanesini Arduino IDE’ ye eklemeyi unutmayın.
Sonuç
Eğer devreyi doğru kurduysanız, kodları Arduino’lara yüklediğinizde Alıcı Arduino‘nun seri ekranında 1 saniye aralıklarla “Robolink Akademi” yazdığını fark etmelisiniz.
Bir projemizin sonuna geldik. Bu proje hakkında herhangi bir sorunuz olursa bu gönderiye aşağıdan yorum olarak yazabilir veya profilimdeki mail adresimden bana ulaşabilirsiniz.
İyi çalışmalar dilerim.
Bunun 2 yönlü haberleşme halini yapmamız mümkün mü acaba? Yani verici alıcıya sinyal gönderdiğinde karşılık olarak bir sinyal gönderse, aldığına dair?
Vericiden seri porta yazı yazıp göndermemiz mümkün mü?
Tabloda nrf2401 CE ve CSN pinleri 9-10 nolu pinler fakat kodlarda CE ve CSN pinleri 9-8 nolu pinler bu yüzden tablodaki pinler düzeltilmeli. şematik diagrama bakıpta yapanlarda herhangi bir sorun yok.