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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2022-01-04T16:26:14+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=23612&amp;mode</id>
<entry>
<author><name><![CDATA[grego]]></name></author>
<updated>2022-01-04T16:26:14+01:00</updated>
<published>2022-01-04T16:26:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23612&amp;p=234663#p234663</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23612&amp;p=234663#p234663"/>
<title type="html"><![CDATA[Re: Zabezpieczenie napędu silnika]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23612&amp;p=234663#p234663"><![CDATA[
A czy  ktoś ma pomysł jak zabezpieczyć silnik przed nagłymi zmianami kierunku? Czyli wprowadzić jakieś stałe opóźnienie przed zmianą i najlepiej nieblokująco. U mnie zmiana obrotów nie będzie wynikała z przycisków, a z funkcji programu. <br /><br />[syntax=c]if (flaga_a &amp;&amp; flaga_on){     // warunki sterowania silnikiem <br /> if (U1!=U1_old){<br />  if (U4&lt;(U1-1)){<br />  down(); <br />  } else if ((U1+1)&lt;U4){<br />   upp();<br />  } else {<br />  U1_old=U1;<br />  stop();  <br />  }<br /> }<br />}<br /><br />if (flaga_u &amp;&amp; flaga_on){<br /> upp();<br />  if (U4&gt;=U2){ <br />  stop();  <br />  U1_old=U1_old+1;<br />}<br />}<br /><br />...<br /><br />void down()             // dół <br />  if (timer5==50) {<br />  PORTB &amp;=~I1;    //   0  I1<br />  PORTB |= I2;    //   1  I2<br />  analogWrite(11,PWM);  <br />}<br /><br />void upp(){         // góra <br /> // delay(5);<br />  PORTB &amp;=~I2;   //    0  I2<br />  PORTB |= I1;   //    1  I1<br />  analogWrite(11,PWM);<br />    <br />}<br /><br />void stop(){<br />    //flaga_a=0; <br />    flaga_u=0;<br />    PORTB &amp;=~I1;     //0 wył<br />    PORTB &amp;=~I2;       //0 wył<br />    analogWrite(11,0);   <br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=20142">grego</a> — 4 sty 2022, o 16:26</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[micky]]></name></author>
<updated>2021-02-13T08:21:30+01:00</updated>
<published>2021-02-13T08:21:30+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23612&amp;p=231084#p231084</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23612&amp;p=231084#p231084"/>
<title type="html"><![CDATA[Re: Zabezpieczenie napędu silnika]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23612&amp;p=231084#p231084"><![CDATA[
To opisz co to było.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1546">micky</a> — 13 lut 2021, o 08:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[grego]]></name></author>
<updated>2021-02-12T22:24:56+01:00</updated>
<published>2021-02-12T22:24:56+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23612&amp;p=231082#p231082</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23612&amp;p=231082#p231082"/>
<title type="html"><![CDATA[Re: Zabezpieczenie napędu silnika]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23612&amp;p=231082#p231082"><![CDATA[
Co innego to powodowało nie związanego z tym kodem. Dzięki za pomoc <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=20142">grego</a> — 12 lut 2021, o 22:24</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[JarekB]]></name></author>
<updated>2021-02-12T18:19:19+01:00</updated>
<published>2021-02-12T18:19:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23612&amp;p=231081#p231081</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23612&amp;p=231081#p231081"/>
<title type="html"><![CDATA[Re: Zabezpieczenie napędu silnika]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23612&amp;p=231081#p231081"><![CDATA[
Co do timerów to tu masz link to tego jak to robi Mirek, <br />W porównaniu do tego co Ci napisałem, Dodał zmienną pomocniczą <br />ale silnik taki sam:<br /><a href="http://mirekk36.blogspot.com/2012/10/obsuga-klawiszy-zwoka-czasowa-cd3.html"  class="postlink">http://mirekk36.blogspot.com/2012/10/obsuga-klawiszy-zwoka-czasowa-cd3.html</a><br /><br />Co do tej pierwszej zwłoki <br />Sprawdź czy nie należało by inicjować timera przy starcie programu jakąś wartością początkową <br />Tak bez spoglądania na kod<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18188">JarekB</a> — 12 lut 2021, o 18:19</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[grego]]></name></author>
<updated>2021-02-12T17:30:14+01:00</updated>
<published>2021-02-12T17:30:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23612&amp;p=231079#p231079</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23612&amp;p=231079#p231079"/>
<title type="html"><![CDATA[Re: Zabezpieczenie napędu silnika]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23612&amp;p=231079#p231079"><![CDATA[
Tak myślałem, że trzeba odliczać. Ciekawy sposób, a przyznam że nie spotkałem się jeszcze z takim ;0. <br />Owszem fajnie to działa, choć z jednym mankamentem. Pierwsze zwłoka przy zatrzymaniu się silnika jest dwa razy dłuższa od kolejnych. Być może wynika z warunku (stan_poprzedni_ramienia == stan_obecny) i odlicza dwa razy, potem już idzie dobrze.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=20142">grego</a> — 12 lut 2021, o 17:30</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[JarekB]]></name></author>
<updated>2021-02-12T07:42:14+01:00</updated>
<published>2021-02-12T07:42:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23612&amp;p=231076#p231076</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23612&amp;p=231076#p231076"/>
<title type="html"><![CDATA[Re: Zabezpieczenie napędu silnika]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23612&amp;p=231076#p231076"><![CDATA[
Tak patrzę na Twoją obsługę timerów[syntax=c]ISR(TIMER0_COMPA_vect){    //This is the interrupt request przerwanie od timera<br />    timer++;<br />    timer2++;    <br />    //if(flaga_a==1)<br />    timer3++;<br />    //else timer3=0;<br />  if (timer3==201) timer3=0;<br />  }[/syntax]<br />Czy nie prościej było by napisać ją tak:[syntax=c]ISR(TIMER0_COMPA_vect){    //This is the interrupt request przerwanie od timera<br />    if (timer1) timer1--;  <br />    if (timer2) timer2--;                  <br />    // i tak dalej<br />  }[/syntax]<br /> I dalej w kodzie:[syntax=c]void sprawdz( void ) {<br />    if ( !timer1 ) {<br />                            //   Tu kod sprawdzający warunki<br />    timer1 = 100;   //    Wpisujemy czas do odliczenia      <br />  }                                                                                    <br />}[/syntax]<br />Nic się nie powinno rozjeżdżać.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18188">JarekB</a> — 12 lut 2021, o 07:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[grego]]></name></author>
<updated>2021-02-12T07:12:31+01:00</updated>
<published>2021-02-12T07:12:31+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23612&amp;p=231075#p231075</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23612&amp;p=231075#p231075"/>
<title type="html"><![CDATA[Re: Zabezpieczenie napędu silnika]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23612&amp;p=231075#p231075"><![CDATA[
Działa, ale nie do końca poprawnie. Rozjeżdżają się czasy<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=20142">grego</a> — 12 lut 2021, o 07:12</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[JarekB]]></name></author>
<updated>2021-02-11T20:24:37+01:00</updated>
<published>2021-02-11T20:24:37+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23612&amp;p=231057#p231057</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23612&amp;p=231057#p231057"/>
<title type="html"><![CDATA[Re: Zabezpieczenie napędu silnika]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23612&amp;p=231057#p231057"><![CDATA[
Tak bym zapisał warunki które zawarłeś w pierwszym poście<br /><br />[syntax=c]void sprawdz( void ) {<br />    if ( !timer1 ) {<br />        if (( stan_poprzedni_ramienia == stan_obecny )&amp;&amp;( silnik_nie_osiagna_wartosc ) ) {<br />            silnik_stop();<br />        }else  stan_poprzedni_ramienia = stan_obecny ; <br />        timer1 = 100;   // tu wartość liczydełka czasu<br />    }                                                                            <br />}[/syntax]<br /><br />Można by jeszcze zrobić flagę które mówi o tym ze warunki są spełnione i wywołujemy alarm<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18188">JarekB</a> — 11 lut 2021, o 20:24</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[grego]]></name></author>
<updated>2021-02-11T19:22:00+01:00</updated>
<published>2021-02-11T19:22:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23612&amp;p=231054#p231054</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23612&amp;p=231054#p231054"/>
<title type="html"><![CDATA[Re: Zabezpieczenie napędu silnika]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23612&amp;p=231054#p231054"><![CDATA[
No dobrze, oto kod:<br />[syntax=c]#include &lt;avr/io.h&gt;<br /><br />#include &quot;LiquidCrystal.h&quot;<br />LiquidCrystal lcd(7, 6, 5, 3, 21, 4, 20);<br /><br />#define SW_G  (1&lt;&lt;PB5)    //PB4 przycisk auto podnoszenia lub opadania <br />#define SW_A  (1&lt;&lt;PB4)    //PB5 przycisk podnoszenia auto              <br />#define SW_U  (1&lt;&lt;PB2)    //PB2<br />#define SW_D  (1&lt;&lt;PB3)    //PB3<br />#define BUZZ  (1&lt;&lt;PD2)    //PD2<br />#define LED_A (1&lt;&lt;PD0)    //PD0 kontrolka przycisku auto <br />#define LED_G (1&lt;&lt;PD1)    //PD1<br />#define DOWN  (1&lt;&lt;PB0)    //PB0<br />#define UP    (1&lt;&lt;PB1)    //PB1<br />#define SW_3  (1&lt;&lt;PC5)    //PC5 blokada <br />const int pot_1 = 14;    //PC0 potencj dolny poziom<br />const int pot_2 = 15;    //PC1 górny poziom <br />const int pot_3 = 16;    //PC2 czulosc nacisku<br />const int pot_4 = 17;    //PC3 czujnik wysokosci<br />const int pot_5 = 18;    //PC4 czujnik nacisku<br /><br />int U;            //pot_1 - pot_4 <br />int U1;                <br />uint8_t prev_U1;<br />int U2;<br />uint8_t prev_U2;<br />int U3;<br />uint8_t prev_U3;<br />int U4;<br />uint8_t prev_U4;<br />int U5;<br />uint8_t prev_U5;<br /><br />uint8_t flaga_a;<br />uint8_t flaga_u;  <br />volatile int timer;              //inkrementacja licznika  <br />volatile int timer2;<br />volatile int timer3;<br />uint8_t timer3_old;<br />int X=6;                //histereza<br />int Y=6;                  //histereza<br />uint8_t key;           //klucz przycisku sw_1<br />uint8_t key_old;           //klucz przycisku sw_2<br />uint8_t key_g;<br />uint8_t state;<br />uint8_t key_sw_a=0;<br />int U4_old;<br /><br /><br />void setup() {<br /><br />DDRD =B11111111;<br />PORTD=B00000011;<br />DDRB =B11000011;<br />PORTB=B00110000;<br />DDRC =B00000000;<br />PORTC=B00100000;<br /><br />analogReference(DEFAULT);<br /> <br />//.................................................... licznik <br /> TCCR0A=(1&lt;&lt;WGM01);    //Set the CTC mode   <br />  OCR0A=0xF9; //Value for ORC0A for 1ms   <br />  TIMSK0|=(1&lt;&lt;OCIE0A);   //Set the interrupt request<br />  sei(); //Enable interrupt<br />  TCCR0B|=(1&lt;&lt;CS01);    //Set the prescale 1/64 clock<br />  TCCR0B|=(1&lt;&lt;CS00);<br />  <br />lcd.begin(16,2);<br /><br />if (!(PINB &amp; SW_A)){    //jeśli stan niski<br />  PORTD &amp;=~(LED_A);     //stan niski diody świecą <br />  PORTD &amp;=~(LED_G);     //stan niski<br />  kalibracja();<br />  }<br />//....................................................histereza Y  <br />if (!(PINB&amp;SW_G)) {<br />  //histereza();<br />}<br />  <br />lcd.setCursor(0,0);<br />lcd.print(&quot;Akt:&quot;);<br />lcd.setCursor(0,1);<br />lcd.print(&quot;Zad:&quot;);<br />lcd.setCursor(8,0);<br />lcd.print(&quot;Gor:&quot;);<br />lcd.setCursor(8,1);<br />lcd.print(&quot;N:&quot;);<br />delay(10);<br />}<br /><br /><br />void loop() {<br /> <br />if (!state &amp;&amp; !(PINB&amp;SW_U)||(!(PINB&amp;SW_D))) {       //jeśli któryś przycisk wciśnięty przeskok do funkcji stop <br />  state=1;<br />   stop();                        // wykonywanie po wciśnięciu przycisku   <br />} else state++; <br /><br />//.....................................................................................przycisk auto                              <br />if (!key_sw_a &amp;&amp; !(PINB&amp;SW_A)) {    // jesli stan niski na SW_A przejdź do automat<br />  key_sw_a=1;<br />  automat();<br />} else if( key_sw_a &amp;&amp; (PINB &amp; SW_A )) key_sw_a++;<br /><br />//..................................................................................... przycisk SWG<br />if (!key_g &amp;&amp; !(PINB&amp;SW_G)){        // jeśli klucz oraz SWG = 0<br />  key_g=1;<br />  upp();<br />} else if(key_g &amp;&amp; (PINB&amp;SW_G)) key_g++;   //jesli klucz 1 oraz swg 1 to <br /><br />//.....................................................................................automatyka<br /><br />if (flaga_a==1){<br />  if (U4&gt;(U1+X)||U4&lt;(U1-Y)){<br />    if(U4&gt;(U1+X)){<br />      PORTB |= DOWN;            // 1 opuszcz<br />      PORTB &amp;=~UP;              // 0 podnosi<br />    } else if (U4&lt;(U1-Y)){<br />      PORTB &amp;=~DOWN;      // 0 opuszcza<br />      PORTB |= UP;        // 1 podnosi<br />    }<br />  }<br />   else stop();<br />  <br />   key_old=key; <br />   if (key_old!=key){  <br />   if (key) stop(); <br />    else if (!key) stop();  <br />   }    <br />   if (U4&lt;(U1+X)) key=0;  <br />   else if (U4&gt;(U1-Y)) key=1;<br /> }<br />//................................................................................................<br /><br /><br />if (U4==U4_old) {<br />  U4_old = U4;<br />  timer3 = 0;<br />} else if (timer3 == 200) {<br />  stop();<br />  timer3 = 0;<br />}<br /><br /><br />//.............................................................<br />               <br />if (U3&lt;10){<br />  if (U5&lt;U3) PORTD |= BUZZ;   // 1 na BUZZER włączony<br />  else PORTD &amp;=~BUZZ;         // 0 na BUZZER<br />}<br />else PORTD &amp;=~BUZZ;           // 0 na BUZZER<br /><br /> <br />if (timer&gt;=10){<br />  timer=0;<br />  timer_funkcja();<br /> }   <br /> }<br /> <br /><br /><br />//_________________________________________________________________________<br /><br />ISR(TIMER0_COMPA_vect){    //This is the interrupt request przerwanie od timera<br />    timer++;<br />    timer2++;     <br />    //if(flaga_a==1) <br />    timer3++;<br />    //else timer3=0;<br />  if (timer3==201) timer3=0; <br />  }<br /><br />void timer_funkcja(){<br />U4=analogRead(pot_4);<br />U4=U4&gt;&gt;2;<br />//U4=map(U4,0,1023,0,125);<br /><br /><br />if (timer2&gt;=20) {<br />    timer2=0;<br /><br />    U1=analogRead(pot_1);<br />    U1=map(U1,0,1023,0,50);<br /><br />    <br />    U2=analogRead(pot_2);   //gora<br />    U2=U2&gt;&gt;2;<br />    //U2=map(U2,0,1023,0,127);<br />    <br />    U3=analogRead(pot_3);   // ustalona siła nacisku<br />    //U3=U3&gt;&gt;2;<br />    U3=map(U3,0,1023,0,10);<br />    <br />    U5=analogRead(pot_5);   // czujnik nacisku<br />    U5=map(U5,0,1023,0,10);<br />       <br />  if (prev_U1!=U1) {<br />    prev_U1=U1;<br />    lcd.setCursor (4, 1);<br />    if(U1&lt;10)lcd.print(&quot;0&quot;);<br />    if(U1&lt;100)lcd.print(&quot;0&quot;);<br />    lcd.print(U1);      //zad<br />  }<br />  if (prev_U2!=U2) {<br />    prev_U2=U2;<br />    lcd.setCursor (13, 0);<br />    if(U2&lt;10)lcd.print(&quot;0&quot;);<br />    if(U2&lt;100)lcd.print(&quot;0&quot;);<br />    lcd.print(U2);       //gora<br />  }<br />   if (prev_U3!=U3) {<br />    prev_U1=U1; <br />    lcd.setCursor (10, 1);<br />    if(U3&lt;10)lcd.print(&quot;0&quot;);<br />    lcd.print(U3);   <br />  }<br />    if (prev_U4!=U4) {<br />    prev_U4=U4;<br />    lcd.setCursor (4, 0);<br />    if(U4&lt;10)lcd.print(&quot;0&quot;);<br />    if(U4&lt;100)lcd.print(&quot;0&quot;);<br />    lcd.print(U4);<br />  }<br />   if (prev_U5!=U5) {<br />    prev_U5=U5;<br />    lcd.setCursor (14, 1); <br />    if(U5&lt;10)lcd.print(&quot;0&quot;);   <br />    lcd.print(U5);     //czujnik <br />  }<br />      <br /> }  <br />}         <br /><br /><br /><br />void automat(){<br />  if (!(PINC&amp;SW_3)){<br />    flaga_u=0;<br />    flaga_a=1;<br />    PORTD &amp;=~LED_A;<br />    PORTD |=LED_G;<br /> //  timer3=0;<br />  //  U4_old = U4;<br />   // timer3_old = timer3;<br />    <br />  }<br />}<br /><br />void upp(){<br />  if (!(PINC&amp;SW_3))   {<br />     flaga_u=1;<br />     flaga_a=0;<br />     PORTD &amp;=~LED_G;<br />     PORTD |= LED_A;<br />     <br />     <br />  }<br />}<br /><br />void stop(){<br />    flaga_a=0;<br />    flaga_u=0;<br />    PORTB &amp;=~DOWN;     //0 wył<br />    PORTB &amp;=~UP;       //0 wył<br />    PORTD |=LED_A;     // 1 dioda wył<br />    PORTD |=LED_G;     // 1 dioda wył<br />    <br />}<br /><br />void kalibracja(){<br /> while(1){<br />    PORTD &amp;=~LED_G;  // 0 dioda wł<br />    PORTD &amp;=~LED_A;   // 0 dioda wł<br />    lcd.setCursor(0,0);<br />lcd.print(&quot;kalibracja&quot;);<br />}<br />}[/syntax]<br /><br />Ale przyznasz, że te kilka stron kodu jednak nie wiele wnosi i nie bez powodu go wcześniej nie podałem, a jeśli wszystko rozkminiłeś to rzeczywiście szacun <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br />Moje zagadnienie jest raczej uniwersalne typu :<br />[syntax=c]if (U4==U4_old) {      //porównaj nową wartość ze starą <br />  U4_old = U4;         //przypisz nową do poprzedniej <br />  timer3 = 0;          //wyzeruj stanlicznika<br />} else if (timer3 == 200) {   <br />  stop();<br />  timer3 = 0;<br />}[/syntax]<br />Oczywiście to powyżej się nie sprawdza, ale chodzi mi o naprowadzenie jak zrobić warunki aby uzyskać pożądany efekt <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=20142">grego</a> — 11 lut 2021, o 19:22</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[RadekB86]]></name></author>
<updated>2021-02-11T19:14:51+01:00</updated>
<published>2021-02-11T19:14:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23612&amp;p=231053#p231053</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23612&amp;p=231053#p231053"/>
<title type="html"><![CDATA[Re: Zabezpieczenie napędu silnika]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23612&amp;p=231053#p231053"><![CDATA[
[syntax=c]W 28 linijce kodu dokonałbym pewnych drobnych zmian.<br />Może to by pomogło.<br />Chyba że się mylę.[/syntax]<br /><br />tak tak to musi być to xD  <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1837">RadekB86</a> — 11 lut 2021, o 19:14</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[JarekB]]></name></author>
<updated>2021-02-11T18:38:54+01:00</updated>
<published>2021-02-11T18:38:54+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23612&amp;p=231052#p231052</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23612&amp;p=231052#p231052"/>
<title type="html"><![CDATA[Re: Zabezpieczenie napędu silnika]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23612&amp;p=231052#p231052"><![CDATA[
W 28 linijce kodu dokonałbym pewnych drobnych zmian.<br />Może to by pomogło.<br />Chyba że się mylę.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18188">JarekB</a> — 11 lut 2021, o 18:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[grego]]></name></author>
<updated>2021-02-11T17:26:07+01:00</updated>
<published>2021-02-11T17:26:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23612&amp;p=231050#p231050</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23612&amp;p=231050#p231050"/>
<title type="html"><![CDATA[Zabezpieczenie napędu silnika]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23612&amp;p=231050#p231050"><![CDATA[
Mam problem z napisaniem poprawnego kodu, który sprawdzał by np. co dwie sekundy poprzednią pozycje ramienia, którym steruje silnik i jeśli pomiar nie zmienił sie w tym czasie od poprzedniego, a nie osiągnął zadanej wartości to silnik powinien się wyłączyć. Oczywiście układ posiada czujnik pozycji.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=20142">grego</a> — 11 lut 2021, o 17:26</p><hr />
]]></content>
</entry>
</feed>