Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Powielanie kroków przez silnik krokowy na Arduino

28 Maj 2018 11:36 543 10
  • Poziom 15  
    Witam, Chciałbym zrealizować sterowanie silnikiem krokowym poprzez Arduino. Dostaję sygnał prostokątny z czujnika i chciałbym aby po 1 impulsie z czujnika silnik wykonał np 3 kroki po 2 impulsach np 6 kroków itd chciałbym również tą rozdzielczość regulować np za pomocą potencjometru.
  • Poziom 39  
    Czego oczekujesz, czekasz na gotowy program?
  • Poziom 15  
    Nie liczę na gotowy program raczej na wskazówki na czym go oprzeć. Myślałem nad PWM ale czy da się zdefiniować wypełnienie PWM poprzez np iloczyn wejścia pierwszego pod który podłącze potencjometr oraz wejścia np drugiego na które będę podawał impulsy z czujnika ponadto gdy brak impulsów z czujnika silnik ma stać.
  • Poziom 39  
    Jak duży jest silnik krokowy? Ile Nm. Są drivery silników, które w czasie bezczynności utrzymują pozycję. Taki driver sterujesz kierunek - krok. Do zadawania ilości kroków możesz zastosować impulsator obrotowy, enkoder - wygląda jak potencjometr jednak wytwarza impulsy, które można sumować i odejmować w mikrokontrolerze. https://www.google.pl/search?tbm=isch&sa=1&ei....19.1334...0i67k1j0i30k1j0i24k1.0.1jWhH_ok1oQ
    https://www.google.pl/search?q=driver+silnika...=2ahUKEwiYrLqQ-qzbAhXhPZoKHV8NA88QrnZ6BAgBEBM
  • Poziom 15  
    Silnik krokowy 86HS156-4208 12N.m 8-mio przewodowy a Sterownik CNC silnika krokowego TB6600 - 4A . Enkodera nie mogę zastosować ze względu na zbyt ciężkie warunki. Impulsy są zadawane z czujnika ABS z piasty wzmacniane przez wzmacniacz operacyjny i filtrowane przez przerzytnik Schmitta . chcę przyspieszyć silnik krokowy bo 1:1 jest za wolny.
  • Poziom 33  
    tomek2 napisał:
    Witam, Chciałbym zrealizować sterowanie silnikiem krokowym poprzez Arduino. Dostaję sygnał prostokątny z czujnika i chciałbym aby po 1 impulsie z czujnika silnik wykonał np 3 kroki po 2 impulsach np 6 kroków itd chciałbym również tą rozdzielczość regulować np za pomocą potencjometru.


    Na podaną ilość informacji można powiedzieć tylko tyle:
    - Arduino wykrywa zbocze sygnału czujnika ABS po czym generuje n impulsów o częstotliwości f [Hz]

    W praktyce to powinieneś podać informacje takie jak:
    - maksymalna częstotliwość sygnału z czujnika ABS
    - czy częstotliwość ABS będzie const. czy będzie się zmieniać w czasie i jak będzie się zmieniać
    - jaką dynamikę (rampę) powinien mieć silnik a raczej obiekt przez niego napędzany, czas rozpędzania, hamowania, Vmax
    - opisz problem dokładniej to ktoś może zaproponuje lepsze rozwiązanie
  • Poziom 15  
    Koło od samochodu 15" R60 z którego będą zbierane impulsy i będzie poruszało się z maksymalną prędkością około 12km/h. Prędkość na pewno nie będzie stała w funkcji czasu.
  • Poziom 31  
    tomek2 napisał:
    Koło od samochodu 15" R60 z którego będą zbierane impulsy i będzie poruszało się z maksymalną prędkością około 12km/h. Prędkość na pewno nie będzie stała w funkcji czasu.


    Czyli ile będziesz miał tych impulsów na sekundę przy maksymalnej prędkości ?
  • Poziom 15  
    Impulsów będzie około 300-330/s przeliczając po wypustkach w piaście.
  • Poziom 15  
    Propozycja mojego programu jest poniżej jeszcze kwestia dopracowania jeżeli chodzi o zatrzymanie itp. ale zarys jakiś mam pytanie czy to się sprawdzi w mojej aplikacji. Liczę na jakieś wskazówki.

    #define pin 7
    #define ledPin 11
    #define analogPin 0
    unsigned long czas;
    int nastawa;

    void setup()
    {
    pinMode(pin, INPUT);
    pinMode(ledPin, OUTPUT);
    }

    void loop()
    {
    czas = pulseIn(pin, HIGH);
    nastawa = analogRead(analogPin);
    tone(ledPin, czas * (nastawa * 2));

    }
  • Poziom 15  
    Witam, zmieniłem założenia projektu. Będzie założona felga stalowa od Passata B5 i czujnik zbliżeniowy. Na kole mam 20 dziur więc na 1 obrót przypada 20 sygnałów kroku. Z założenia prędkość nie będzie przekraczała 10km/h tj. 2,8m/s czyli licząc obwód koła który wyniesie 0,6m otrzymam maksymalnie około 95 sygnałów kroku na sekundę. Zakładając również że silnik ma kopiować obroty 1:1 na 1 sygnał z koła przypada 10 kroków silnika. Pytanie brzmi czy Arduino będzie w stanie wykonać tyle operacji. Poniżej załączam kod który gdzieś podejrzałem na YouTube i zmodyfikowałem pod siebie proszę o sugestię.

    Kod: c
    Zaloguj się, aby zobaczyć kod