mustafa0181
Yeni Üye
- Katılım
- 13 Şubat 2024
- Mesajlar
- 4
Merhaba, okuldaki proje ödevim için youtube'den bir basit rc uçak gördüm. Haberleşms olarak nrf24'ü kullanıyordu. Kumandasını (verici) ve alıcısını tasarımını çok az değiştirerek (digital pinleri değiştirip) hazırladım. Servo kontrolcüsü çalışmadığı gibi, basit bir haberleşme testinde dahi nrf24'ler birbiriyle haberleşmiyor. Elektronikten pek anlamam, asıl alanım yazılım. Yardımcı olursanız sevinirim.
Verici;

Verici Şeması;
gnd - gnd
vcc - 3v
CNS - D7
CE - D8
SCK - D13
MOSI - D11
MISO - D12
Alıcı;
Alıcı Şeması;
gnd - gnd
vcc - 3v
CE - D9
CNS - D10
MOSI - D11
MISO - D12
SCK - D13
Not: parçaları pcb'de titmak için kısa parmaklı header kullanıyorum.
Verici;

Verici Şeması;
gnd - gnd
vcc - 3v
CNS - D7
CE - D8
SCK - D13
MOSI - D11
MISO - D12
Alıcı;
Alıcı Şeması;
gnd - gnd
vcc - 3v
CE - D9
CNS - D10
MOSI - D11
MISO - D12
SCK - D13
Kod:
#include <SPI.h> // nRF24L01+ ile SPI iletişim.
#include <RF24.h> // v1.4.2
RF24 radio(8, 7); // radio isimli nesne oluştur. CE ve CSN pinleri.
void setup() {
Serial.begin(9600); // Hataları seri monitörde görebilmek için seri iletişimi başlat.
if (!radio.begin()) { // nRF24L01+'yı başlat.
Serial.println("nRF24L01+ bağlantıları yanlış veya temazsızlık var. nRF24L01+ bozulmuş olabilir."); //nRF24L01+ modülü başlamıyorsa uyarı ver.
while (1) {}
}
radio.openWritingPipe(1234); // İletişim anahtarı 1234.
}
void loop() {
char veri[] = "Test tamam.";
radio.write(&veri, sizeof(veri)); //Veriyi gönder.
}
Kod:
#include <SPI.h> // nRF24L01+ ile SPI iletişim.
#include <RF24.h> // v1.4.2
RF24 radio(9, 10); // radio isimli nesne oluştur. CE ve CSN pinleri.
void setup() {
Serial.begin(9600); // Hataları seri monitörde görebilmek için seri iletişimi başlat.
if (!radio.begin()) { // nRF24L01+'yı başlat.
Serial.println("nRF24L01+ bağlantıları yanlış veya nRF24L01+ bozulmuş olabilir."); //nRF24L01+ modülü başlamıyorsa uyarı ver.
while (1) {}
}
radio.openReadingPipe(0, 1234); // İletişim anahtarı 1234.
radio.startListening(); // Alıcı moda geç.
}
void loop() {
if (radio.available()) { // Veri geliyorsa...
char veri[12];
radio.read(&veri, sizeof(veri));
Serial.println(veri); //Seri ekrana gelen veriyi yazdır.
}
}
Not: parçaları pcb'de titmak için kısa parmaklı header kullanıyorum.