Rf haberleşme hatası çizgi izleyen robot prj
  • Merhaba hatasız çalışan çizgi izleyen robot projesine 433 mhz verici eklemek için void setup() altına , vw_setup(2000); satırını yazdığım da robot hareket etmiyor. bu satır silinip tekrar derlenip yüklendiğinde hata yok. (#include <VirtualWire.h> satırı programın ilk satırında mevcut ve arduino kütüphanesinde klasör olarakta eklenmiş olmasına rağmen. yorumunuz ne olur ,muhtemelen bir şeyleri atlıyorum.
  • benim bildiğim bant genişliği0-10000 arasında olabiliyor.
    vw_set_tx_pin(12);
    vw_setup (4000);
    ayrıca alıcı ve verici mantığıyla çalıştığından alıcının da frekansı vericiyle aynı olması gerekmekte.
    ve de kütüphane dosyasının içinin boş olmadığından emin ol. bazen .h bomboş olabiliyor başıma geldi.
  • #include <VirtualWire.h> char *controller; int c; int a; int ena=10; //PWM için enable pin giriş pini tanımlanır SOL P int in1=6; //Motor1 için (+) pin giriş pini tanımlanır SOL G int in2=7; //Motor1 için (-) pin giriş pini tanımlanır SOL İ int enb=11; //PWM için enable pin giriş pini tanımlanır SAĞ P int in3=8; //Motor2 için (+) pin giriş pini tanımlanır SAĞ İ int in4=9; //Motor2 SAĞ G const int sol_sensor = 2; const int sag_sensor = 3; const int ort_sensor = 5; const int led=13; int sol_durum, sag_durum, ort_durum; // sol ve sağ sensörün durum değişkenleri tanımlandı void ilet(){ for(c=1;c<5;c++){ vw_set_tx_pin(4); vw_setup(4000); controller="1" ; vw_send((uint8_t *)controller, strlen(controller)); vw_wait_tx(); // Wait until the whole message is gone digitalWrite(13,1); delay(2000); controller="0" ; vw_send((uint8_t *)controller, strlen(controller)); vw_wait_tx(); // Wait until the whole message is gone digitalWrite(13,0); delay(2000); if(c==5){loop();} } } void setup() { pinMode(13,OUTPUT); pinMode(ena,OUTPUT); pinMode(in1,OUTPUT); pinMode(in2,OUTPUT); pinMode(enb,OUTPUT); pinMode(in3,OUTPUT); pinMode(in4,OUTPUT); pinMode(sag_sensor, INPUT); // sensör pinleri giriş pini olarak atandı pinMode(sol_sensor, INPUT); pinMode(ort_sensor, INPUT); pinMode(13,OUTPUT); } void loop() { c==0; sol_durum = digitalRead(sol_sensor); // sol ve sağ sensör okunup değişkenlere kaydedildi. sag_durum = digitalRead(sag_sensor); ort_durum = digitalRead(ort_sensor); if (sol_durum == LOW && sag_durum == LOW && ort_durum ==LOW){ // iki sensör de siyah görmüyor ise motorlar ileri gidecek şekilde çalışıtırıldı. digitalWrite(7,HIGH); //Sol analogWrite(10,195); digitalWrite(8,HIGH); //Sag analogWrite(11,195); } else if (sol_durum == LOW && sag_durum == HIGH && ort_durum == LOW) // sağ sensör siyah görüyor ise motorlar sağa dönecek şekilde çalıştırıldı. { digitalWrite(7,HIGH); analogWrite(10,190); digitalWrite(8,LOW); //Sag analogWrite(11,255); } else if (sol_durum == HIGH && sag_durum == LOW && ort_durum == LOW) // sol sensör siyah görüyor ise motorlar sola dönecek şekilde çalıştırıldı. { digitalWrite(7,LOW); //Sol analogWrite(10,255); digitalWrite(8,HIGH); analogWrite(11,190); } else if (ort_durum == HIGH ) //arka sensör siyah görüyor ise yavaşla ve dur. { delay(200); digitalWrite(7,LOW); //Sol // DUR analogWrite(10,255); digitalWrite(8,LOW); //Sag analogWrite(11,255); delay(1000); ilet(); } }
  • Merhaba bu hali ile ,yani " vw_setup(4000); " satırı void setup altında değilde ilet etiketinin altında iken 1 kez robot normal ilerleyip "ort_ durum sensörü high olduğunda verici ile karşıya bilgi gönderiyor fakat sonra sağ motor sürekli dönüyor.Eğer " vw_setup(4000); " satırı void setup() altında olur ise robot hiç hareket etmiyor. bu arada ilk baştaki include satırı virtualwire olarak devam ediyor aslında aa kopyalar iken çıkmamış.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Açık kaynak kültürü gereği, çözdüğünüz problemlerin çözümlerini paylaşmayı lütfen unutmayın.