Znaleziono 7 wyników

autor: karol75
12 sty 2017, 08:22
Forum: Silniki Krokowe / Sterowniki Silników Krokowych
Temat: Atmega162/Atmega32 BA6845FS
Odpowiedzi: 11
Odsłony: 2176

To jest podłączenie z drukarki fiskalnej Elzab Eco(po odczycie).
Tam siedzi kompletny układ na Atmega32(wskazówka dla innych z kąt brać gotowe układy) i ma właśnie podłączone przewody silnika według moich danych(złącze). Niestety ma połączone wszystkie Stroby w jedno i szarpie mocno prądem, dlatego zrobiłem własny układ.
W tym podłączeniu pracują zawsze dwie cewki silnika i wał ustawia się pomiędzy cewkami.
Obecnie silnik pracuje prawidłowo, przewija papier z opuszczoną głowicą.
autor: karol75
11 sty 2017, 23:09
Forum: Silniki Krokowe / Sterowniki Silników Krokowych
Temat: Atmega162/Atmega32 BA6845FS
Odpowiedzi: 11
Odsłony: 2176

Silnik - drukarka termiczna MLT288 i MLT388 mają ten sam silnik
W nocie określony jako
Motor(VH) 0.5 A MAX 0.3 A mean current VH=7.2V, 840PPS

Feeding pitch 0.125 mm Motor's 2 stepping span

Characteristics of the Stepping Motor
Table 4-1 General Characteristics of the Stepping Motor
Item______________________________Rating
Type______________________________Permanent magnet type
No. of phases_______________________4 phases
Driving system______________________Bipolar chopper driving
Excitation__________________________2-2
Winding resistance/phase______________18 Ω / phase
Rating voltage_______________________7.2 V
Driving current_______________________Approx. 0.5 A
Driving frequency_____________________To be determined by driving voltage

IN OUT
11_______21_____12_____22_______________11_____21_____12_____22
--------------------------------------------------------------
_1_______1_______1_______1________________7_______0_______0_______0
_1_______0_______1_______1________________7_______7_______0_______0
_0_______0_______1_______1________________0_______7_______7_______0
_0_______1_______1_______1________________0_______0_______7_______0
_1_______1_______0_______1________________7_______0_______0_______0
_1_______0_______0_______1________________7_______0_______0_______0
_0_______0_______0_______1________________7_______0_______7_______0
_0_______1_______0_______1________________0_______0_______7_______0
_1_______1_______0_______0________________0_______0_______0_______0
_1_______0_______0_______0________________0_______0_______0_______0
_0_______0_______0_______0________________0_______0_______0_______0
_0_______1_______0_______0________________0_______0_______0_______0
_1_______1_______1_______0________________0_______0_______0_______0
_1_______0_______1_______0________________0_______7_______0_______0
_0_______0_______1_______0________________0_______7_______0_______0
_0_______1_______1_______0________________0_______0_______0_______0



Wygląda na to że miałem uszkodzony scalak Brak wyjścia 22

Po wymianie

IN OUT
11_______21_____12_____22_______________11_____21_____12_____22
--------------------------------------------------------------
_1_______1_______1_______1________________7_______0_______0_______7
_1_______0_______1_______1________________7_______7_______0_______0
_0_______0_______1_______1________________0_______7_______7_______0
_0_______1_______1_______1________________0_______0_______7_______0
_1_______1_______0_______1________________0_______0_______7_______7

Uzyskałem pełny obrót

Po wymianie silnik szaleje.
Dzięki za pomoc.
autor: karol75
11 sty 2017, 19:55
Forum: Silniki Krokowe / Sterowniki Silników Krokowych
Temat: Atmega162/Atmega32 BA6845FS
Odpowiedzi: 11
Odsłony: 2176

Niestety to nie koniec moich zmagań
po zmianie czasów rozdzielających kroki silnika (inne operacje) zaczął znowu głupieć.


Doszedłem do wniosku że muszę dokładnie zbadać temat i to co ustaliłem:
Po lewej piny sterujące po prawej napięcia na wyjściu
po lewej stany logiczne, po prawej napięcia zmierzone na wyjściu bez podłączonego silnika.
IN OUT
11_______21_____12_____22_______________11_____21_____12_____22
--------------------------------------------------------------
_1_______1_______1_______1________________7_______0_______0_______5,5
_1_______0_______1_______1________________7_______7_______0_______5,5
_0_______0_______1_______1________________0_______7_______7_______0
_0_______1_______1_______1________________0_______0_______7_______0
_1_______1_______0_______1________________5_______0_______1_______5
_1_______0_______0_______1________________1_______7_______0_______0
_0_______0_______0_______1________________1_______7_______0_______1
_0_______1_______0_______1________________5_______0_______0_______3
_1_______1_______0_______0________________5_______3_______0_______3
_1_______0_______0_______0________________1_______1_______0_______0
_0_______0_______0_______0________________1_______1_______0_______0
_0_______1_______0_______0________________5_______3_______0_______3
_1_______1_______1_______0________________7_______5_______0_______5
_1_______0_______1_______0________________7_______3_______0_______5
_0_______0_______1_______0________________0_______0_______7_______0
_0_______1_______1_______0________________0_______1_______7_______0


