problem ze sterowaniem bipolarnym silnikiem krokowym

Dyskusje na temat silników krokowych i sterowników silników krokowych.

Autor tematu
mgucio
Nowy użytkownik, używaj wyszukiwarki
Nowy użytkownik, używaj wyszukiwarki
Posty w temacie: 5
Posty: 5
Rejestracja: 22 paź 2008, 12:58
Lokalizacja: Zabrze

problem ze sterowaniem bipolarnym silnikiem krokowym

#1

Post napisał: mgucio » 02 gru 2009, 19:54

witam serdecznie.

Mam problem ze sterowaniem bipolarnym silnikiem krokowym( 4 przewody)podlączonym do sterownika silników krokowych(schemat sterownika na zdjęciu). Sterowanie ma odbywac sie przy pomocy mikrokontrolera ATmega 8.Sterownik silnika krokowego posiada nastepujące wejścia:Enable,Dir,Clk,NC,+,-. Jakie sygnały mam dać na te wejscia by silnik zaczął sie kręcić?

ps.(ktos podpowiedział mi ze na wejscie Enable mam podać 1(właczenie) ,wejscie dir to zmiana obrotów 0- lewo,1-prawo,a na wejście CLK naprzemiennie 0 i 1(częstotliwosc podania wpłynie na predkość obracania silnika),na wejscie NC nic nie podaje.
NApisałem program na mikrokontroler który na te wejscia podaje takie wartosci ale to nic nie daje .silnik krokowy nie startuje.
Prosze o jakas podpowiedzObrazek[/img]Obrazek



Tagi:


morswin
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 2
Posty: 164
Rejestracja: 30 wrz 2007, 21:54
Lokalizacja: Legnica

#2

Post napisał: morswin » 02 gru 2009, 22:47

A prąd silnika ustawiony?

Awatar użytkownika

zacharius
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 2
Posty: 2560
Rejestracja: 04 paź 2007, 01:32
Lokalizacja: Kraków
Kontakt:

#3

Post napisał: zacharius » 03 gru 2009, 08:18

tego typu sterownik jest opisany tu na forum. przeważnie tematem jest podawanie sygnałów dymnych z ktorejś z 3ch kości. ale mniejsza o to.
kolego, jak dobrze pamiętam przy logicznym zerze w programie atmega daje +5V na wyjście a przy 1 zwiera do masy. wydaję mi się że tu leży pies. L297 potrzebuje +5 na wysterowanie.
więc spróbuj odwrócić zera i jedynki w programie.

ps czy silnik "trzyma" po włączeniu całości jeżeli nie dajesz sygnału CLK?
Nie otrzymasz koni wyścigowych krzyżując dwa osły


morswin
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 2
Posty: 164
Rejestracja: 30 wrz 2007, 21:54
Lokalizacja: Legnica

#4

Post napisał: morswin » 03 gru 2009, 10:00

zacharius pisze:kolego, jak dobrze pamiętam przy logicznym zerze w programie atmega daje +5V na wyjście a przy 1 zwiera do masy.
Co tu Kolega opowiada w atmega jak i L297 jest standard TTL i logiczne 0 to potencjał masy a logiczna jedynka to +5V.

Awatar użytkownika

zacharius
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 2
Posty: 2560
Rejestracja: 04 paź 2007, 01:32
Lokalizacja: Kraków
Kontakt:

#5

Post napisał: zacharius » 03 gru 2009, 10:24

aż zobaczę w domu i porobie fotki, byl jakiś tam kruczek.

BTW przeszukałem cały pdf na atmege 8 i ani słowa o TTL
Nie otrzymasz koni wyścigowych krzyżując dwa osły


krzysiekgrab
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 1
Posty: 741
Rejestracja: 16 lip 2008, 15:07
Lokalizacja: Polska, Augustow

#6

Post napisał: krzysiekgrab » 03 gru 2009, 11:51

Sprawdź najpierw czy sam sterownik(bez atmegi) reaguje, czyli jak kolega wyżej napisał czy sinik trzyma, czy robi kroki przy "ręcznym" taktowaniu, oraz czy reaguje na zmiany dir.
„Jeżeli nie znasz portu do którego płyniesz,
to żadne wiatry nie będą Ci sprzyjać”

Programowanie sterowników PLC Fatek, HMI Weintek, sterowniki maszyn CNC, Mach3;


Leoo
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 5
Posty: 4017
Rejestracja: 15 lis 2006, 22:01
Lokalizacja: Tarnobrzeg

#7

Post napisał: Leoo » 03 gru 2009, 12:25

mgucio pisze:ktos podpowiedział mi ze na wejscie Enable mam podać 1(właczenie) ,wejscie dir to zmiana obrotów 0- lewo,1-prawo,a na wejście CLK naprzemiennie 0 i 1(częstotliwosc podania wpłynie na predkość obracania silnika),na wejscie NC nic nie podaje.
Wszystko się zgadza, tylko nie zapomnij połączyć masy procesora GND z wejściem X1-1 (minus).

Jakim napięciem zasilany jest silnik?


Autor tematu
mgucio
Nowy użytkownik, używaj wyszukiwarki
Nowy użytkownik, używaj wyszukiwarki
Posty w temacie: 5
Posty: 5
Rejestracja: 22 paź 2008, 12:58
Lokalizacja: Zabrze

#8

Post napisał: mgucio » 03 gru 2009, 18:01

Krzysiekgrab: po załączeniu sterownika bez atmegi silnik krokowy "trzyma" .przy poruszaniu kabli podłączonych np. do wejścia enable sterownika silnik zaczyna sie poruszac wiec mysle ze ze strownikiem jest wszystko wporządku

[ Dodano: 2009-12-03, 18:10 ]
leoo: silnik zasilany jest obecnie napięciem 19V;3,42 A (max do 46V-tak podał mi gosc od którego kupiłem ten silnik).Z tego co pamiętam silnik ten pobiera prą 2.5 A wiec chyba zasilacz jest dobrze dobrany.


Leoo
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 5
Posty: 4017
Rejestracja: 15 lis 2006, 22:01
Lokalizacja: Tarnobrzeg

#9

Post napisał: Leoo » 03 gru 2009, 18:33

mgucio pisze:silnik zasilany jest obecnie napięciem 19V;3,42 A
Tu jest OK.
Jeśli soft napisany jest poprawnie, to jedyną przyczyną problemów pozostaje słaba wydajność prądowa portów procesora dla stanu logicznego H.
Proponuję do każdego wyjścia (DIR, CLK, EN) podłączyć opornik podciągający 1k do VCC.
Może Kolega opublikować schemat?


Autor tematu
mgucio
Nowy użytkownik, używaj wyszukiwarki
Nowy użytkownik, używaj wyszukiwarki
Posty w temacie: 5
Posty: 5
Rejestracja: 22 paź 2008, 12:58
Lokalizacja: Zabrze

#10

Post napisał: mgucio » 03 gru 2009, 20:50

//programik do obrotow silnika

#include <avr/io.h> // dostęp do rejestrów
#define F_CPU 8000000UL // częstotliwość zegara w Hz
#define cbi(sfr, b) (sfr &= ~(1<<b)) // bit 0 na pin portu
#define sbi(sfr, b) (sfr |= (1<<b)) // bit 1 na pin portu
#include <util/delay.h>

void delay_ms(uint8_t ms)
{
while(ms)
{
_delay_ms(1);
ms--;
}
}

// Definicje funkcji



int main(void) // program główny
{

DDRA=0xFF; //wszystkie wyjścia PORT A
cbi(PORTC,0);// stan niski-wlączenie-enable
sbi(PORTA,4);// stan wysoki -obroty zgodnie z kierunkiem wskazówek zegara


while(1)
{ // podanie zmiany sygnałow z niskiego
//na wysoki wejscie CLK
cbi(PORTA,1);
_delay_ms(1);
sbi(PORTA,1);
_delay_ms(1);
}



}
Jest on dobrze napisany?

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „Silniki Krokowe / Sterowniki Silników Krokowych”