Atmega328p ile nrf24l01 haberleşmesi

Katılım
5 Tem 2017
Mesajlar
1
Puanları
1
Yaş
21
merhaba arkadaşlar atmega328p ile nrf24l01 i haberleştirdim ama joistikten gönderdiğim bilgi ile ledleri kontrol ediyorum fakat alıcı koduna joistik ortada olduğu zaman ledlerin tamamını söndür komutu veriyorum ama bu sefer ledler sönüyor fakat ledleri yak komutunu gönderdiğimde ledler yanıp yanıp sönüyor bunun için ne yapmam gerekir şimdiden teşekkür ederim.
yazdığım kod;
Kod:
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
RF24 radio(9,10);
const byte address[6] = "RFV01";
int msg[4];
int atm[1];
int a;
int pot;
int LED0 = 5;
int LED1 = 6;
int LED2 = 3;
int LED3 = 4;
int LED4 = 7;
int LED5 = 8;
void setup(void){
 Serial.begin(9600);
  radio.begin();
  radio.setChannel(88);
  radio.setRetries(0,0);
  radio.setDataRate(RF24_250KBPS);
  radio.setPALevel(RF24_PA_MAX);
 
  radio.openReadingPipe(0, address);
  radio.startListening();
   pinMode(LED0, OUTPUT);
 pinMode(LED1, OUTPUT);
 pinMode(LED2, OUTPUT);
 pinMode(LED3, OUTPUT);
 pinMode(LED4, OUTPUT);
 pinMode(LED5, OUTPUT);
 }

void loop(void){
 if (radio.available()){
  
 
      delay(20);

     [URL='http://radio.read/']radio.read[/URL](msg, sizeof(msg)); 
   [URL='http://radio.read/']radio.read[/URL](atm, sizeof(atm));
   if(msg[0]>1000){
 
    delay(10);

     analogWrite(LED1,msg[2]);
    analogWrite(LED0,msg[2]);
    
    digitalWrite(LED2,HIGH);//ın1
    digitalWrite(LED3,LOW);//ın2
    
    digitalWrite(LED4,HIGH);//ın3
    digitalWrite(LED5,LOW); //ın4
   }

  
 
   if(msg[0]<80){
    delay(10);

    analogWrite(LED1,msg[2]);
    analogWrite(LED0,msg[2]);
    
    digitalWrite(LED2,HIGH);//ın1
    digitalWrite(LED3,LOW);//ın2
    
    digitalWrite(LED4,LOW);//ın3
    digitalWrite(LED5,HIGH);//ın4
 
   }
 
    
   if(msg[1]>1000){
    delay(10);       

     analogWrite(LED1,msg[2]);
    analogWrite(LED0,msg[2]);
     digitalWrite(LED2,LOW);//ın1
     digitalWrite(LED3,HIGH);//ın2

     digitalWrite(LED4,LOW);//ın3
     digitalWrite(LED5,HIGH);//ın4
    
   }
 
  if(msg[1]<80){
  
    delay(10);
    
    analogWrite(LED1,msg[2]);
    analogWrite(LED0,msg[2]);
    
    digitalWrite(LED2,LOW);//ın1
    digitalWrite(LED3,HIGH);//ın2
    
    digitalWrite(LED4,HIGH);//ın3
    digitalWrite(LED5,LOW);//ın4
  
   }
 if(atm[0]==2222)
     {
      
   delay(10);
    
   digitalWrite(LED1,LOW);
     digitalWrite(LED0,LOW);
     digitalWrite(LED5,LOW);
     digitalWrite(LED2,LOW);
     digitalWrite(LED3,LOW);
     digitalWrite(LED4,LOW);
     }
    
      }
 
  }
 
Moderatör tarafında düzenlendi:

Sry26

Üye
Katılım
11 May 2017
Mesajlar
23
Puanları
3
Yaş
37
Konum
Kayseri
Arkadasim naptin kodlarini derleye bildin mi sikintin varsa yardimci olabilirim
 

John_Ahmet

Üye
Katılım
13 Kas 2018
Mesajlar
27
Puanları
3
Yaş
30
2. if bloğun else bloğu oluşturup onun içinde oluşturursan tam istediğin gibi olur. İki şartta aynı anda sağlandığı için 10 saniye arayla bir yakıp bir söndürüyor bu haliyle elbette bu gönderdiğin parametrelerin doğruluğuna da bağlı iki şartı aynı anda sağlayacak parametre göndermeyeye çalışırsan yine düzelir.
 

Sponsor Bağlantı

Forum istatistikleri

Konular
106,878
Mesajlar
753,259
Kullanıcılar
397,045
Son üye
fazlı26

Yeni konular

Üst