Servo Sinyal Pini Aşırı Hassas
  • Merhaba arkadaşlar; yaklaşık bir senedir arduino ile uğraşıyorum ancak ilk defa böyle bir sorunla karşılaştım. yaptığım araştırmanın sonucunda bir çözüm bulamadım. Umarım bu sorunu da aşarız. Kullandığım board Arduino Uno r3, servoları harici güç kaynağı ile besliyorum ancak servonun sinyal pinini arduinonun ilgili çıkışına taktığım anda digitalwrite() komutunu vermememe rağmen servo sonuna kadar dönüp duruyor ve orada zorlamaya devam ediyor, sanki sürekli digitalwrite(180); miş gibi. Böyle bir durumu tecrübe eden ve çözüme ulaşan arkadaşlar yardımcı olursa sevinirim. Teşekkürler
  • Hangi anahtar kelimelerle araştırdınız, neler çıktı karşınıza?
  • İlk olarak forumdaki http://forum.arduinoturkiye.com/discussion/104/servo-problemi konusunu inceledim. Yeterli derecede servoları besleyebilen bir adaptör kullandığım için sorunun bu olmadığını düşündüm. Daha önceden bir kaç kere kaşılaştığım statik elektriklenme ile ilgili yabancı kaynaklarda da arama yaptım ancak sadece pinmode(x,INPUT) daki parazitleri gidermek için pulldown resistor kullanımı ile ilgili örnekler çıktı. Böyle bir durum olacağını düşünerek servo için atadığım pine pulldown resistor bağladım ancak sorun devam ediyor.
  • Servo kütüphanesinde digitalwrite diye bir fonksiyon yok. Onu kullandığınızda sürekli sürme sinyali gönderir doğal olarak.
  • Foruma post ederken yanlışlıkla yazmışım. yoksa kodda bir hata yok. Örnek kodlar içerisindeki servo\sweep örneğinide denedim ancak aynı sorun devam ediyor. Harici güç kaynağını değiştirip yeniden deneyeceğim.
  • Arduino ile Servo motorları kontrol etmek oldukça kolaydır.Örneğin bir Arduino uno ile basit bir örnek uygulama yapalım. Yandaki şema gösterildiği gibi servo motorun 5 VDC ( besleme ) bağlantısını, ve 11 nolu pine'de PWM bağlantısını yapınız.

    Ve aşağıda yazılı olan kodları uygulayalım...


    #include

    Servo myservo;

    void setup() {

    myservo.attach(11); // servo 11 nolu pin kontrol edecektir

    }

    void loop() {

    myservo.write(180);

    delay(2000);

    myservo.write(90);

    delay(2000);

    myservo.write(0);

    delay(2000);

    }

    Alıntı

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.