step motor rampa ile hızlanma yardımı.
  • yeni başladım fazla bir bilgi yok ufak bir yardım.
    basla butonu ile rampalı hızlanma buton bırakılınca duracak her basmada aynı işlem olması lazım ama
    ben tek sefer rampalı başlatıyorum ikinci basla butonu kaldığı hızda başlıyor,


    // step motoru her seferde basla ile düşük hızdan yüksek hıza çıkartma
    // basla butonu ile rampalı hızlanma buton bırakılınca duracak
    // tekrar basla butonu ile rampalı hızlanma buton bırakılınca duracak



    int x = 800;
    const int BaslaPin = 2; // başlatma
    void setup() {

    pinMode(BaslaPin, INPUT);
    pinMode(12, OUTPUT); // pals sinyali çıkısı
    digitalWrite(12, LOW);

    }
    void loop() {
    if ( digitalRead(BaslaPin) == HIGH) {
    for (int j = 0; j < 3000; j++) {

    for (int i = 0; i < 1; i++) {
    digitalWrite(12, HIGH);
    delayMicroseconds(x);
    digitalWrite(12, LOW);
    //delayMicroseconds(x);
    }
    if (x > 140) x--;
    }
    }
    }
  • buton bırakıldığında yani

    if ( digitalRead(BaslaPin) == LOW)

    ise x değerine 800 (rampa başlangıç değeri) atamalısın..
  • msg , sağol

    fakat ben her basla komutu verdiğimde
    0 dakika devirden ortama 600 dakika devire çıkmasını atanan zaman içerisinde durmasını istiyorum.

    benim kodda sadece tek seferde gerçekleşiyor
    ikinci seferde stop ettiği devir de çalışıyor, yani sıfır değerinden başlamıyor.
  • denedim yine aynı.
  • int x = 800; // Rampa delayı
    const int BaslaPin = 2; // başlatma
    void setup() {

    pinMode(BaslaPin, INPUT);
    pinMode(12, OUTPUT); // pals sinyali çıkısı
    digitalWrite(12, LOW);

    }
    void loop()
    {
    if ( digitalRead(BaslaPin) == HIGH)
    {
    for (int j = 0; j < 3000; j++)
    {
    digitalWrite(12, HIGH);
    delayMicroseconds(10);
    digitalWrite(12, LOW);
    delayMicroseconds(x);

    if (x > 140) x--;
    }
    }
    if ( digitalRead(BaslaPin) == LOW){x=800;}

    }


    Böyle bi dene bakalım nolacak

    butona basıldığında 3000 pals verir 800 microsecondla başlar 140 microsecondla devam eder. 10 microsecond pals arası değerdir. zamana ve hıza etkendir ona göre ayarlamalısın
    800 ve 140 değerlerini..
  • msg

    teşekkür ederim,

    Sorunum çözüldü.

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.