Mały, prosty sterownik krokowca pod AVR
-
- Lider FORUM (min. 2000)
- Posty w temacie: 27
- Posty: 2224
- Rejestracja: 17 wrz 2018, 10:47
- Lokalizacja: Wrocław
- Kontakt:
Re: Mały, prosty sterownik krokowca pod AVR
A tak przy okazji, to jesteś w stanie zauważyć mikrokrok co 1s? Jeden obrót zajmie kilkanaście minut.
-
Autor tematu - Lider FORUM (min. 2000)
- Posty w temacie: 21
- Posty: 6354
- Rejestracja: 29 kwie 2009, 10:11
- Lokalizacja: Kraków / Jaworzno / Kopanka
Re: Mały, prosty sterownik krokowca pod AVR
Częstotliwość 1Hz to oczywiście przesada, ale tak czy owak nie działa.
Pomigałem LEDem - sygnał na pinie 13 mój oscyloszkopik za 70zł pokazuje:
https://photos.app.goo.gl/gqYUorJssmW3hrNZA
Niestety ani na pinie 9 ani 10 nic sensownego nie widzę, same przydźwięki...
Sprawdziłem drugą płytkę solo - bez podłączonego czegokolwiek i to samo.

q
Pomigałem LEDem - sygnał na pinie 13 mój oscyloszkopik za 70zł pokazuje:
https://photos.app.goo.gl/gqYUorJssmW3hrNZA
Niestety ani na pinie 9 ani 10 nic sensownego nie widzę, same przydźwięki...
Sprawdziłem drugą płytkę solo - bez podłączonego czegokolwiek i to samo.

