Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 7 kwi 2026, o 16:02


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 
Autor Wiadomość
PostNapisane: 9 kwi 2014, o 18:35 
Offline
Nowy

Dołączył(a): 01 lut 2014
Posty: 23
Pomógł: 0

Witam,
napisałem taki program, niestety wydaje mi się, że żadne sygnały nie wchodzą na ULN'a ...
Coś źle robie? Bo od niedawna wziąłem się za programowanie i niewiele jeszcze umiem.

Kod:
  #include <avr/io.h>   
   #include <util/delay.h>
   
    #define DIR PD3 
    #define CLOCK PD2
   #define ENABLE PD7
   #define HALF PD4
 
    void io_init (void) // Ustawienia pinów
   {     
     DDRD |= 0b10011100; 
    } 
     
    //***************************************************************** 
     
    void left (void) // Kręcenie w lewo   
    { 
     PORTD |= (1<<DIR);   
    } 
     
    //*****************************************************************

   void krok (void) // skok wirnika o określony kąt
   {
   PORTD |= (1<<CLOCK);
   _delay_ms(20);
   PORTD &= ~(1<<CLOCK);
   _delay_ms(20);
   }
     
    //*****************************************************************
   
    void zasilanie (void) // prąd płynie przez silnik
    {
    PORTD |= (1<<ENABLE);
    }
   
    //*****************************************************************
 
    void RODZAJ (void) // sterowanie półkrokowe
    {
    PORTD |= (1<<HALF);
    }
   
    //*****************************************************************
 
    int main (void) // Początek programu
   {   
     io_init();
    zasilanie();
    RODZAJ();
    left();
   
     while (1) // pętla główna
    {
     krok();
     } 
    } 

   


Dodam również, że sterowanie silnikiem za pomocą samych ULN'ów odbywało się prawidłowo (inny kod) ale nie było dość efektywne. Dorzuciłem więc L297 żeby uzyskać większą moc ale nie wiem gdzie robie błąd.

schemat:
Obrazek

VCC - 5V
VCCIO - 12V

_________________
Nigdy się nie poddawaj, kiedy upadasz wstawaj !!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 kwi 2014, o 18:55 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 sty 2013
Posty: 1760
Pomógł: 196

Witam
Czaro napisał(a):
Dorzuciłem więc L297

..a ten dorzucony to w.g jakiegoś przykładu czy tak z głowy.
Pytam, ponieważ nie robiłem na nim nic ale w.g noty kat. PIN16 ma być podłączony jako osc.
Obrazek

Pozdr.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 kwi 2014, o 18:57 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 lut 2013
Posty: 376
Lokalizacja: Kłopoty-Stanisławy
Pomógł: 33

Czaro napisał(a):
    void io_init (void) // Ustawienia pinów
   {     
     DDRD |= 0b10011100; 
    } 


Skoro binarnie ustawiasz cały port to po co kombinujesz z OR ?

daj po prostu:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


poza tym na razie tyle widzę w kodzie :)

_________________
50 znaków Atnela ....



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 kwi 2014, o 19:02 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 mar 2013
Posty: 739
Lokalizacja: Poznań
Pomógł: 84

Witam
nie piszesz jaki masz efekt na silniku tzn.
nie daje żadnych oznak "życia" ?
czy może "chciał by ale boi się" ? :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 kwi 2014, o 19:08 
Offline
Nowy

Dołączył(a): 01 lut 2014
Posty: 23
Pomógł: 0

Nic się nie dzieje, silnik nawet nie drgnie.

kicajek - czyli pin 16 mam podłączyć przez kondensator do masy i przez rezystor do mojego Vcc ? I wtedy w programie też musze jakoś ten oscylator uwzględnić ?

_________________
Nigdy się nie poddawaj, kiedy upadasz wstawaj !!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 kwi 2014, o 19:37 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 sty 2013
Posty: 1760
Pomógł: 196

Witam
Jak wspominałem, nie robiłem nic na tym scalaku; porównałem tylko Twój schemat z notą katalogową.
Nie twierdzę więc że jest źle - jest inaczej.
Datashet napisał(a):
An RC network (R to VCC, C to ground) connected to this terminal
determines the chopper rate. This terminal is connected to ground
on all but one device in synchronized multi - L297 configurations. f
@ 1/0.69 RC


Pozdr.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 kwi 2014, o 18:57 
Offline
Nowy

Dołączył(a): 01 lut 2014
Posty: 23
Pomógł: 0

to kod jest ok ?

_________________
Nigdy się nie poddawaj, kiedy upadasz wstawaj !!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 9 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO