eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronika › Algorytm choppera do silnika krokowego
Ilość wypowiedzi w tym wątku: 8

  • 1. Data: 2009-11-09 17:02:30
    Temat: Algorytm choppera do silnika krokowego
    Od: Sebastian Biały <h...@p...onet.pl>

    Witam.

    Mam silnik unipolarny i 4 tranzystory sterowane poziomami logicznymi
    oraz komparator od strony masy na rezestorze pomiarowym.

    Chce uzyskac jakiś sensowny algorytm sterowania silnikiem krokowym.

    Przekroczenie prądu w silniku sygnalizwoane jest przez komparator i
    podawane na wejście INT procesora wywołujac przerwanie.

    Algorytm teraz wygląda tak:

    unsigned char zalaczone_cewki = 0;

    void przerwanie_co_1_mikrosekunde( void )
    {
    port_silnikow = zalaczone_cewki
    }

    void przerwanie_przy_przekroczeniu_pradu( void )
    {
    port_silnikow = 0;
    }

    main(void)
    {
    while( 1 )
    {
    zalaczone_cewki = 0x01;
    pauza_1ms();
    zalaczone_cewki = 0x02;
    pauza_1ms();
    zalaczone_cewki = 0x04;
    pauza_1ms();
    zalaczone_cewki = 0x08;
    pauza_1ms();
    }
    }

    Problem w tym, że nie wiem czy to sensowny algorytm sterowania silnikiem
    krokowym. Czy ktoś ma pomysł co mozna zmienić aby uzyskac sensowne
    działanie? Co prawda to działa poprawnie, ale mam wrażenie, ze silnik
    moze wyciągnąc więcej, tym bardziej że na scalonym sterowniku wyciąga
    wyższe obroty. Co robie źle ?


  • 2. Data: 2009-11-09 19:25:13
    Temat: Re: Algorytm choppera do silnika krokowego
    Od: Paweł <p...@n...pl>

    S
    > zalaczone_cewki = 0x01;
    > pauza_1ms();
    > zalaczone_cewki = 0x02;
    > pauza_1ms();
    > zalaczone_cewki = 0x04;
    > pauza_1ms();
    > zalaczone_cewki = 0x08;
    > pauza_1ms();

    Czy przypadkiem sekwencja nie powinna wyglądać tak:
    1001
    0101
    0110
    1010

    Paweł


  • 3. Data: 2009-11-09 19:35:09
    Temat: Re: Algorytm choppera do silnika krokowego
    Od: Waldemar Krzok <w...@z...fu-berlin.de>

    Paweł wrote:

    > S
    >> zalaczone_cewki = 0x01;
    >> pauza_1ms();
    >> zalaczone_cewki = 0x02;
    >> pauza_1ms();
    >> zalaczone_cewki = 0x04;
    >> pauza_1ms();
    >> zalaczone_cewki = 0x08;
    >> pauza_1ms();
    >
    > Czy przypadkiem sekwencja nie powinna wyglądać tak:
    > 1001
    > 0101
    > 0110
    > 1010

    zalezy. Moze byc tez tak:
    1, 3, 2, 6, 4, 12, 8, 9 albo
    5, 3, 10, 6, 5, 12, 10, 9

    Waldek


  • 4. Data: 2009-11-09 19:54:39
    Temat: Re: Algorytm choppera do silnika krokowego
    Od: Zbych <a...@o...pl>

    Sebastian Biały przemówił ludzkim głosem:

    > Problem w tym, że nie wiem czy to sensowny algorytm sterowania silnikiem
    > krokowym. Czy ktoś ma pomysł co mozna zmienić aby uzyskac sensowne
    > działanie? Co prawda to działa poprawnie, ale mam wrażenie, ze silnik
    > moze wyciągnąc więcej, tym bardziej że na scalonym sterowniku wyciąga
    > wyższe obroty. Co robie źle ?

    1. Po zmianie kroku przez pewien czas powinieneś ignorować sygnał
    przekroczenia prądu.
    2. Po przekroczeniu prądu i wyłączeniu drivera, powinieneś odczekać
    trochę, zanim znowu włączysz driver (czas martwy). Jeśli w tym czasie
    zmieniasz krok, to patrz punkt 1.

    Wartości czasów musisz dobrać sam obserwując prąd na oscyloskopie i
    "uciąg" silnika.

    PS. to przerwanie co 1us trochę mnie rozbawiło. To przykład, czy na
    serio tak masz?


  • 5. Data: 2009-11-09 21:24:35
    Temat: Re: Algorytm choppera do silnika krokowego
    Od: Sebastian Biały <h...@p...onet.pl>

    Zbych wrote:
    > 1. Po zmianie kroku przez pewien czas powinieneś ignorować sygnał
    > przekroczenia prądu.
    > 2. Po przekroczeniu prądu i wyłączeniu drivera, powinieneś odczekać
    > trochę, zanim znowu włączysz driver (czas martwy). Jeśli w tym czasie
    > zmieniasz krok, to patrz punkt 1.

    Sprawdzę.

    > Wartości czasów musisz dobrać sam obserwując prąd na oscyloskopie i
    > "uciąg" silnika.

    To niefajnie. Głównie dlatego, że moge miec różne silniki. miałem
    nadzieje, ze chooperowanie nie zalezy tak silnie od silnika.

    > PS. to przerwanie co 1us trochę mnie rozbawiło. To przykład, czy na
    > serio tak masz?

    Przykład. Chodziło mi o to ze kroki sa duzo wolniejsze od choppera.


  • 6. Data: 2009-11-09 21:26:19
    Temat: Re: Algorytm choppera do silnika krokowego
    Od: Sebastian Biały <h...@p...onet.pl>

    Paweł wrote:
    > Czy przypadkiem sekwencja nie powinna wyglądać tak:
    > 1001
    > 0101
    > 0110
    > 1010

    To tylko przykład był. W rzeczywistości mam 8 kroków a nie 4. Nie ważne,
    ważny jest sam chopper.


  • 7. Data: 2009-11-10 14:14:02
    Temat: Re: Algorytm choppera do silnika krokowego
    Od: "J.F." <j...@p...onet.pl>

    Użytkownik "Sebastian Biały" <h...@p...onet.pl>
    > Zbych wrote:
    >> PS. to przerwanie co 1us trochę mnie rozbawiło. To przykład, czy
    >> na serio tak masz?
    > Przykład. Chodziło mi o to ze kroki sa duzo wolniejsze od
    > choppera.

    Uf, a juz sie balem .. ze to mozliwe.
    Chociaz w sumie .. czemu nie ?

    J.


  • 8. Data: 2009-11-10 22:39:24
    Temat: Re: Algorytm choppera do silnika krokowego
    Od: Jerry1111 <j...@w...pl.pl.wp>

    J.F. wrote:
    > Użytkownik "Sebastian Biały" <h...@p...onet.pl>
    >> Zbych wrote:
    >>> PS. to przerwanie co 1us trochę mnie rozbawiło. To przykład, czy na
    >>> serio tak masz?
    >> Przykład. Chodziło mi o to ze kroki sa duzo wolniejsze od choppera.
    >
    > Uf, a juz sie balem .. ze to mozliwe.
    > Chociaz w sumie .. czemu nie ?

    Zalezy ile u-krokow...

    --
    Jerry1111

strony : [ 1 ]


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: