Şimdi Ara

Doğru çalışan arduino 5dk sonra hatalı çalışıyor

Bu Konudaki Kullanıcılar:
1 Misafir - 1 Masaüstü
5 sn
3
Cevap
0
Favori
472
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Merhabalar,


    Arkadaşlar arduino uno klon kullanıyorum. Projemde arduino belli bir süre düzgün çalıştıktan sonra hata moduna geçiyor ve ne yaparsam yapayım bir türlü düzelmiyor ancak bilgisayara bağlayıp kodu içerisine tekrar attıktan sonra düzeliyor.



    Arduino da kodu size açıklayayım,


    Bir adet dc motor var bu motor bir tırpan işlevinde çalışıyor ve yani ince dalları buduyorum. İlk önce butona basılıp basılmadığını arduinodan okuyup daha sonra akım değerini okuyorum(acs712) eğer 19 amperden düşük ise motoru çalıştır, akım yüksek ise durdur(kalın dallarda motor tıkanıp motor yanmaması için). Temelde bu amaç üzerine kuruldu. Sahaya teste çıktığımda 5 - 10 dakika normal çalışıyor daha sonra motor sürücüsüne anlık pulse yollar gibi bir tepki veriyor makina ve sürekli bu modda kalıyor. Diğer fonksiyonlar çalışmıyor. Arduino yu resetliyorum yada arduinonun pilini çıkartıp takıyorum bazen düzeliyor bir süre sonra yine aynı hata ve daha sonra hiç düzelmiyor.


    Acaba sorun nerede olabilir ?





    Devre bağlantım


    Doğru çalışan arduino 5dk sonra hatalı çalışıyor






    Ardunio daki kod:



    #include "ACS712.h"

    #define butonoku A1 // A1 pininden butona basılıp basılmadığı okunacak

    int butondegeri = 0;

    int motor = 13;



    //aşağıda fonksiyonda A0 pini akım okuma için atandı

    ACS712 ACS(A0, 5.0, 1023, 66); // acs712 fonksiyonu için hazır yazılmış.Burada "66" değeri 30 amperlik versiyon içindir



    void setup() {


    Serial.begin(9600);

    pinMode(motor, OUTPUT);

    ACS.autoMidPoint(); // ACS712 fonksiyonunu çağır

    }



    void loop()

    {




    int mA = ACS.mA_DC(); // fonksiyon değerini mili amper cinsinden hesapladı


    butondegeri = analogRead(butonoku); //butona basılıp basılmadığını kontrol et


    if (butondegeri==0) // Butona basılmadıysa motoru durdur

    {

     Serial.println("butona basilmadi");

     Serial.println(butondegeri);

     digitalWrite(motor,LOW);

     delay(200);

    }


    else // Butona basıldığında motoru enerjilendir. Akım değerini oku

    { Serial.println("******butona basildi******* ");



    Serial.println("akim ma:");

    Serial.println(mA);

    digitalWrite(motor,HIGH);



    if (mA>19001)

    {

     digitalWrite(motor,LOW);

     Serial.println("akim çok yüksek motor koruması");

     delay(5000); 

    }


    else if (mA<=19000) {

     digitalWrite(motor,HIGH);

     Serial.println("motor calisiyor ve akim normal"); }

     delay(200);


    }

     }




  • Besleme yetersiz olabilir mi? Pil olarak ne kullanıyorsunuz?

  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.