Skocz do zawartości

Pomocna odpowiedź

Napisano

Zbudowałem minisumo i mam problem bo silniki w ogóle nie działają. Schemat wrzucałem jakiś czas temu i wszystko było dobrze połączone. Wiem że ciężko jest coś doradzić nie widząc robota, ale co może być przyczną? Silniki napewno są sprawne, wszystko jest dobrze połączone, program ma tylko włączyć silnik.. Bardzo proszę o jakąś poradę bo już 3 dni nie mogę znaleźć rozwiązania mojego problemu :/

Mostek ma zasilanie, nie wiem jak sprawdzić te sygnały.. Program tylko włącza silnik, napisany w Bascomie

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

Config Portd.4 = Output                                     'prawy przod
Config Portd.5 = Output                                     'tyl lewy
Config Portd.6 = Output                                     'tyl prawy
Config Portd.7 = Output                                     'lewy przod

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

Do
Pwm1a = 200
Pwm1b = 200

Portd.7 = 1

Loop
End

Połączenie możesz sprawdzić miernikiem (ciągłośc obwodu).

Twój program nie załącza silników. Aby silnik się kręcił musisz podac jakiś sygnał na pin Enable/PWM (to już masz) + na piny Input1 i Input2 podac 1 i 0 lub żeby kręcił się w drugą stronę 0 i 1. Do drugiego silnika to samo tylko na drugim kanale mostka/na drugim mostku (zależy co tam masz).

Trzeba by jeszcze dodac jakieś (minimalne) opóźnienie, np. 1ms.

U mnie wygląda tak połączenie:

Mam sygnał na PD7, więc załączam INPUT4, to muszę jeszcze podać sygnał na PB1, czy gdzie?

Spróbuj narazie to:

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

Config Portb.1 = Output
Config Portb.2 = Output

Config Portd.4 = Output                                     'prawy przod 
Config Portd.5 = Output                                     'tyl lewy 
Config Portd.6 = Output                                     'tyl prawy 
Config Portd.7 = Output                                     'lewy przod 


Do 
Portb.2 =1
Portd.6 = 1 
Portd.7=0

Waitms 1

Loop 
End

Już to robiłem i wszystko było dobrze, ale później jak dostanę miernik sprawdzę to jeszcze raz. To jest jedyna możliwa przyczyna tego że nie działa? ENABLE_A należy do INPUT 3 i 4 ENABLE_B do INPUT 1 i 2? Zawsze trzeba włączać ENABLE_A jeśli włączam PB6?

Nie do końca rozumiesz PWM. Tak najprościej:

1. Jeżeli wartość PWM = 255 to tak jakbyś na zwykłym pinie I/O dał 1,
2. gdy dajesz odpowiednio mniej mostek będzie dawał mniejsze napięcie na silnik przez co bedzie się wolniej kręcił.

Nic nie robiłem w Fuse Bitach, nie mieszam się póki co do nich bo jeszcze za mało wiem i nie chce zablokować procka 🙂 Zostaje mi tylko po raz któryś sprawdzić wszystkie połączenia, chociaż wątpię żebym coś przeoczył 🙂

Jak masz JTAG włączony to porty D są przez niego blokowane. Aby odblokować piny musisz go wyłączyć.

Pobierz sobie MKAvrCalculator i tam odznacz JTAG Interface Enable bez tego ani rusz 🙂

A co to jest ten JTAG? Nigdy nic takiego nie wlaczalem 🙂 czy ten program jakos laczy sie z prockiem? Nie chcialby Przez przypadek go zablokowac 🙂

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...