• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Silnik krokowy - wolne obroty
#1
Witajcie Smile
To mój pierwszy post na tym forum i moje pierwsze zabawy z Arduino. 
Postanowiłem zrobić sobie małe urządzenie do laboratorium a mianowicie taki mały młyn kulowy.
Znalazłem w internecie jak wykonać mechanizm sterowany Arduino. Zamówiłem wszystko, podłączyłem, wgrałem gotowy kod no i kilka rzeczy mnie zdziwiło:

1. Silniczek dość wolno się kręci, a na filmiku znacznie szybciej.
2. Jak dojadę potencjometrem do połowy to obroty zmieniają się w drugą stronę.

Czy da się jakoś to zmienić aby:

1. Silniczek kręcił się szybciej
2. Obroty się nie zmieniały?

Dziękuję za wyrozumiałość i przepraszam za pytania laika Smile

kod:

Kod:
/*
* Unipolar stepper motor speed and direction control with Arduino
*   and joystick
* This is a free software with NO WARRANTY.
* https://simple-circuit.com/
*/

// include Arduino stepper motor library
#include <Stepper.h>

// define number of steps per revolution
#define STEPS 32

// define stepper motor control pins
#define IN1  11
#define IN2  10
#define IN3   9
#define IN4   8

// initialize stepper library
Stepper stepper(STEPS, IN4, IN2, IN3, IN1);

// joystick pot output is connected to Arduino A0
#define joystick  A0

void setup()
{
 
}

void loop()
{
  // read analog value from the potentiometer
  int val = analogRead(joystick);

  // if the joystic is in the middle ===> stop the motor
  if(  (val > 500) && (val < 523) )
  {
    digitalWrite(IN1, LOW);
    digitalWrite(IN2, LOW);
    digitalWrite(IN3, LOW);
    digitalWrite(IN4, LOW);
  }

  else
  {
    // move the motor in the first direction
    while (val >= 523)
    {
      // map the speed between 5 and 500 rpm
      int speed_ = map(val, 523, 1023, 5, 500);
      // set motor speed
      stepper.setSpeed(speed_);

      // move the motor (1 step)
      stepper.step(1);

      val = analogRead(joystick);
    }

    // move the motor in the other direction
    while (val <= 500)
    {
      // map the speed between 5 and 500 rpm
      int speed_ = map(val, 500, 0, 5, 500);
      // set motor speed
      stepper.setSpeed(speed_);

      // move the motor (1 step)
      stepper.step(-1);

      val = analogRead(joystick);
    }

  }

}


Załączone pliki Miniatury
       
 
Odpowiedź
  


Wiadomości w tym wątku
Silnik krokowy - wolne obroty - przez ion.liq - 28-12-2022, 14:19
RE: Silnik krokowy - wolne obroty - przez MadMrQ - 28-12-2022, 20:46
RE: Silnik krokowy - wolne obroty - przez kaczakat - 28-12-2022, 21:14
RE: Silnik krokowy - wolne obroty - przez Jarewa0606 - 29-12-2022, 08:06

Skocz do:


Przeglądający: 1 gości