Silnik podłączony jest do Wyprowadzeń OUT
cewki podłączone są
1 cewka OUT 11 i 12
2 cewka OUT 21 i 22
autor: karol75
19 gru 2016, 18:40
Forum: Silniki Krokowe / Sterowniki Silników Krokowych
Temat: Atmega162/Atmega32 BA6845FS
Odpowiedzi: 11
Odsłony: 2176

Re: Atmega162/Atmega32 BA6845FS

Nie, nie tutaj był problem
zmieniłem sekwencję

void nextstep(uint8_t dir)
{
if(step==0)
{
MPort &= ~((1<<IN11)|(1<<IN21));
}
if(step==1)
{
MPort |= (1<<IN11);
MPort &= ~((1<<IN21));

}
if(step==2)
{
MPort |= (1<<IN11)|(1<<IN21);
}
if(step==3)
{
MPort &= ~((1<<IN11));
MPort |= (1<<IN21);
}
step++;
if(step>3)step=0;
//_delay_ms(10);
}
i działa akceptowalnie.
dziękuję za odpowiedzi
autor: karol75
19 gru 2016, 10:57
Forum: Silniki Krokowe / Sterowniki Silników Krokowych
Temat: Atmega162/Atmega32 BA6845FS
Odpowiedzi: 11
Odsłony: 2176

Re: Atmega162/Atmega32 BA6845FS

Może ja nie czytam między wierszami więc nie rozumiałem.
Spróbuję z opóźnieniami.
Problem w tym że jeżeli wstawię opóźnienia wtedy znacznie spowolni się prędkość obrotowa silnika.
autor: karol75
19 gru 2016, 09:35
Forum: Silniki Krokowe / Sterowniki Silników Krokowych
Temat: Atmega162/Atmega32 BA6845FS
Odpowiedzi: 11
Odsłony: 2176

Re: Atmega162/Atmega32 BA6845FS

pitsa pisze:quote]
Najpierw powoli - jak żółw &#8211; ociężale.
:shock:
I teraz jako moderator oceń swój post i to co wnosi on do dyskusji.
autor: karol75
17 gru 2016, 09:18
Forum: Silniki Krokowe / Sterowniki Silników Krokowych
Temat: Atmega162/Atmega32 BA6845FS
Odpowiedzi: 11
Odsłony: 2176

Atmega162/Atmega32 BA6845FS

Mam problem z układem BA6845FS jest to sterownik silnika krokowego do 1A 12V
PDF BA5845FS

Zasilam go z napięcia 7,5V (napięcie nie zależne od silnika)
Podpięty jest do Atmega162(lub Atmega32)
Efekt jest taki że rzuca silnikiem, a jeżeli już załapie to kręci się albo przypadkowo albo w złą stronę.

Kod: Zaznacz cały

uint8_t step = 0;
#define MPort PORTC
#define IN11   2
#define IN21   1
#define IN12   3
#define IN22   4
...
void nextstep(uint8_t dir)
{
	if(step==0)
	{
		MPort &= ~((1<<IN11)|(1<<IN21));
	}
	if(step==1)
	{
		MPort &= ~((1<<IN11));
		MPort |= (1<<IN21);
	}
	if(step==2)
	{
		MPort |= (1<<IN11)|(1<<IN21);
	}
	if(step==3)
	{
		MPort |= (1<<IN11);
		MPort &= ~((1<<IN21));
	}
	step++;
	if(step>3)step=0;

}

int main (void)
{
	//Inicjacja Silnika
	DDRC  = ((1<<IN11)|(1<<IN21)|(1<<IN12)|(1<<IN22));
	MPort = (1<<IN11)|(1<<IN21)|(1<<IN12)|(1<<IN22);
	MPort |= (1<<IN12)|(1<<IN22);
...
}
Chodzi o sekwencję.
Jak prawidłowo powinno się nim sterować?

Wróć do „Atmega162/Atmega32 BA6845FS”