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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2017-05-22T13:05:24+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=18459&amp;mode</id>
<entry>
<author><name><![CDATA[Tom277]]></name></author>
<updated>2017-05-22T13:05:24+01:00</updated>
<published>2017-05-22T13:05:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18459&amp;p=189666#p189666</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18459&amp;p=189666#p189666"/>
<title type="html"><![CDATA[Rampa i PWM sterowanie silnikiem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18459&amp;p=189666#p189666"><![CDATA[
Mam małe zaćmienie umysłu. Podpowiedzcie mi proszę jakieś sensowne rozwiązanie.<br />Buduję prosty regulator dla silnika DC. Ogólnie chodzi o to, że po włączeniu zasilania silnik ma się rozpędzać z ustawianą potencjometrem rampą rozbiegową do prędkości obrotowej ustawianej drugim potencjometrem.<br />Banalny kod wygląda tak:<br /><br />[syntax=c]include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />#include &quot;common.h&quot;<br /><br /><br />int main(void)<br />{<br /><br />ini();<br />ini_timer();<br />ini_ADC();<br /><br />sei();<br />        uint8_t licznik = 0;<br /><br />while(1)<br />{<br />licznik++;<br />pwm = pomiar (PWM);<br />ramp = pomiar (RAMPA);<br />ramp = ramp/5;<br /><br />if(0 == licznik%ramp) {if(OCR0B &lt; pwm) OCR0B++;}//tu jest problem bo warunek spełnia się tylko gdy silnik się rozpędza <br /><br />_delay_us(100);<br /><br />}//end while<br />}//end main[/syntax]<br />Chodzi o to, że jak już silnik osiągnie swoją znamionowa prędkość ustawioną potencjometrem jako &quot;pwm&quot; to nie mogę zmniejszyć tej prędkości. Wiem dla czego tak się dzieje jest to zrozumiałe, ale jakoś nie mogę wymyślić sensownego rozwiązania żeby to zmienić, żebym mógł ową prędkość regulować. Tak wiem pewnie proste ale coś mnie zaćmiło, więc pomóżcie proszę. Procesor to ATiny13, pomiar pwm i rampy działa poprawnie, elektrycznie też jest ok. Ten delay to taki timer programowy (sprzętowy wykorzystałem na pwm-a).<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=548">Tom277</a> — 22 maja 2017, o 13:05</p><hr />
]]></content>
</entry>
</feed>