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.

Atmega8 + l293D - Obsługa silnika krokowego

04 Gru 2011 16:53 2711 6
  • Poziom 12  
    Witam serdecznie.
    Chciałem poprosić o pomoc w tym prostym projekcie. Na płytce prototypowej podłączyłem do µC układ L293D, do niego silnik krokowy z czterema wyprowadzeniami(silnik z drukarki). Wszystko podłączyłem wg noty katalogowej drivera. Mój problem polega na tym, że po odpaleniu programu silnik wykonuje krok w przód i krok w tył. Nic poza tym. Czy to wina silnika czy programu? Oto kod:
    Code:

    #define F_CPU 1000000ul

    #include <avr/io.h>

    #include <avr/interrupt.h> 
    #include <util/delay.h>


    void main(void)

    {   
       char licznik = 0;


       DDRD = 0xFF;
       PORTD = 0x00;
       
       while(1)
       {
       if(licznik > 0)
       {
            licznik--;
       }
       else
       {
            licznik = 3;
       }
       
       switch(licznik)
       {
             case 0:
       {
       PORTD &= ~0x08;
       PORTD |= 0x03;
       break;
       }
             case 1:
       {
       PORTD &= ~0x01;
       PORTD |= 0x04;
       break;
       }
             case 2:
       {
       PORTD &= ~0x02;
       PORTD |= 0x08;
       break;
       }
             case 3:
       {
       PORTD &= ~0x04;
       PORTD |= 0x01;
       break;
       }
           }
           _delay_ms(200);
         }
       



    } // main





  • Poziom 38  
    Twoja wina- to Ty napisałeś taki program.
    I jeszcze te wcięcia kodu- nie wiadomo co się gdzie kończy.
  • Poziom 19  
    Nie zauważyłeś, że nigdy nie wykona Ci się case 0. to tak na początek. Dalej rozkminiaj, wina jak najbardziej po stronie programu.
  • Specjalista - Mikrokontrolery
    kuba1im napisał:
    Nie zauważyłeś, że nigdy nie wykona Ci się case 0. to tak na początek.

    Wykona się!
    Problem leży prawdopodobnie w podłączeniu silnika.
    Pokaż schemat i zacznij od "ręcznego" sterowania silnikiem wtedy będziesz wiedział jak nim sterować.
  • Poziom 19  
    Dobrze, wykona się, mój błąd, przepraszam.
  • Poziom 16  
    Przetestowałem program na płytce stykowej i sekwencja stanów na porcie D wygląda bardzo dziwnie. Na pewno nie ma to nic wspólnego ze sterowaniem silnika krokowego bipolarnego.

    Na początek proponuję przejrzeć serię artykułów z Edw na temat silników krokowych.
    Silniki krokowe od podstaw
    W części trzeciej jest wyjaśnione jak sterować silnikiem bipolarnym.
  • Poziom 10  
    Na początek zmień kolejnośc par biegunów silnika krokowego.