<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl-pl">
<link rel="self" type="application/atom+xml" href="https://forum.atnel.pl/feed.php?f=30&amp;t=23418&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2020-11-17T22:08:19+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=30&amp;t=23418&amp;mode</id>
<entry>
<author><name><![CDATA[RafalP]]></name></author>
<updated>2020-11-17T22:08:19+01:00</updated>
<published>2020-11-17T22:08:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23418&amp;p=229869#p229869</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23418&amp;p=229869#p229869"/>
<title type="html"><![CDATA[Re: Problem z silnikiem skokowym]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23418&amp;p=229869#p229869"><![CDATA[
Sprawdzę, dziękuję.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21609">RafalP</a> — 17 lis 2020, o 22:08</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Elwood]]></name></author>
<updated>2020-11-16T00:11:30+01:00</updated>
<published>2020-11-16T00:11:30+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23418&amp;p=229845#p229845</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23418&amp;p=229845#p229845"/>
<title type="html"><![CDATA[Re: Problem z silnikiem skokowym]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23418&amp;p=229845#p229845"><![CDATA[
Moim zdaniem najszybciej i najpewniej to lub coś podobnego<br /><!-- m --><a class="postlink" href="https://www.ebmia.pl/sterowniki-silnikow-krokowych/625-sterownik-silnika-krokowego-ssk-b03-m542-42a.html" >https://www.ebmia.pl/sterowniki-silniko ... 2-42a.html</a><!-- m --><br /><br />sterowanie prosto z mikrokontrolera, i po ustawieniu kilku przełączników sterujesz czym chcesz bez obawy o prad, zabezpieczenia termiczne i prądowe, czasy itd a czas poświęcony na rozkmine programu i poprawki poświęć na naukę programowania. Po to są gotowe układy aby z nich korzystać. Jeżeli dalej będziesz wolał sam - ok ale zapoznaj się proszę chociaż z sama dokumentacja tego urządzenia z linku - jest tam wiele istotnych informacji odnośnie silników i ich zasilania które myślę ze się tobie przydadzą <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2545">Elwood</a> — 16 lis 2020, o 00:11</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[RafalP]]></name></author>
<updated>2020-11-08T16:52:31+01:00</updated>
<published>2020-11-08T16:52:31+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23418&amp;p=229737#p229737</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23418&amp;p=229737#p229737"/>
<title type="html"><![CDATA[Re: Problem z silnikiem skokowym]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23418&amp;p=229737#p229737"><![CDATA[
Jako nowy użytkownik nie mogę publikować linków. Chciałem wkleić w poście z opisem co wtedy mierzyłem.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21609">RafalP</a> — 8 lis 2020, o 16:52</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Szofer]]></name></author>
<updated>2020-11-08T16:48:18+01:00</updated>
<published>2020-11-08T16:48:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23418&amp;p=229736#p229736</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23418&amp;p=229736#p229736"/>
<title type="html"><![CDATA[Re: Problem z silnikiem skokowym]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23418&amp;p=229736#p229736"><![CDATA[
Kopiujesz jeszcze link i wklejasz tu do swojego posta<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7664">Szofer</a> — 8 lis 2020, o 16:48</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[RafalP]]></name></author>
<updated>2020-11-08T16:46:03+01:00</updated>
<published>2020-11-08T16:46:03+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23418&amp;p=229735#p229735</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23418&amp;p=229735#p229735"/>
<title type="html"><![CDATA[Re: Problem z silnikiem skokowym]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23418&amp;p=229735#p229735"><![CDATA[
Jak mam dodać obrazek do postu?<br />Wykonałem zrzuty z oscyloskopu i chciałem dodać, klikam w &quot;Dodaj obrazek&quot;, ale coś jest zbugowane i nic się nie dzieje.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21609">RafalP</a> — 8 lis 2020, o 16:46</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Szofer]]></name></author>
<updated>2020-11-06T21:12:37+01:00</updated>
<published>2020-11-06T21:12:37+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23418&amp;p=229710#p229710</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23418&amp;p=229710#p229710"/>
<title type="html"><![CDATA[Re: Problem z silnikiem skokowym]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23418&amp;p=229710#p229710"><![CDATA[
Prąd trzymajacy to zadziałanie 2 cewek, wtedy każda cewka ciagnie w swoją stronę, aby zmniejszyć grzanie się silnika prąd można zmniejszyć o 50%,<br />Z tego co mi wiadomo działanie kroków to cykl cewek,<br />A -&gt; AB -&gt; B -&gt; BA -&gt; A <br />i odwrotnie w drugą stronę, <br /><br />Lub sterowac dwiema cewkami naraz ważna jest w tedy biegunowość/polaryzacja czyli +/- z której strony cewki się znajduje, tak wykorzystuje się pełna moc silnika<br /><br />Przy dużej czestotliwosci nie ma aż takiego znaczenia z &quot;dziurą&quot; prądową pomiędzy STEP bo czas pomiędzy zmianą cewek jest bardzo krótki,<br /><br />Jesli moje myślenie jest błędne niech któż z wiedza mnie poprawi<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7664">Szofer</a> — 6 lis 2020, o 21:12</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[RafalP]]></name></author>
<updated>2020-11-06T20:52:58+01:00</updated>
<published>2020-11-06T20:52:58+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23418&amp;p=229709#p229709</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23418&amp;p=229709#p229709"/>
<title type="html"><![CDATA[Re: Problem z silnikiem skokowym]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23418&amp;p=229709#p229709"><![CDATA[
Potrzeba 0.4 A na cewkę.<br />Nie odpowiem na pytania o program, bo głównie dlatego tu napisałem, żeby ktoś w wolnej chwili na niego popatrzył. Ja nie dostrzegam już własnych błędów. I najprawdopodobniej jak ktoś to zrobi to poprawię kod programu.<br />Dokładnego prądu na cewkę nie mierzyłem, mam wskazanie z zasilacza. Ale to będzie jakiś prąd uśredniony dla wszystkich cewek w każdym cyklu. Musiałbym włączyć w szereg jakiś dokładny rezystor o dużej dokładności, ale bardzo niskiej rezystancji (rezystancja cewki to ledwie 30 Ω) i próbować na oscyloskopie to badać.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21609">RafalP</a> — 6 lis 2020, o 20:52</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Szofer]]></name></author>
<updated>2020-11-06T20:01:00+01:00</updated>
<published>2020-11-06T20:01:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23418&amp;p=229706#p229706</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23418&amp;p=229706#p229706"/>
<title type="html"><![CDATA[Re: Problem z silnikiem skokowym]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23418&amp;p=229706#p229706"><![CDATA[
Off top: Hehehe wyjść na środek usiąść i się rozpłakać hehehe<br />Nie bierz tego do siebie ale nie mogłem się powstrzymać odp na Twoje pytanie.<br /><br />A teraz na poważnie,<br /><br />Ile prądu potrzebuje silnik na cewke?<br />Czy w programie masz prąd trzymajacy?<br />Jak zmienia ci się STEP silnika?  z &quot;dziurą&quot; prądową czy bez? <br /><br />Nie analizowałem twojego kodu. <br /><br />Popraw program.<br /> PS. Mam nadzieję że bana nie dostanę.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7664">Szofer</a> — 6 lis 2020, o 20:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[RafalP]]></name></author>
<updated>2020-11-06T18:53:00+01:00</updated>
<published>2020-11-06T18:53:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23418&amp;p=229705#p229705</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23418&amp;p=229705#p229705"/>
<title type="html"><![CDATA[Re: Problem z silnikiem skokowym]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23418&amp;p=229705#p229705"><![CDATA[
Wszystko co piszesz ma sens, ale co ja mam w związku z tym zrobić?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21609">RafalP</a> — 6 lis 2020, o 18:53</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Szofer]]></name></author>
<updated>2020-11-06T18:46:01+01:00</updated>
<published>2020-11-06T18:46:01+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23418&amp;p=229704#p229704</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23418&amp;p=229704#p229704"/>
<title type="html"><![CDATA[Re: Problem z silnikiem skokowym]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23418&amp;p=229704#p229704"><![CDATA[
Masz poprostu za mały prąd, tu chodzi o prąd trzymajacy, czyli na cewkach, jeśli na cewkach nie ma prądu trzymającego to co ma go trzymać?<br /> A to co utyka to jest ze pomiędzy przełączaniem się cewek masz &quot;dziurę&quot; prądową czyli jego brak,<br />Na cewce masz tak długo trzymać prąd aż nie włączysz prądu na kolejną cewke,<br />To nie tak jak w PWM ze podajesz impuls a resztę robi bezwładność wirnika silnika.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7664">Szofer</a> — 6 lis 2020, o 18:46</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[RafalP]]></name></author>
<updated>2020-11-06T18:29:24+01:00</updated>
<published>2020-11-06T18:29:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23418&amp;p=229701#p229701</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23418&amp;p=229701#p229701"/>
<title type="html"><![CDATA[Problem z silnikiem skokowym]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23418&amp;p=229701#p229701"><![CDATA[
To mój pierwszy post na forum, więc przede wszystkim witam wszystkich serdecznie!<br /><br />Piszę tutaj, ponieważ potrzebuję pomocy w zrozumieniu błędu rozumowania lub pomocy w usunięciu błędu w programowaniu.<br />Mam zakupiony zestaw ATB 1.05a. Do wyprowadzeń MOT1 i MOT2 podłączyłem silnik skokowy zakupiony w tym sklepie:<br />botland.com.pl/pl/silniki-krokowe/3607-silnik-krokowy-jk42hs34-0404-200-krokowobr-12v-04a-025nm.html<br />200 impulsów na obrót, 0.25 Nm, napięcie znamionowe 12 VDC.<br />Układ taktowany rezonatorem kwarcowym 11.059200 MHz<br />Do pinów portu D kontrolera podłączyłem wejścia układu L293D, odpowiednio:<br />M1_1A -&gt; PD5<br />M1_2A -&gt; PD4<br />M2_3A -&gt; PD7<br />M2_4A -&gt; PD6<br />Docelowo ma to być napęd przekładni 1x9 z regulowaną prędkością obrotową. Przekładnia jest tak zaprojektowana, że przy odpowiednich wartościach rejestru OCR0 na wyjściu osiąga interesujące mnie prędkości obrotowe.<br />Problem polega na tym, że cała przekładnia wydaje się nieźle pracować, bez większego oporu da się palcami całą przekładnią obracać. Ale kiedy silnik ją napędza wystarczy przyłożyć delikatne obciążenie (także do pierwszego koła zębatego) i silnik utyka. Zastosowałem sterowanie dwufazowe, pełnokrokowe. Próbowałem również przed utykiem podnosić napięcie na zasilaczu regulowanym. Jest to dla mnie bardzo dziwne, ponieważ moment trzymający tego silnika wynosi 2.6kg*cm - co (jak dobrze rozumiem) oznacza, że na ramieniu o promieniu 1cm jest w stanie urzymać 2.6kg w spoczynku. To absolutnie się nie zgadza. W związku z tym chciałem prosić forumowiczów o pomoc w znalezieniu błędu w kodzie, bo pracuję nad tym już od jakiegoś czasu i nie dostrzegam.<br />Poniżej załączam kod programu.<br />Będę bardzo wdzięczny za wszelką pomoc.<br /><br />[syntax=c]/* dołączanie bibliotek */<br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;stdint.h&gt;<br /><br /><br />/* konfiguracja */<br />#define tryb 2//1 - sterowanie jednoazowe, 2 - dwufazowe<br />#define prescaler 1024//wartosc prescalera do timera0 w trybie CTC<br /><br /><br />/* definicje wartości prescalera */<br />#if prescaler == 0<br />#define prescaler_bits TCCR0 |= (0&lt;&lt;CS02)|(0&lt;&lt;CS01)|(1&lt;&lt;CS00)//usawienie odpowiednich bitów w rejestrze TCCR0 dla prescalera<br />#elif prescaler == 8<br />#define prescaler_bits TCCR0 |= (0&lt;&lt;CS02)|(1&lt;&lt;CS01)|(0&lt;&lt;CS00)//usawienie odpowiednich bitów w rejestrze TCCR0 dla prescalera<br />#elif prescaler == 64<br />#define prescaler_bits TCCR0 |= (0&lt;&lt;CS02)|(1&lt;&lt;CS01)|(1&lt;&lt;CS00)//usawienie odpowiednich bitów w rejestrze TCCR0 dla prescalera<br />#elif prescaler == 256<br />#define prescaler_bits TCCR0 |= (1&lt;&lt;CS02)|(0&lt;&lt;CS01)|(0&lt;&lt;CS00)//usawienie odpowiednich bitów w rejestrze TCCR0 dla prescalera<br />#elif prescaler == 1024<br />#define prescaler_bits TCCR0 |= (1&lt;&lt;CS02)|(0&lt;&lt;CS01)|(1&lt;&lt;CS00)//usawienie odpowiednich bitów w rejestrze TCCR0 dla prescalera<br />#endif<br /><br /><br />/* definicje pinów sterujących silnikiem*/<br />#define A (1&lt;&lt;PD5)<br />#define C (1&lt;&lt;PD4)<br />#define B (1&lt;&lt;PD7)<br />#define D (1&lt;&lt;PD6)<br /><br /><br /><br />/* definicje kroków sterujących pracą silnika */<br />#if tryb == 1//jednofazowe<br />#define KROK1 PORTD |= A; PORTD &amp;= ~(B|C|D)<br />#define KROK2 PORTD |= B; PORTD &amp;= ~(A|C|D)<br />#define KROK3 PORTD |= C; PORTD &amp;= ~(A|B|D)<br />#define KROK4 PORTD |= D; PORTD &amp;= ~(A|B|C)<br /><br />#elif tryb == 2//dwufazowe<br />#define KROK1 PORTD |= A|D; PORTD &amp;= ~(C|B)<br />#define KROK2 PORTD |= D|C; PORTD &amp;= ~(B|A)<br />#define KROK3 PORTD |= C|B; PORTD &amp;= ~(A|D)<br />#define KROK4 PORTD |= B|A; PORTD &amp;= ~(D|C)<br />#endif<br /><br /><br />/* deklaracja funkcji obsługi silnika */<br />static void silnik_stop(void);<br />static void kroki_lewo(void);<br />static void kroki_prawo(void);<br /><br /><br />/* deklaracja zmiennych globalnych */<br />uint8_t OCR0_mark = 53;<br />unsigned long freq;<br />volatile uint8_t ms_flag;<br /><br />enum edir {lewo, prawo, stop};<br />enum edir dir = lewo;<br /><br /><br /><br />int main(void) {<br /><br />silnik_stop();//zatrzymanie silnika<br /><br /><br />/* ustawienie TIMER0 */<br />TCCR0 |= (1&lt;&lt;WGM01);// tryb CTC<br />prescaler_bits;//ustawienie wartości prescalera<br />OCR0 = OCR0_mark;//dodatkowy podział (rej. przepełnienia)<br />TIMSK |= (1&lt;&lt;OCIE0);//zezwolenie na przerwanie CompareMatch<br /><br />GICR |= (1&lt;&lt;INT0) | (1&lt;&lt;INT1);//zezwolenie na przerwanie zewnętrzne INT0 i INT1<br />MCUCR |= (1&lt;&lt;ISC01) | (1&lt;&lt;ISC11);//przerwanie INT0 i INT1 na zbocze opadające<br /><br /><br />sei();//włączenie przerwań gobalnych<br /><br />while(1) {<br /><br />OCR0 = OCR0_mark;//dodatkowy podział (rej. przepełnienia)<br /><br /><br />if(ms_flag) {//sprawdzenie flagi przerwania timera t0<br /><br />if(lewo==dir) kroki_lewo();//wybór kierunku obrotów<br />if(prawo==dir) kroki_prawo();//wybór kierunku obrotów<br /><br />ms_flag = 0;//zerowanie flagi przerwania timera t0<br />}<br /><br />}<br />}<br /><br />/* funkcja zatrzymująca silnik */<br />static void silnik_stop(void) {<br />PORTD &amp;= ~(A|B|C|D);<br />}<br /><br />/* funkcja wykonująca cyklicznie kroki (obrót w lewo) */<br />static void kroki_lewo(void) {<br />static uint8_t kr;<br /><br />if( kr == 0 ) { KROK1; }<br />if( kr == 1 ) { KROK2; }<br />if( kr == 2 ) { KROK3; }<br />if( kr == 3 ) { KROK4; }<br /><br />if( ++kr &gt; 3 ) kr=0;<br />}<br /><br />/* funkcja wykonująca cyklicznie kroki (obrót w prawo) */<br />static void kroki_prawo(void) {<br />static uint8_t kr;<br /><br />if( kr == 0 ) { KROK4; }<br />if( kr == 1 ) { KROK3; }<br />if( kr == 2 ) { KROK2; }<br />if( kr == 3 ) { KROK1; }<br /><br />if( ++kr &gt; 3 ) kr=0;<br />}<br /><br /><br /><br />/* ================= PROCEDURA OBSŁUGI PRZERWANIA – COMPARE MATCH ================= */<br /><br />ISR(TIMER0_COMP_vect)<br />{<br />ms_flag = 1;//ustawienie flagi przerwania timer t0<br />PORTC ^= (1&lt;&lt;PC0);//zmiana stanu pinu PC0 - dioda LED przerwania<br /><br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21609">RafalP</a> — 6 lis 2020, o 18:29</p><hr />
]]></content>
</entry>
</feed>