Arama butonu
Bu konudaki kullanıcılar: 1 misafir
6
Cevap
2439
Tıklama
0
Öne Çıkarma
nRF24L01 birden fazla komut gönderme
A
10 yıl
Er
Konu Sahibi

nRF24L01 üzerinden bir komut gönderip almayı(buton/led) başarabildim. Fakat benim istediğim şey 2 ayrı butonla 2 ledi ayrı ayrı yakabilmek. Mesela 1. butona basılınca 1. led 2. Butona basılınca 2. led yansın tarzında. Aslında 2 den fazla kullanmayı düşünüyorum. Şimdi 2 sorum olacak.

Nasıl 2 ayrı komut kullanabilirim ?
Bunun bir sınırı var mı ? Varsa kaç farklı komut gönderme sınırı var ?





< Bu mesaj bu kişi tarafından değiştirildi Aeret -- 18 Ağustos 2015; 23:10:11 >

< Bu ileti mobil sürüm kullanılarak atıldı >

G
10 yıl
Yarbay

Ben arduino kullanıcısı değilim ama kabaca yazayım bişeyler. Bunlar ileri seviye ancak öğrendikten sonra çok daha basit olduğunu göreceksin.

#define LED0 _BV(0)
#define LED1 _BV(1)
#define LED2 _BV(2)
#define LED3 _BV(3)
#define LED4 _BV(4)
#define LED5 _BV(5)
#define LED6 _BV(6)
#define LED7 _BV(7)

Bunlar led tanımlamaları. byte türünde bir değişkene şu şekilde yazarsın. Mesela 2. ve 5. ledleri yakmak istiyoruz.
byte yaz = LED2 | LED5;

Bu kod yaz değişkeninin 2. ve 5. bitlerini 1 yapar, diğer bitler 0 olur. Sonra bu değişkeni verici ile gönderirsin.
radio.write(&yaz, 1);

Veriyi alınca en verimli yol bunu direkt porta yazmaktır.
radio.read(&PORTD, 1);
...

PORTD nedir dersen, şu adrestekihttps://www.arduino.cc/en/Hacking/PinMapping168
PD ile başlayan 8 tane pin portd oluyor. Yukarıdaki kod PD2 VE PD5 pinlerini "aynı anda" HIGH (1) yapar.





< Bu mesaj bu kişi tarafından değiştirildi Guest-BF8E9B238 -- 20 Ağustos 2015; 22:36:49 >
Bu mesaja 1 cevap geldi.
A
10 yıl
Er
Konu Sahibi

quote:

Orijinalden alıntı: elektro_gadget

Ben arduino kullanıcısı değilim ama kabaca yazayım bişeyler. Bunlar ileri seviye ancak öğrendikten sonra çok daha basit olduğunu göreceksin.

#define LED0 _BV(0)
#define LED1 _BV(1)
#define LED2 _BV(2)
#define LED3 _BV(3)
#define LED4 _BV(4)
#define LED5 _BV(5)
#define LED6 _BV(6)
#define LED7 _BV(7)

Bunlar led tanımlamaları. byte türünde bir değişkene şu şekilde yazarsın. Mesela 2. ve 5. ledleri yakmak istiyoruz.
byte yaz = LED2 | LED5;

Bu kod yaz değişkeninin 2. ve 5. bitlerini 1 yapar, diğer bitler 0 olur. Sonra bu değişkeni verici ile gönderirsin.
radio.write(&yaz, 1);

Veriyi alınca en verimli yol bunu direkt porta yazmaktır.
radio.read(&PORTD, 1);
...

PORTD nedir dersen, şu adrestekihttps://www.arduino.cc/en/Hacking/PinMapping168
PD ile başlayan 8 tane pin portd oluyor. Yukarıdaki kod PD2 VE PD5 pinlerini "aynı anda" HIGH (1) yapar.


Sanırım yavaş yavaş oturuyor :)



< Bu ileti mobil sürüm kullanılarak atıldı >

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.