Witam,
Napisalem program na atmega8 do regulatora dwukierunkowego, którego schemat można znaleść tutaj. Link
Licznik pracuje z zegarem 8Mhz i prescalerem 64. Czyli licznik powinien zapelnić sie minimalnie po 2ms. Sygnał z odbiornika trwa od 1ms do 2ms. Najpierw zliczam czas impuslu. W zależności od wartosci zliczonego czasu impulsu daje atmega odpowiedni sygnal pwm na tranzystory sterujace silnikiem(1ms-max tył, 1,5ms - zero, 2ms - max przod). Licznik jednak zlicza impulsy od okolo 150 do 230, zamiast okolo 128(1ms) i 255(2ms). Ale to nie jest najwiekszym problem, raz układ mi sie spalił, ale raczej z mojej winy bo chyba doprowadzilem do zwarcia sciezek sterujacych pwm
. Niemniej chciałbym zeby ktoś mi sprawdził ten program, zwłaszcza ze to moj pierwszy program. Poza tym kanał jest chyba na odwroconej polaryzacji, niemniej zlicza mi jakos ten licznik, silnikiem da sie sterować ale troche to dla mnie dziwne. W zależnosci od wartosci licznika przepisywanej do "i" dawany jest sygnał pwm (5 biegow do przodu i 2 do tylu).
Napisalem program na atmega8 do regulatora dwukierunkowego, którego schemat można znaleść tutaj. Link
Licznik pracuje z zegarem 8Mhz i prescalerem 64. Czyli licznik powinien zapelnić sie minimalnie po 2ms. Sygnał z odbiornika trwa od 1ms do 2ms. Najpierw zliczam czas impuslu. W zależności od wartosci zliczonego czasu impulsu daje atmega odpowiedni sygnal pwm na tranzystory sterujace silnikiem(1ms-max tył, 1,5ms - zero, 2ms - max przod). Licznik jednak zlicza impulsy od okolo 150 do 230, zamiast okolo 128(1ms) i 255(2ms). Ale to nie jest najwiekszym problem, raz układ mi sie spalił, ale raczej z mojej winy bo chyba doprowadzilem do zwarcia sciezek sterujacych pwm
Kod: C / C++