Atmega328p ile nrf24l01 haberleşmesi

Katılım
5 Tem 2017
Mesajlar
4
Puanları
1
Yaş
26
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:
Arkadasim naptin kodlarini derleye bildin mi sikintin varsa yardimci olabilirim
 
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.
 

Forum istatistikleri

Konular
129,689
Mesajlar
929,032
Kullanıcılar
452,391
Son üye
girisimci25

Yeni konular

Geri
Üst