
Kod: Zaznacz cały
Designator Value
"" ""
"Rpot1" "10k"
"Rpot2" "10k"
"R1" "10k"
"R2" "10k"
"R3" "10k"
"R4" "10k"
"R5" "10k"
"R6" "27k"
"R7" "27k"
"R8" ""
"Rs1" "0,26"
"Rs2" "0,26"
"JP1" ""
"STR" ""
"C6" "100uF"
"C7" "100uF"
"C8" "470uF"
"C1" "100nF"
"C10" "100nF"
"C11" "100nF"
"C12" "1nF"
"C13" "1nF"
"C14" "100nF"
"C2" "100nF"
"C3" "22nF"
"C4" "100nF"
"C5" "22nF"
"C9" "100nF"

Scalak zasilany jest przez 5V i takie sygnały logiczne też dostaje. Napięcie zasilające silniki to 12V (13,2V) z akumulatora.
Niestety po zmontowaniu i próbie uruchomienia układ nie działa. Na złącze STEP, DIR, EN podaje sygnały bezpośrednio z Atmegi1280. Jeżeli sygnał kroku podawany jest z bardzo niską częstotliwością słychać odgłosy, które wydaje silnik lecz nie kręci się. Gdy dam wyższą częstotliwość nic już nie słychać. Scalak grzeje się. Gdy odłączam przewód od płyty sterującej i trzymam go w ręku silnik zaczyna pracować (chaotycznie). Widocznie przewód ten przechwytuje napięcie z moich rąk.
Kod: Zaznacz cały
void ENABLE_MOTORS()
{
EN_L0; //tu załączam silniki stanem niskim
EN_R0;
};
void STEP_FORWARD ()
{
DRIVE_L1; // ustawiam pin w stan wysoki
DRIVE_R1;
_delay_ms(5); // czekam 5ms
DRIVE_L0; // ustawiam pin w stan niski
DRIVE_R0;
_delay_ms(5);
}
// w funkcji main wywołuję funkcję ENABLE_MOTORS(); po czym w nieskończoność wykonuję funkcje STEP_FORWARD
for(;;)
{
STEP_FORWARD();
}
Co może być przyczyną takiego działania (a raczej nie działania)?
PS
Wertując po raz kolejny datasheet'a znalazłem jeden błąd. Chodzi mianowicie o kondensatory na pinach RC1 i RC2. Czy to jest przyczyną tego zachowania? Jutro dopiero kupię 1nF.
-----------------------------------------------------------------
Kondensatory przy RC1 i RC2 zostały zmienione na 1nF. Przez pomyłkę wcześniej wlutowałem 100pF. Nic się nie zmieniło.
Poniżej film ukazujący to dziwne działanie
ktoś pomoże?