Mosfetten Dijital Giriş Alma
  • Merhabalar;

    Atmega işlemci ile yapılmış bir tane 12V DC motor kontrol devresi var. Motor mosfet ile sürülüyor. Mosfetin bacaklarından arduino ma dijital giriş alabilir miyim ? Alırsam bağlantı nasıl olmalı ? While komutu ile motor durduğunda işlem yaptıracağım.

    Teşekkürler.
  • Anladığım kadarı ile Atmega motor kontrol devresi ayrı sizin arduino ayrı bir parça.
    ozaman Atmega işlemci ya bir optokuplör sürerek ordan mosfeti tetikliyor ya da doğrudan mosfeti, bu durumda GND ortak yaparak atmeganın bu parçalara gelen pinden tetiklemeyi alabilirsiniz. dilerseniz önce bu pini multimetre ile ölçün 0-5 arası gerilim ölçmeniz gerek açık kapalı konumlarda
  • motora bağlı pinlerden giriş almak istiyorsan oralarda çok ters ve yuksek akımlar olur dıkkat edin
  • Cevaplar için teşekkürler. Motor pwm ile sürülüyor bu durumda yapacak birşey yok gibi.
  • darbesayisi=pulseIn(pin, HIGH) yazdık diyelim o zaman darbe bitene kadar bir alt satıra geçmeyecek mi ?
  • pulseIn() Komutu bir pinin ne kadar süre HIGH veya LOW durumda kaldığını takip eder ve geçen süreyi mikrosaniye cinsinden döndürür,
    darbesayisi=pulseIn(pin, HIGH) yazdık diyelim HIGH olmasını bekler, zaman tutmaya başlar, sonra pinin LOW olmasını bekler ve zaman tutmayı durdurur kodlar bir alt satıra geçer.
    Belirli bir zaman içinde hiçbir (yanılmıyorsam varsayılan değeri 1sn), darbe başlamaz ise durur ve 0 döndürür, bu zamanın nekadar olacağı 3. parametre ile belirlenebilir isteğe bağlıdır pulseIn(pin, HIGH, mikrosaniye); 3. parametre unsigned long veri tipindedir

    kısaca sizin sorduğunuz alt satıra geçme olayı darbe hızına bağlı durumdur darbe nekadar çok hızlı gerçekleşirse alt satıra o kadar hızlı geçilir
  • Anladım o zaman pulsein komutu benim işime yaramayacak ki. Darbe 1 olucak 0 olucak bir alt satıra geçecek ama bu sırada motor çalışmaya devam edecek. Ben motor durduğunda bir alt satıra geçmesini istiyorum.
  • 100 ms'lik bir timer kur. Bir tane bool değişken olsun. Pwm pinini kesmeye bağla ve lojik değişimlerde kesmeye gidip bool değişkenini true yapsın. Aksi halde false olsun. (Optimize etmek amacıyla ilk true'dan sonra pin kesmesini kapatabilirsin).

    Timer kesmesi gelince bool değişkeni true ise motor çalışıyor demektir. false ise motor ya duruyor ya da son hızla dönüyor demektir. Pinin o andaki değerini okuyup motorun durup durmadığına bakarsın ve olay biter.
  • motor döndüğü sürece beklesin diyorsan

    while(pulseIn(pulsepin, HIGH) > 0 ) {
    Serial.println("Motor Aktif");
    }
    Serial.println("Motor Durdu");


    fakat ben bekletmezdim aşağıdaki gibi yapardım

    unsigned long value = pulseIn(pulsepin, HIGH);

    if(value > 0) // value değişkenindeki değer 0 dan büyükse motor çalışıyor demektir
    {
    Serial.println("Motor Aktif");
    }
    else { // aksi durumda motor durmuştur alt satır dediğiniz kodlarınızı buraya yazarsınız
    Serial.println("Motor Durdu");
    }

Howdy, Stranger!

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

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