Skocz do zawartości

PWM w Bascomie


matt90

Pomocna odpowiedź

Witajcie, jestem w trakcie pisania programu do minisumo i mam problem z PWM, sterowane 2 silniczki przez mostek H, silniki mam wpiete miedzy diody Schottk-iego. Oto mój kod programu

$regfile "M8def.dat"                                        'procesor
$regfile = 8000000                                          'taktowanie

Config Portd.4 = Output                                     'mostek
Config Portd.5 = Output                                     'mostek
Config Portd.6 = Output                                     'mostek
Config Portd.7 = Output                                     'mostek


Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 1       'konfiguracja pwm


Compare1a = 225                                             'Pwm
Compare1b = 225                                             'PWM

Portd.7 = 1 
Portd.6 = 1 
Portd.5 = 0 
Portd.4 = 1 

End                                                         

Niestety nie działa, jak podpinam zasilanie to jeden silniczek delikatnie "buczy" ale nic wiecej sie nie dzieje..

Link do komentarza
Share on other sites

matt90, nie napisałeś jakiego używasz mostka, nie podałeś schematu, a bez tego nie wiadomo czy twój kod jest poprawny. A błąd na pierwszy rzut oka masz w częstotliwości PWMa, wpisałeś Prescale =1, przy takim dzielniku PWM ma częstotliwość pewnie w okolicach kilkuset kHz, a więc dużo za dużo dla większości mostków i silników.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Ok silniki ruszyły brakowało startu 🙂 ale mam inny problem ustawiam ze maja ruszyc oba a rusza tylko jeden i chodzi tylko przez chwile i pozniej zaczyna "buczec" albo "buczy" i nie chce w ogole ruszyc, muszę odłączyć zasilanie i po ponownym przyłączeniu dopiero rusza i czasami uruchamia sie prawy a czasami lewy. Czemu? Jak ustawie żeby chodził tylko jeden a drugi wyłączony to rusza odrazu i wszystko ładnie chodzi.

Kod programu:

$regfile "M8def.dat"                                        'procesor
$regfile = 8000000                                          'taktowanie

Config Portd.4 = Output                                     'mostek
Config Portd.5 = Output                                     'mostek
Config Portd.6 = Output                                     'mostek
Config Portd.7 = Output                                     'mostek


Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 1       'konfiguracja pwm

Start Timer1

Pwm1a = 225                                                 'Pwm
Pwm1b = 225                                                 'PWM

Portd.7 = 1
Portd.6 = 0
Portd.5 = 1
Portd.4 = 0


End
Link do komentarza
Share on other sites

A czym toto zasilasz? Bo nie widzę stabilizatora na schemacie, coś mi mówi, że to 3 paluszki lub coś podobnego, na których siada napięcie w momencie włączenia silników i uC nie pracuje poprawnie. Podłącz do tego źródła zasilania swój silniczek, zatrzymaj go ręką i zmierz napięcie na akumulatorze/baterii wtedy. Co to za silniki?

Link do komentarza
Share on other sites

Narazie zasilam przez zasilacz 12V. Elektronika zasilania przez 7805. Później jak wszystko bedzie działało będzie to zasilane prawdopodobnie przez 4 paluszki. Póki co za zasilniki służą przerobione mikroserwa modelarskie, w przyszłości będą to dwa Pololu. Poniżej schemat stabilizatora

[ Dodano: 03-09-2012, 19:38 ]

Czy moglby ktos mi podpowiedziec czym jest spowodowane to ze nie dzialaja jednoczesnie oba silniki tylko albo jeden albo drugi. Prosze Was o pomoc bo sam sobie z tym nie poradze... z gory dziekuje

Link do komentarza
Share on other sites

Podłącz do tego źródła zasilania swój silniczek, zatrzymaj go ręką i zmierz napięcie na akumulatorze/baterii wtedy.

Potem możesz powtórzyć to dla dwóch silników.

Link do komentarza
Share on other sites

Niestety nie mam miernika bo stary mam zepsuty :/ ale jak podlaczam dwa silniczki to dioda na zasilaczu lekko przygasa wiec chyba jest spadek.. Nigdy nie ruszaja dwa silniki jednoczesnie, albo rusza jeden lub obydwa "bucza" lub delikatnie w obydwu drga zebatka od silniczka...

Link do komentarza
Share on other sites

To że będzie spadek było pewne - kwestia tylko do jakiej wartości spada napięcie - czy mega się już resetuje. Zaopatrz się w jakiś miernik - i tak przyda się na przyszłość.

  • Pomogłeś! 1
Link do komentarza
Share on other sites

jutro spróbuję coś zorganizować. Jak juz zmierze to napiecie to co wtedy? Czy to bedzie jakis blad na plytce czy czym to moze byc spowodowane? Jak zatrzymam reka silniczek to nic mu sie nie stanie? Nie chcialbym go spalic na samym poczatku 🙂

Link do komentarza
Share on other sites

matt90, silnik w momencie startu pobiera prąd zbliżony do pradu przy zatrzymanym wale - dlatego chcę, abyś zmierzył napięcie na akumulatorze przy zatrzymanych silnikach, byłaby to symulacja momentu startu silników. Krótka szpilka na zasilaniu (szpilka - krótki impuls) jest w stanie zresetowac mikrokontroler, bo napięcie spada poniżej dolnej dopuszczalnej granicy. Przynajmniej tego się spodziewam, bo często taki problem się pojawia przy niewystarczającym źródle prądu 🙂

  • Lubię! 1
Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.