ATNEL tech-forum
https://forum.atnel.pl/

Kontrola prędkości obrotów silnika za pomocą PWM.
https://forum.atnel.pl/topic23808.html
Strona 1 z 1

Autor:  antosV10 [ 4 cze 2021, o 09:00 ]
Tytuł:  Kontrola prędkości obrotów silnika za pomocą PWM.

Witam, próbuję sterować silnikem elektrycznym za pomocą atmegi328P, ale na utknąłem w pewnym momencie i nie wiem co dalej. Mianowicie kiedy do pinu Vs układu L293D podłączone jest napięcie 12V silnik przestaje się kręcić, a kiedy go dotknę czuć, że coś się w nim rusza. Kiedy na tym pinie podaję 5V albo w ogóle zostawiam go odłączonego silnik normalnie się obraca. Dlaczego tak się dzieje i jak to mogę naprawić? Dodatkow, czy jeżeli chcę sterować prędkością obrotów to na piny Enable 1 i Enable 2 muszę podać po prostu sygnał PWM z mikokontrolera (pytam dla pewności, bo nie jestem pewien czy dobrze zrozumiałem)?

Tutaj link do mojego silnika:
https://botland.com.pl/silniki-krokowe/ ... 043nm.html

Obrazek

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Autor:  mirekk36 [ 4 cze 2021, o 10:19 ]
Tytuł:  Re: Kontrola prędkości obrotów silnika za pomocą PWM.

Pewnie źle silnik podłączyłeś.

antosV10 napisał(a):
Dodatkow, czy jeżeli chcę sterować prędkością obrotów to na piny Enable 1 i Enable 2 muszę podać po prostu sygnał PWM z mikokontrolera

Dokładnie tak.

Autor:  andrews [ 4 cze 2021, o 11:55 ]
Tytuł:  Re: Kontrola prędkości obrotów silnika za pomocą PWM.

mirekk36 napisał(a):
antosV10 napisał(a):
Dodatkow, czy jeżeli chcę sterować prędkością obrotów to na piny Enable 1 i Enable 2 muszę podać po prostu sygnał PWM z mikokontrolera


Dokładnie tak.


Chciałbym zauważyć, że chodzi tu o silnik krokowy. Prędkość takiego silnika steruje się raczej poprzez zmianę częstotliwości kroków, a nie poprzez zmianę wypełnienia (jak to jest w przypadku silników komutatorowych). W kodzie przedstawionym przez autora wątku prędkość będzie odwrotnie proporcjonalna do czasu opóźnienia między krokami, tzn. im mniejsze opóźnienie, tym większa prędkość.

Jeśli chodzi o kod, to jednak zdecydowanie polecałbym sterowanie silnikiem w przerwaniu timera zamiast funkcji _delay_ms(), ale dla próby teoretycznie ten kod powinien działać. Jak już wspomniał kolega Mirek, sprawdź jeszcze raz dokładnie połączenia.

Autor:  mirekk36 [ 4 cze 2021, o 12:01 ]
Tytuł:  Re: Kontrola prędkości obrotów silnika za pomocą PWM.

andrews napisał(a):
Chciałbym zauważyć, że chodzi tu o silnik krokowy. Prędkość takiego silnika steruje się raczej poprzez zmianę częstotliwości kroków, a nie poprzez zmianę wypełnienia


Racja - jakoś nie wiem dlaczego pomyślałem o silniku DC.

Autor:  antosV10 [ 12 cze 2021, o 16:36 ]
Tytuł:  Re: Kontrola prędkości obrotów silnika za pomocą PWM.

Co do kodu to napisałem z użycie timera taki kod jak poniżej, ale jedne co się dzieje to czuję, że silnik w środku drga lecz się nie kręci. Coś z tym kodem jest nie tak czy to wina połaczeń (sprawdziłem dokładnie i wszystkie musi być w porządku połączone dodatkowo jak podpina pod Pin Vs mostka H zasilanie 12V didoa zaczyna zdecydowanie słabiej świecić i mrugać)?

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Autor:  wojtekr51 [ 10 lip 2021, o 22:04 ]
Tytuł:  Re: Kontrola prędkości obrotów silnika za pomocą PWM.

Chyba coś z programem jest nie tak. W twoim układzie, żeby realizować najprostsze sterowanie pełnokrokowe, powinieneś napisać definicje kroków tak:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Gdzie jest ta dioda świecąca o której piszesz?

Strona 1 z 1 Strefa czasowa: UTC + 1
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/