q
„Największym wrogiem wolności jest najedzony niewolnik.”
-
- Lider FORUM (min. 2000)
- Posty w temacie: 4
- Posty: 9323
- Rejestracja: 26 lut 2011, 23:24
- Lokalizacja: mazowieckie
Re: Mały, prosty sterownik krokowca pod AVR
Już o tym pisałem, ale najwyraźniej nikt nie zauważył ...
Generowanie częstotliwości zmianą dzielnika w timerze ma oczywistą wadę w postaci nieliniowej charakterystyki.
Jeśli ktoś nie kuma, to wyjaśniam, że zarówno zmiana podzielnika z 2 na 4, jak też z 20000 na 40000 da procentowo taką samą zmianę częstotliwości, czyli w tym przypadku dwa razy mniej.
Rozwiązaniem jest albo wydłużenie licznika, ale wtedy trzeba użyć 32 bitowego procesora, a więc już NIE AVR, albo technika gubienia impulsów przy stałej częstotliwości, czyli ZUPEŁNIE INNE rozwiązanie, wymagające z kolei dużej szybkości obliczeniowej, więc znowu NIE AVR.
Do tego należy dodać, że nie stosując ramp zdecydowanie ograniczamy maksymalne obroty silnika, więc odpada przekładnia, która przy pompie perystaltycznej może być koniecznością.
Podsumowując, albo trzeba się zadowolić biblioteką accelstepper, która jest mocno niedoskonała, albo przesiąść się na STM32F103, który cenowo wychodzi podobnie, ale sprzętowo to zupełnie inna bajka.
Generowanie częstotliwości zmianą dzielnika w timerze ma oczywistą wadę w postaci nieliniowej charakterystyki.
Jeśli ktoś nie kuma, to wyjaśniam, że zarówno zmiana podzielnika z 2 na 4, jak też z 20000 na 40000 da procentowo taką samą zmianę częstotliwości, czyli w tym przypadku dwa razy mniej.
Rozwiązaniem jest albo wydłużenie licznika, ale wtedy trzeba użyć 32 bitowego procesora, a więc już NIE AVR, albo technika gubienia impulsów przy stałej częstotliwości, czyli ZUPEŁNIE INNE rozwiązanie, wymagające z kolei dużej szybkości obliczeniowej, więc znowu NIE AVR.
Do tego należy dodać, że nie stosując ramp zdecydowanie ograniczamy maksymalne obroty silnika, więc odpada przekładnia, która przy pompie perystaltycznej może być koniecznością.
Podsumowując, albo trzeba się zadowolić biblioteką accelstepper, która jest mocno niedoskonała, albo przesiąść się na STM32F103, który cenowo wychodzi podobnie, ale sprzętowo to zupełnie inna bajka.
-
- Lider FORUM (min. 2000)
- Posty w temacie: 22
- Posty: 2437
- Rejestracja: 29 lis 2015, 00:38
- Lokalizacja: Bielsko-Biała
Re: Mały, prosty sterownik krokowca pod AVR
tuxcnc pisze:ale wtedy trzeba użyć 32 bitowego procesora, a więc już NIE AVR
A właśnie, że nie. W Xmedze można łączyć timery.
-
- Lider FORUM (min. 2000)
- Posty w temacie: 27
- Posty: 2224
- Rejestracja: 17 wrz 2018, 10:47
- Lokalizacja: Wrocław
- Kontakt:
Re: Mały, prosty sterownik krokowca pod AVR
Wgrałeś tylko ten kod? Bez żadnych innych dodatków i wyświetlaczy?oprawcafotografii pisze: ↑18 sty 2020, 09:17Częstotliwość 1Hz to oczywiście przesada, ale tak czy owak nie działa.
Pomigałem LEDem - sygnał na pinie 13 mój oscyloszkopik za 70zł pokazuje:
https://photos.app.goo.gl/gqYUorJssmW3hrNZA
Niestety ani na pinie 9 ani 10 nic sensownego nie widzę, same przydźwięki...
Sprawdziłem drugą płytkę solo - bez podłączonego czegokolwiek i to samo.
q
Dodane 21 minuty 43 sekundy:
A gdzie tak jest zrobione?tuxcnc pisze: ↑18 sty 2020, 09:44Już o tym pisałem, ale najwyraźniej nikt nie zauważył ...
Generowanie częstotliwości zmianą dzielnika w timerze ma oczywistą wadę w postaci nieliniowej charakterystyki.
Jeśli ktoś nie kuma, to wyjaśniam, że zarówno zmiana podzielnika z 2 na 4, jak też z 20000 na 40000 da procentowo taką samą zmianę częstotliwości, czyli w tym przypadku dwa razy mniej.
-
- Lider FORUM (min. 2000)
- Posty w temacie: 22
- Posty: 2437
- Rejestracja: 29 lis 2015, 00:38
- Lokalizacja: Bielsko-Biała
Re: Mały, prosty sterownik krokowca pod AVR
tuxcnc pisze:Możesz mi wyjaśnić po co mam się przesiadać na Xmega, skoro płytka z STM32F411 kosztuje na Aliexpress 15 PLN z dostawą ?
Powiedziałeś tylko, że to nie na AVR (z dodatkowym akcentem), więc sprostowałem. STMy to takie pół poziomu wyżej niż xmegi, także też bym się w dół pewnie nie przesiadał.
-
- ELITA FORUM (min. 1000)
- Posty w temacie: 20
- Posty: 1242
- Rejestracja: 15 lis 2009, 02:46
- Lokalizacja: Olsztyn
- Kontakt:
Re: Mały, prosty sterownik krokowca pod AVR
oprawcafotografii pisze:Sprawdziłem drugą płytkę solo - bez podłączonego czegokolwiek i to samo.
Trochę dziwne, że na dwóch. Kiedyś nabyłem tanie "arduino" pod GRBL i miesiąc szarpałem się z niedziałającym krańcówkami. Uszkodzone dwa piny w procku - wymiana na nowy A328 i działa.
tuxcnc pisze:Jeśli ktoś nie kuma
No właśnie. Tryb CTC licznika znacznie różni się od normalnego - przepełnienie i przerwanie. Zresztą i ten tryb też można modyfikować.
I tak się właśnie kończy używanie kiepskich bibliotek i goo..ego kodu - zawsze brakuje mocy. W końcu przejście na cortex-y: M0, M3 itd.
Jak ściganie się na zaciągniętym ręcznym. Idąc tym tropem, to się okaże, że głupią pompkę trzeba sterować "potężnym Ryzenem i RTos-em".
Funkcja kol. TOP67 wydaje się być prawidłowa - choć nie doskonała. Nie mam wolnego Arduino ( ani komu podciągnąć

Co do niedoskonałości:
-pozbyłbym się wszystkich zmiennych typu float. AVRy nie mają koprocesora matematycznego. Co prawda kompilator sobie z tym poradzi, ale generuje bardzo długi kod.
-Zmiana wartości licznika i ew. podzielnika powinna następować w ściśle określonym momencie - przy zerowaniu.
Ponieważ program dla pompki jest raczej prosty i liniowy, zastosowałbym flagę przepełnienia - nie przerwanie, i w pętli oczekiwał na jej wystąpienie. Ewentualne opóźnienie wysłania danych na wyświetlacz nie będzie miało żadnego znaczenia.
-
- Lider FORUM (min. 2000)
- Posty w temacie: 27
- Posty: 2224
- Rejestracja: 17 wrz 2018, 10:47
- Lokalizacja: Wrocław
- Kontakt:
Re: Mały, prosty sterownik krokowca pod AVR
W pierwotnej wersji było long. Ale kolegę interesują bardzo małe częstotliwości, i skok co 1Hz byłby mało dokładny. Oczywiście jest kilka rozwiązań tego problemu, np.: zwiększyć mikrokrok, co podniesie częstotliwość; podawać parametr 10 lub 100 razy większy; podawać okres a nie częstotliwość.
-
Autor tematu - Lider FORUM (min. 2000)
- Posty w temacie: 21
- Posty: 6354
- Rejestracja: 29 kwie 2009, 10:11
- Lokalizacja: Kraków / Jaworzno / Kopanka
Re: Mały, prosty sterownik krokowca pod AVR
Tak, dokładnie to co pokazałem, nic więcej.
Wgrałeś tylko ten kod? Bez żadnych innych dodatków i wyświetlaczy?
Nie wiem czy to oczywiste, ale używam Arduino Mega 2560..
Jakub
„Największym wrogiem wolności jest najedzony niewolnik.”