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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-05-20T23:26:23+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=3&amp;t=11757&amp;mode</id>
<entry>
<author><name><![CDATA[ro0bert]]></name></author>
<updated>2015-05-20T23:26:23+01:00</updated>
<published>2015-05-20T23:26:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11757&amp;p=129744#p129744</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11757&amp;p=129744#p129744"/>
<title type="html"><![CDATA[Re: Sterowanie silnika DC, za pomocą PWM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11757&amp;p=129744#p129744"><![CDATA[
Wszystko już wiem, w książce na schemacie scalaka L293D J10 odpowiada J11 z schematu z wersji 1.04 na podstronie instrukcji płytki. Z kolei na mojej płytce prototypowej J10 należy do ULN2803 - wyjścia mocy. Zapomniałem, że trzeba brać poprawkę na to, że w chwili wychodzenia książki najnowsza wersja płytki pewnie była 1.03, o ile nie 1.02, więc oznaczenia z książki niekoniecznie muszą się zgadzać z tymi na płytce 1.04b.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7561">ro0bert</a> — 20 maja 2015, o 23:26</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2015-05-20T18:57:09+01:00</updated>
<published>2015-05-20T18:57:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11757&amp;p=129715#p129715</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11757&amp;p=129715#p129715"/>
<title type="html"><![CDATA[Re: Sterowanie silnika DC, za pomocą PWM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11757&amp;p=129715#p129715"><![CDATA[
<div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />To w takim razie do czego służy J10?<br /></div><br />Gdzie ta zworka jest ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 20 maja 2015, o 18:57</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[ro0bert]]></name></author>
<updated>2015-05-20T17:11:06+01:00</updated>
<published>2015-05-20T17:11:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11757&amp;p=129707#p129707</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11757&amp;p=129707#p129707"/>
<title type="html"><![CDATA[Re: Sterowanie silnika DC, za pomocą PWM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11757&amp;p=129707#p129707"><![CDATA[
Super wielkie dzięki! Zaraz zabieram się do działania! <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><br /><br />ad.1 <br /><br />To w takim razie do czego służy J10? Sprawdzałem brzęczykiem teraz i nie ma połączenia z z L293D. Na schemacie też ich nie widzę. Według książki : (strona 342) &quot;Jeżeli nie mamy potrzeby płynnej regulacji sterowania prędkością obrotową i chcemy uprościć sam układ wykonawczy oraz kod programu, wtedy zamiast sygnału PWM podajemy po prostu stan wysoki Vcc na wejścia 1 oraz 9. Na naszej płytce ATB możemy to zrobić w wygodny sposób poprzez załączenie odpowiedniej zworki J10&quot;.<br /><br />ad.2 O zgrozo, rzeczywiście mogło to się skończyć nieciekawie, ale teraz przynajmniej o tym nie zapomnę...<br /><br /><br />Wyjaśnienie pomogło i to bardzo, rozwiązanie bardzo banalne, aż mi głupio, że na to nie wpadłem... <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />Jeszcze raz wielkie dzięki za błyskawiczną pomoc!<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7561">ro0bert</a> — 20 maja 2015, o 17:11</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2015-05-20T06:13:53+01:00</updated>
<published>2015-05-20T06:13:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11757&amp;p=129661#p129661</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11757&amp;p=129661#p129661"/>
<title type="html"><![CDATA[Re: Sterowanie silnika DC, za pomocą PWM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11757&amp;p=129661#p129661"><![CDATA[
<div class="quotetitle">ro0bert napisał(a):</div><div class="quotecontent"><br />1)W porównaniu do wersji podstawowej na pewno muszę rozewrzeć zworkę J10.<br /></div><br />Nie J10 tylko zworki J11 i J14 ... jak widać ze schematu to one podają domyślnie stan wysoki na wejścia PWM dwóch kanałów czyli niejako podają 100% PWM na każdy kanał<br /><br /><div class="quotetitle">ro0bert napisał(a):</div><div class="quotecontent"><br />2) Sygnał wysoki sterujący silnikiem pozostawiam bez zmian - w tym przypadku WE_A (1&lt;&lt;PD1) i WE_B (1&lt;&lt;PD0).<br /></div><br />Przecież to NAJWAŻNIEJSZE piny z punktu widzenia komunikacji RS232, która nawet do byle debugowania może się przydać, a jest TYLE innych wolnych pinów procka .... Tym bardziej, że przecież na schemacie wyraźnie widać , że w zestawie domyślnie PD0 i PD1 czyli sygnały UART Rx i Tx są podłączone zworkami do FT232. Więc nierozważne używanie tych pinów bez rozłączenia zworek może spowodować uszkodzenie linii szczególnie Tx nie tylko w procku ale i w układzie FT232. Polecam zawsze zaglądać do instrukcji na stronie: <!-- m --><a class="postlink" href="http://atnel.pl/instrukcja-atb-rev-1-04.html" >http://atnel.pl/instrukcja-atb-rev-1-04.html</a><!-- m --> a w tym przypadku SZCZEGÓLNIE tutaj - zobacz: <!-- m --><a class="postlink" href="http://atnel.pl/atb-przejsciowka-usb-rs232.html" >http://atnel.pl/atb-przejsciowka-usb-rs232.html</a><!-- m --><br /><br /><div class="quotetitle">ro0bert napisał(a):</div><div class="quotecontent"><br />3) Żeby modulować impuls z kanału PB3 (ustawienie wyjścia 0C0) podłączam go do PIN'u PWM. Jako, że steruje silnikiem 1, wejście PWM jest oznaczone na schemacie jako DC_PWM2. Ze schematu możemy odczytać, że jedno wejście na PIN'ie J14 jest podłączone do VCC i drugie to nasz modulowany sygnał PWM i tutaj pytanie:<br /></div><br />DOKŁADNIE jak mówisz<br /><br /><div class="quotetitle">ro0bert napisał(a):</div><div class="quotecontent"><br />3 W miejscu zworki J14 podpinam kabelek z PB3 (OC0) - po której stronie podpiąć PWM'a po prawej czy po lewej stronie z mojego zdjęcia? Bo nie widzę, na płytce żadnych oznaczeń który PIN to 1, a który 2<br /></div><br />Tu przyznaję - nie ma jednoznacznego opisu który to pin1 a który pin2 na zworkach PWM ale teraz pomyśl chwileczkę - takie trzy podpowiedzi z mojej strony:<br /><br />1. można wziąć brzęczyk w mierniku i sprawdzić, który pin po zdjęciu jednej zworki połączony jest z pinem PWM scalaka<br />2. można wziąć woltomierz i sprawdzić na którym pinie po zdjęciu zworki jest +5V (będzie na tym pinie który połączony jest rezystorem R22 (10K) z VCC<br />3. można brzęczykiem sprawdzić które piny po zdjęciu obu zworek są ze sobą połączone i już wiesz które są podciągniete do VCC rezystorem R22<br />4. można zdjąć zworkę i gdy jest podłączony silnik, który powinien się kręcić (odpowiednio wysterowane wejścia 1Y,2Y 3Y,4Y ... przestanie się kręcić ... i teraz bierzesz przewód połączeniowy - podłączasz go do VCC a następnie do jednego z pinów po zdjęciu zworki. Gdy trafisz na niewłaściwy to nic się nie stanie ale silnik nadal nie będzie się kręcił, gdy trafisz na właściwy to będzie się kręcił a ty będziesz wiedział, że to na ten trzeba podać PWM z procka<br /><br />poza tym teraz zastanówmy się - czy stałoby się coś złego gdybyśmy podłączyli WYJŚCIE PWM z procka do niewłaściwego pinu po zdjęciu zworki ? Otóż jeśli podłączyłbyś przypadkowo do pinu który leci do rezystora R22 (10K) - to nic by się nie stało - rezystor 10K mocno ogranicza prąd ale oczywiście silnik by się nie kręcił w ogóle. A gdybyś podpiął do drugiego pinu to po prostu silnik zacząłby się kręcić gdybyś oczywiście puścił tam jakiś PWM o odpowiedniej wartości<br /><br />Reasumując - ja ze swojej strony przepraszam za niejednoznaczny opis - ale myślę, że te wyjaśnienia wyżej pomogą<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 20 maja 2015, o 06:13</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[ro0bert]]></name></author>
<updated>2015-05-20T00:14:06+01:00</updated>
<published>2015-05-20T00:14:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11757&amp;p=129659#p129659</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11757&amp;p=129659#p129659"/>
<title type="html"><![CDATA[Sterowanie silnika DC, za pomocą PWM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11757&amp;p=129659#p129659"><![CDATA[
Witam, kwestia wygląda następująco: chce sterować silnikiem DC, za pomocą płytki ATB 1.04b modulacją szerokości impulsów PWM, jak do tej pory udało mi się osiągnąć sterowanie silnikiem prawo, lewo, hamowanie, przy pomocy micro-switchów - PD2, PD3, PD4. Docelowo silnik ma zmieniać obroty w zależności, od wskazań czujnika, ale ta kwestia jest na ten moment pomijana, po prostu chce ogarnąć na początek samego PWM'a. Diody używam, do dodatkowej sygnalizacji stanu pracy silnika.<br /><br />Aktualnie utknąłem na tym, jak to dobrze podłączyć. Zatem piszę z prośbą o podpowiedź, czy dobrze rozumiem, jak mam podłączyć zworki do sterowania silnika DC przy pomocy regulacji PWM  scalakiem L293D na płytce prototypowej ATB 1.04b. Szukałem w instrukcji płytki, ale jest troszkę inne ustawienie pinów tzn. :<br /><br /><a href="http://forum.atnel.pl/_obrazki/o/7561/72ff5b40aaf8ee7eedf34228e4904f3c.PNG"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/7561/72ff5b40aaf8ee7eedf34228e4904f3c.PNG" alt="Obrazek" /></a><br />(na stronce jest przekierowanie do starszej wersji płytki), szukałem na forum i w paru innych miejscach, ale nic nie znalazłem na te temat.<br /><br />Poniżej zamieszczam, jak wygląda u mnie na ATB 1.04b : <br /><a href="http://forum.atnel.pl/_obrazki/o/7561/ee1ac088d45d9e941fa82abb1ab4b73b.PNG"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/7561/ee1ac088d45d9e941fa82abb1ab4b73b.PNG" alt="Obrazek" /></a><br /><br />W programie nic szczególnego raczej niema, ale dla pełnego zobrazowania sytuacji wstawię <br /><br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br /><br />//definicje pinow sterujacych silnikiem<br />#define WE_A (1&lt;&lt;PD1)<br />#define WE_B (1&lt;&lt;PD0)<br /><br />//KLAWISZE<br />#define KEY_PIN_L (1&lt;&lt;PD7)<br />#define KEY_PIN_L_DOWN ! (PIND &amp;(KEY_PIN_L))<br /><br />#define KEY_PIN_R (1&lt;&lt;PD5)<br />#define KEY_PIN_R_DOWN ! (PIND &amp;(KEY_PIN_R))<br /><br />#define KEY_PIN_S (1&lt;&lt;PD6)<br />#define KEY_PIN_S_DOWN ! (PIND &amp;(KEY_PIN_S))<br /><br />//DIODY<br />#define DIODA_L (1&lt;&lt;PD4)<br />#define DIODA_L_ON PORTD &amp;= ~DIODA_L// makrodefinicja – załączenie diody<br />#define DIODA_L_OFF PORTD |= DIODA_L// makrodefinicja – wyłączenie diody<br />#define DIODA_L_TOG PORTD ^= DIODA_L// makrodefinicja – zmiana stanu diody<br /><br />#define DIODA_R (1&lt;&lt;PD2)<br />#define DIODA_R_ON PORTD &amp;= ~DIODA_R// makrodefinicja – załączenie diody<br />#define DIODA_R_OFF PORTD |= DIODA_R// makrodefinicja – wyłączenie diody<br />#define DIODA_R_TOG PORTD ^= DIODA_R// makrodefinicja – zmiana stanu diody<br /><br />#define DIODA_S (1&lt;&lt;PD3)<br />#define DIODA_S_ON PORTD &amp;= ~DIODA_S// makrodefinicja – załączenie diody<br />#define DIODA_S_OFF PORTD |= DIODA_S// makrodefinicja – wyłączenie diody<br />#define DIODA_S_TOG PORTD ^= DIODA_S// makrodefinicja – zmiana stanu diody<br /><br /><br /><br />//STEROWANIE SILNIKIEM<br />#define DC_L PORTD &amp;= ~WE_A; PORTD |= WE_B<br />#define DC_P PORTD &amp;= ~WE_B; PORTD |= WE_A<br />#define DC_S PORTD &amp;= ~WE_B; PORTD &amp;= ~ WE_A<br /><br />uint8_t klawisz_wcisniety_L(void);<br />uint8_t klawisz_wcisniety_R(void);<br />uint8_t klawisz_wcisniety_S(void);<br /><br />int main(void)<br />{<br />//ustawienie pinów sterujacych jak wyjscia<br />DDRD |= WE_A|WE_B|DIODA_L|DIODA_R|DIODA_S;    //ustawienie sterowania silnika, diod jako wyjscia<br />PORTD |= DIODA_L|DIODA_R|DIODA_S;   //wylaczenie diody LED<br /><br />//piny jako wejscia<br />DDRD &amp;= ~ (KEY_PIN_L|KEY_PIN_R|KEY_PIN_S);<br />//podciagniecie pinow do Vcc<br />PORTD |= KEY_PIN_L|KEY_PIN_R|KEY_PIN_S;<br /><br /><br /><br />while(1)<br />{<br />if(  klawisz_wcisniety_L()  )  // jeśli klawisz wciśnięty<br />{<br />DIODA_L_ON;// zmień stan diody na przeciwny<br />DC_L;<br />_delay_ms(200);// pauza 200ms<br />}<br /><br />if(  klawisz_wcisniety_R()  )  // jeśli klawisz wciśnięty<br />{<br />DIODA_R_ON;// zmień stan diody na przeciwny<br />DC_P;<br />_delay_ms(200);// pauza 200ms<br />}<br /><br />if(  klawisz_wcisniety_S()  )  // jeśli klawisz wciśnięty<br />{<br />DIODA_S_ON;// zmień stan diody na przeciwny<br />DC_S;<br />_delay_ms(200);// pauza 200ms<br />}<br /><br /><br />}<br /><br /><br /><br /><br /><br />}<br /><br />uint8_t klawisz_wcisniety_L(void)<br />{<br />if ( KEY_PIN_L_DOWN)     //klaiwsz wciesniety?<br />{<br />_delay_ms(80);  //czas drgania stykow<br />//wcisniety? zakoncz rezultat = 1<br />if (KEY_PIN_L_DOWN) return 1;<br />}<br />DIODA_L_OFF;<br />return 0; //jesli klawisz nie wciesniety. zakoncz funkcje, rezultat = 0<br />}<br /><br /><br />uint8_t klawisz_wcisniety_R(void)<br />{<br />if ( KEY_PIN_R_DOWN)     //klaiwsz wciesniety?<br />{<br />_delay_ms(80);  //czas drgania stykow<br />//wcisniety? zakoncz rezultat = 1<br />if (KEY_PIN_R_DOWN) return 1;<br />}<br />DIODA_R_OFF;<br />return 0; //jesli klawisz nie wciesniety. zakoncz funkcje, rezultat = 0<br />}<br /><br /><br />uint8_t klawisz_wcisniety_S(void)<br />{<br />if ( KEY_PIN_S_DOWN)     //klaiwsz wciesniety?<br />{<br />_delay_ms(80);  //czas drgania stykow<br />//wcisniety? zakoncz rezultat = 1<br />if (KEY_PIN_S_DOWN) return 1;<br />}<br />DIODA_S_OFF;<br />return 0; //jesli klawisz nie wciesniety. zakoncz funkcje, rezultat = 0<br />}[/syntax]<br /><br /><br />Teraz przejdę do meritum, wydaje mi się, żeby ustawić PWM ( i tutaj prosiłbym o sprawdzenie, czy moje przypuszczenia są prawidłowe ) :<br />1)W porównaniu do wersji podstawowej na pewno muszę rozewrzeć zworkę J10.<br />2) Sygnał wysoki sterujący silnikiem pozostawiam bez zmian - w tym przypadku WE_A (1&lt;&lt;PD1) i WE_B (1&lt;&lt;PD0).<br />3) Żeby modulować impuls z kanału PB3 (ustawienie wyjścia 0C0) podłączam go do PIN'u PWM. Jako, że steruje silnikiem 1, wejście PWM jest oznaczone na schemacie jako DC_PWM2. Ze schematu możemy odczytać, że jedno wejście na PIN'ie J14 jest podłączone do VCC i drugie to nasz modulowany sygnał PWM i tutaj pytanie: <br /><br /><strong> 3 W miejscu zworki J14 podpinam kabelek z PB3 (OC0) - po której stronie podpiąć PWM'a po prawej czy po lewej stronie z mojego zdjęcia? Bo nie widzę, na płytce żadnych oznaczeń który PIN to 1, a który 2 </strong><br />Poza tym domyślam, się, że podłączenie PIN'u 1 do Vcc (przy J14) zostało już wykonane  - jakiś SMD R22 znajduję się na dolnej części płytki, więc wnioskuje, że ten po wyjęciu zworki zostaje od strony górnej do niczego nie podłączony?<br /><br /><br /><a href="http://forum.atnel.pl/_obrazki/o/7561/d0678d106320ddd7d0000f33e568ddf7.PNG"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/7561/d0678d106320ddd7d0000f33e568ddf7.PNG" alt="Obrazek" /></a><br /><br /><br />Sorki, że tak się rozpisałem do problemu z kategorii trywialnych, ale wole wszystko od razu napisać, niż, aby później ktoś zgadywał co miałem na myśli <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=7561">ro0bert</a> — 20 maja 2015, o 00:14</p><hr />
]]></content>
</entry>
</feed>