<?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=46&amp;t=19877&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2018-01-08T15:29:50+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=46&amp;t=19877&amp;mode</id>
<entry>
<author><name><![CDATA[SylwekK]]></name></author>
<updated>2017-12-30T21:21:44+01:00</updated>
<published>2017-12-30T21:21:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19877&amp;p=201308#p201308</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19877&amp;p=201308#p201308"/>
<title type="html"><![CDATA[Re: [ARM / STM32] [C] - Generowanie Sygnału Kwadraturowego]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19877&amp;p=201308#p201308"><![CDATA[
Hmmm, z tego co widzę to raczej moja pomoc na nic się zda, bo właściwie wszystko masz oprócz... zdecydowanego prowadzącego. Albo on nie wie czego tak naprawdę oczekuje (bo mu się wydaje że wie), albo po prostu on wie tylko nie wie jak to przekazać. W każdym razie kiedy ja się biorę za jakieś zadanie to rozpisuję wszystko to co wchodzi do układu oraz wszystko to co ma z niego wyjść i wtedy wiem co tak naprawdę mogę z tym zrobić i jaką drogę projektowania wybrać.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1922">SylwekK</a> — 30 gru 2017, o 21:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[NieNawidzeSTM32]]></name></author>
<updated>2017-12-29T22:16:57+01:00</updated>
<published>2017-12-29T22:16:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19877&amp;p=201263#p201263</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19877&amp;p=201263#p201263"/>
<title type="html"><![CDATA[Re: [ARM / STM32] [C] - Generowanie Sygnału Kwadraturowego]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19877&amp;p=201263#p201263"><![CDATA[
Właśnie tu jest problem bo ja coś robiłem i miałem obsługę silnika krokowego i pokazałem doktorowi ale powiedział, że tu nie chodzi o silnik krokowy mu tylko o sam sygnał. Gadałem z nim na ten temat ale generalnie się cięzko z nim porozumieć bo to dziwny typ człowieka co nie umie powiedzieć wprost tylko rzuci słowami. Wzór znam na rozpędzanie i hamowanie znam pojęcie rampy. W rozmowie z nim ja zrozumiałem, że ilość impulsów to tak jakby ilość kroków, czas rozpędzania i hamowania też mam podać. I w moim rozumieniu to jest tak, że na początku dioda miga wolno czyli mało jest stanów wysokich na sekundę, a potem coraz więcej. Jak już bardzo szybko dioda miga to się zmniejsza znowu do minimum miganie diody. Oczywiście mam projekt napisany samodzielnie mogę go tutaj pokazać więc może wpadniemy na jakieś rozwiązanie razem. Własnie teraz czytam książkę Galewskiego o Timerach i szukam tam rozwiązania czy mogę podać tam ilość impulsów. Bo planowałem wzór który wykorzystałem na rampę do ilości kroków zmienić go na dane sygnału czyli <br />zamiast ilości kroków podać ilość impulsów <br />czas rozpędzania i hamowania to normalnie <br />prędkość maxymalna i minimalna (podać częstotliwość taktowania ?!?)<br />Aha i ma to być sygnał kwadraturowy czyli ma być na dwóch kanałach polega to na tym że wyprzedzają się one w fazie 90 stopni. Dostałem rysuneczek że ten sygnał jak zwolni to zamieniają się fazowo i teoretycznie po tym następuję obrót w przeciwną stronę, bo takie założenie tego sygnału jest. <br /><br />Tutaj jest mój algorytm, który działa jaki wykorzystałem do rampy rozpędzania i hamowania <br /><br />[syntax=c]#include &lt;iostream&gt;<br />#include &lt;cmath&gt;<br /><br />using namespace std;<br />/*<br />S(t) = V0 * t + a*t^2/2<br />V(t) = V0 + a * t =&gt; t = (V(t) - V0) / a<br />V(s) = ?<br /><br />S = V0*((V(t) - V0) / a) + 1/2*a*((V(t) - V0) / a) ^ 2 = <br />= (2*V0(V(t) - V0) + ((V(t) - V0)^2)) / 2 * a =<br />= (2*V0*V(t) - 2V0^2 + V^2(t) - 2*V(t)*V0 + V0^2) / 2 * a = <br />= (V^2(t) - V0^2) / 2*a = S<br /><br />V^2(t) = 2*a*s + V0^2<br /><br />V(krok) = sqrt(2*acceleration*krok + Vmin^2)<br /><br />*/<br />int main()<br />{<br />    int vMin = 1; // prędkość minimalna<br />    int vMax = 10; // prędkość maksymalna<br /><br />    int accelTime = 3; // czas rozpędzania<br />    int decelTime = 3; // czas hamowania<br /><br />    int currentStep = 0; // krok początkowy<br />    int totalSteps = 40; // łączna ilość kroków<br /><br />    float acceleration = (vMax - vMin) / accelTime; // przyspieszenie<br />    float deceleration = (vMax - vMin) / decelTime; // hamowanie<br /><br />float stepsAccel = ((vMin * accelTime) + (acceleration * (accelTime * accelTime)) / 2); // kroki rozpędzania<br />float stepsDecel = ((vMin * decelTime) + (deceleration  * (decelTime * decelTime)) / 2); // kroki hamowania<br /><br />    cout &lt;&lt; &quot;vMin = &quot; &lt;&lt; vMin &lt;&lt; endl;<br />    cout &lt;&lt; &quot;vMax = &quot; &lt;&lt; vMax &lt;&lt; endl &lt;&lt; endl;<br />    cout &lt;&lt; &quot;accelTime = &quot; &lt;&lt; accelTime &lt;&lt; endl;<br />    cout &lt;&lt; &quot;decelTime = &quot; &lt;&lt; decelTime &lt;&lt; endl &lt;&lt; endl;<br />    cout &lt;&lt; &quot;acceleration = &quot; &lt;&lt; acceleration &lt;&lt; endl;<br />    cout &lt;&lt; &quot;deceleration = &quot; &lt;&lt; deceleration &lt;&lt; endl &lt;&lt; endl;<br />    cout &lt;&lt; &quot;stepsXAccel = &quot; &lt;&lt; ceil(stepsAccel) &lt;&lt; endl;<br />    cout &lt;&lt; &quot;stepsXDecel = &quot; &lt;&lt; ceil(stepsDecel) &lt;&lt; endl &lt;&lt; endl;<br /><br />    if(totalSteps &gt; ceil(stepsAccel) + ceil(stepsDecel)){<br />    float v;<br />        while(currentStep &lt; totalSteps){<br />            if(currentStep &lt; ceil(stepsAccel)){ // rozpędzanie<br />                v = sqrt((2*acceleration*currentStep) + pow(vMin, 2));<br />            }else if(currentStep &lt; totalSteps-ceil(stepsDecel)){ //prędkość maksymalna<br />                v = vMax;<br />            }else{<br />                v = sqrt(2*(-deceleration)*(currentStep-totalSteps+stepsDecel+1) + pow(vMax, 2)); // hamowanie<br />            }<br /><br />            cout &lt;&lt; &quot;Predkosc w kroku: &quot; &lt;&lt; currentStep &lt;&lt; &quot; wynosi: &quot; &lt;&lt; v &lt;&lt; &quot; okres T wynosi: &quot; &lt;&lt; 1000 / v &lt;&lt;  endl;<br />            currentStep++;<br />        }<br />    }else<br />        cout &lt;&lt; &quot;Aby prawidlowo wykonac ruch potrzeba min. &quot; &lt;&lt; ceil(stepsAccel) + ceil(stepsDecel) + 1 &lt;&lt; &quot; kroków. &quot; &lt;&lt;  endl;<br /><br />    return 0;<br />}[/syntax]<br /><br />Generalnie to jest moja myśl przednia bo to nie jest tak, że ja nic nie robię tylko nie mogę się dogadać z moim prowadzącym ponieważ zawsze co przyniosę to dla niego jest nie tak, a za bardzo nie jest wylewny jak chciałbym by powiedział dokładnie czego on oczekuję. Aha i przepraszam za to jeżeli to jest śmieszne co gadam i wydaję się wam to głupie i nie możliwe jak ja widzę ten projekt, ale niestety jestem studentem Informatyki a nie elektroniki i bardziej preferuję programowanie wysokopoziomowe. Z góry dziękuję za pomoc <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Mogę również dorzucić mój kod z silnika krokowego to co tam wyskrobałem ale zapewne to co opisałem jest błędnym założeniem<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18681">NieNawidzeSTM32</a> — 29 gru 2017, o 22:16</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SylwekK]]></name></author>
<updated>2017-12-29T21:44:13+01:00</updated>
<published>2017-12-29T21:44:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19877&amp;p=201256#p201256</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19877&amp;p=201256#p201256"/>
<title type="html"><![CDATA[Re: [ARM / STM32] [C] - Generowanie Sygnału Kwadraturowego]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19877&amp;p=201256#p201256"><![CDATA[
To ma być dla jednego kanału czy większej ilości? Bo jak dla jednego to odpada synchronizacja i jest wtedy duuużo prościej. Poza tym mało danych... czy ilość WSZYSTKICH impulsów jest zadeklarowana wcześniej, czy po prostu rozpędzać, zwalniać i tak w koło (tak zrozumiałem to z wcześniejszych postów, ale pewności nie mam), czy długość rampy jest też zadana w impulsach czy po prostu ma się wykonać w odpowiednim zadanym czasie? Sterowanie silnikami z rampą to dość złożone zagadnienie i musisz dokładnie określić o co chodzi, a wtedy można dobrać jakiś naprawdę bardzo prosty sposób na Twój problem. Oczywiście żeby było jasne to nie zrobię tego za Ciebie, ale postaram się przynajmniej nakierować na jakieś rozwiązanie  <img src="https://forum.atnel.pl/images/smilies/icon_cool.gif" alt="8-)" title="Cool" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1922">SylwekK</a> — 29 gru 2017, o 21:44</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[NieNawidzeSTM32]]></name></author>
<updated>2017-12-29T21:17:31+01:00</updated>
<published>2017-12-29T21:17:31+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19877&amp;p=201254#p201254</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19877&amp;p=201254#p201254"/>
<title type="html"><![CDATA[Re: [ARM / STM32] [C] - Generowanie Sygnału Kwadraturowego]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19877&amp;p=201254#p201254"><![CDATA[
Nie zdam <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18681">NieNawidzeSTM32</a> — 29 gru 2017, o 21:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[NieNawidzeSTM32]]></name></author>
<updated>2017-12-29T19:53:48+01:00</updated>
<published>2017-12-29T19:53:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19877&amp;p=201246#p201246</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19877&amp;p=201246#p201246"/>
<title type="html"><![CDATA[Re: [ARM / STM32] [C] - Generowanie Sygnału Kwadraturowego]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19877&amp;p=201246#p201246"><![CDATA[
Projekt na zaliczenie Projektu czyli przedmiotu, nie praca inżynierska.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18681">NieNawidzeSTM32</a> — 29 gru 2017, o 19:53</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[buz11]]></name></author>
<updated>2017-12-29T19:35:18+01:00</updated>
<published>2017-12-29T19:35:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19877&amp;p=201245#p201245</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19877&amp;p=201245#p201245"/>
<title type="html"><![CDATA[Re: [ARM / STM32] [C] - Generowanie Sygnału Kwadraturowego]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19877&amp;p=201245#p201245"><![CDATA[
Ten projekt to praca inżynierska czy tylko temat na zaliczenie przedmiotu?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=686">buz11</a> — 29 gru 2017, o 19:35</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[NieNawidzeSTM32]]></name></author>
<updated>2017-12-29T17:32:39+01:00</updated>
<published>2017-12-29T17:32:39+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19877&amp;p=201236#p201236</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19877&amp;p=201236#p201236"/>
<title type="html"><![CDATA[Re: [ARM / STM32] [C] - Generowanie Sygnału Kwadraturowego]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19877&amp;p=201236#p201236"><![CDATA[
Ma to działać na zasadzie silników krokowych, ale jak poszedłem z moją ideą początkową że tak to chcę zrobić to okazało się że nie. Po prostu. Ma to być na zasadzie jak silniki krokowe ale na sygnałach. Czyli generowanie zadanej ilości impulsów. Czas rozpędzania i hamowania, prędkość to częstotliwość występowania impulsów. Czyli np na początku jest mało impulsów na sekundę przez co np dioda rzadko miga a potem coraz szybciej, gdy do maksymalnej prędkosci dojdzie to potem coraz wolniej. Generalnie chodzi mi o to jak generować w STMIE sygnał o zadanej ilości impulsów.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18681">NieNawidzeSTM32</a> — 29 gru 2017, o 17:32</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[StaryAnoda]]></name></author>
<updated>2017-12-29T17:22:15+01:00</updated>
<published>2017-12-29T17:22:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19877&amp;p=201235#p201235</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19877&amp;p=201235#p201235"/>
<title type="html"><![CDATA[Re: [ARM / STM32] [C] - Generowanie Sygnału Kwadraturowego]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19877&amp;p=201235#p201235"><![CDATA[
Ilość impulsów ok<br />Rozpędzanie hamowanie chodzi o wypełnienie przebiegu ?<br />A prędkość to o co chodzi ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12916">StaryAnoda</a> — 29 gru 2017, o 17:22</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[NieNawidzeSTM32]]></name></author>
<updated>2018-01-08T15:29:50+01:00</updated>
<published>2017-12-29T17:12:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19877&amp;p=201234#p201234</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19877&amp;p=201234#p201234"/>
<title type="html"><![CDATA[[ARM / STM32] [C] - Generowanie Sygnału Kwadraturowego]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19877&amp;p=201234#p201234"><![CDATA[
jjj<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18681">NieNawidzeSTM32</a> — 29 gru 2017, o 17:12</p><hr />
]]></content>
</entry>
</feed>