5 buton veya 10k pot ile step motoru dir ve pulse iki pinle surmek
  • merhabalar,
    8.5 nm bir step motorum var ve surucusunu arduino ile pulse ve dir olarak iki pinle 300 rpm hıza kadar hız kontrolu yapabilecek sekilde surmek istiyorum..
  • motorun ve sürücün nedir önce onları söylemelisin daha sonra yardım edebilirim sana
  • tesekkurler cevabınız icin..aradıgımı webde ardiuno pulse direction ile surme olarak arattırdıgımda buldum..isimi epey gordu..isine lazım olan arkadaslar icin kodları asagıda verdim.


    #include

    // Define the stepper and the pins it will use
    AccelStepper stepper1(1, 9, 8);

    // Define our three input button pins
    #define LEFT_PIN 4
    #define STOP_PIN 3
    #define RIGHT_PIN 2

    // Define our analog pot input pin
    #define SPEED_PIN 0

    // Define our maximum and minimum speed in steps per second (scale pot to these)
    #define MAX_SPEED 6000
    #define MIN_SPEED 0

    void setup() {
    // The only AccelStepper value we have to set here is the max speeed, which is higher than we'll ever go
    stepper1.setMaxSpeed(6000.0);

    // Set up the three button inputs, with pullups
    pinMode(LEFT_PIN, INPUT_PULLUP);
    pinMode(STOP_PIN, INPUT_PULLUP);
    pinMode(RIGHT_PIN, INPUT_PULLUP);
    }

    void loop() {
    static float current_speed = 0.0; // Holds current motor speed in steps/second
    static int analog_read_counter = 1000; // Counts down to 0 to fire analog read
    static char sign = 0; // Holds -1, 1 or 0 to turn the motor on/off and control direction
    static int analog_value = 0; // Holds raw analog value.

    // If a switch is pushed down (low), set the sign value appropriately
    if (digitalRead(LEFT_PIN) == 0) {
    sign = 1;
    }
    else if (digitalRead(RIGHT_PIN) == 0) {
    sign = -1;
    }
    else if (digitalRead(STOP_PIN) == 0) {
    sign = 0;
    }

    // We only want to read the pot every so often (because it takes a long time we don't
    // want to do it every time through the main loop).
    if (analog_read_counter > 0) {
    analog_read_counter--;
    }
    else {
    analog_read_counter = 1000;
    // Now read the pot (from 0 to 1023)
    analog_value = analogRead(SPEED_PIN);
    // Give the stepper a chance to step if it needs to
    stepper1.runSpeed();
    // And scale the pot's value from min to max speeds
    current_speed = sign * ((analog_value/1023.0) * (MAX_SPEED - MIN_SPEED)) + MIN_SPEED;
    // Update the stepper to run at this new speed
    stepper1.setSpeed(current_speed);
    }

    // This will run the stepper at a constant speed
    stepper1.runSpeed();
    }

Howdy, Stranger!

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

Login with Facebook

Tagged

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