Şimdi Ara

Servo Duraklıyor

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
1 Misafir - 1 Masaüstü
5 sn
3
Cevap
0
Favori
358
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Merhabalar.
    Alıcı verici modül ile Kızılötesinden gelen veriyi iletmeye çalışıyorum. Bu sırada Servo motor sensörü 15 ile 165 derecelik açılar arasında döndürüyor. Fakat sıkıntım şu ki servo motor arada 1-2 saniyelik duraklamalar yaşıyor. Sizce sebebi nedir? Kodlar şu şekilde:

    #include <SPI.h> 
    #include <nRF24L01p.h>
    #include <String.h>
    #include <Servo.h>.

    nRF24L01p verici(10,9);
    /* CSN - > 7, CE -> 8 olarak belirlendi */

    const int trigPin = 14;
    const int echoPin = 19;

    long duration;
    int distance;

    Servo myServo;

    float MESAFE;
    static char veri[10];

    void setup() {
    pinMode(trigPin, OUTPUT);
    pinMode(echoPin, INPUT);
    Serial.begin(9600);
    myServo.attach(9); // Servo motor sinyal pini

    Serial.begin(9600);
    SPI.begin();
    SPI.setBitOrder(MSBFIRST);
    /* SPI başlatıldı */
    verici.channel(90);
    verici.TXaddress("Hasbi");
    verici.init();
    /* Verici ayarları yapıldı */
    }
    void loop() {
    // 15 derece ile 165 derece arasında dön
    for(int i=15;i<=165;i++){ myServo.write(i); delay(30); distance = calculateDistance(); Serial.print(i); Serial.print(","); Serial.print(distance); Serial.print("."); } for(int i=165;i>15;i--){
    myServo.write(i);
    delay(30);
    distance = calculateDistance();
    Serial.print(i);
    Serial.print(",");
    Serial.print(distance);
    Serial.print(".");
    }
    }

    int calculateDistance(){

    digitalWrite(trigPin, LOW);
    delayMicroseconds(2);

    digitalWrite(trigPin, HIGH);
    delayMicroseconds(10);
    digitalWrite(trigPin, LOW);
    duration = pulseIn(echoPin, HIGH);
    distance= duration*0.034/2;
    return distance;


    dtostrf(MESAFE,2, 3, veri);
    /* float değerindeki sıcaklık stringe çevrildi */

    verici.txPL(veri);
    boolean gonderimDurumu = verici.send(FAST);
    /* Sıcaklık bilgisi nRF24L01'e aktarıldı */
    /* Eğer gönderim başarısız olursa gonderimDurumu'nun değeri false olacaktır */
    if(gonderimDurumu==true){
    Serial.println("mesaji gonderildi");
    }else{
    Serial.println("mesaji gonderilemedi");
    }

    delay(1000);
    }







  • Kablosuz iletişimde bu tip sıkıntılar kodların sağlıklı çalışmamasından kaynaklanır. En altta ki 1sn lik beklemeyi azaltmayı denedin mi?

    < Bu ileti tablet sürüm kullanılarak atıldı >
  • valala6 V kullanıcısına yanıt
    Denedim fakat sonuç aynı malesef.
  • Yapay Zeka’dan İlgili Konular
    Dc Motor Hız Kontrol Devresi
    2 yıl önce açıldı
    Akülü araba ivmelenme ayarı
    4 yıl önce açıldı
    Daha Fazla Göster
    
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.