Wpis z mikrobloga

@Ardeo: Układ będzie zasilany z akumulatora, dość dużego. W razie gdybym go przenosił i odłączał chce mieć takie jakby podtrzymanie pracy mikrokontrolera. Swoją drogą za pomocą tranzystora Q1 jestem w stanie sterować prędkością obrotową tego silnika, czy raczej nie ma takiej możliwości w tym układzie? Jeżeli tak, to czy to jest związane z tym tzw. PWM? Obiło mi się to o uszy, ale jeszcze nie zagłębiałem się w to.
  • Odpowiedz
@bielu000: Dorzuć kondensatory obok L7805 i rezystory na bramkach MOSFETów

https://www.sparkfun.com/datasheets/Components/LM7805.pdf
rysunek 1

i o rezystorach na bramce:
https://www.youtube.com/watch?v=o0OHGWCZ7B0

Swoją drogą za pomocą tranzystora Q1 jestem w stanie sterować prędkością obrotową tego silnika, czy raczej nie ma takiej możliwości w tym układzie? Jeżeli tak, to czy to jest związane z tym tzw. PWM? Obiło mi się to o uszy, ale jeszcze nie zagłębiałem się w to.


Da radę sterować. Najlepiej jeszcze
QBA__ - @bielu000: Dorzuć kondensatory obok L7805 i rezystory na bramkach MOSFETów

...

źródło: comment_a25pFkwlnh2chQNaos1dQCLXXsDw9PHy.gif

Pobierz
  • Odpowiedz
@QBA__: @defoxe: I w zasadzie jeszcze jedno pytanie - jak widać na schemacie wiele połączeń się krzyżuje. Przypuszczam, że da się to jakoś zoptymalizować jednakże domyślam się, że jakieś połączenia krzyżowe wyjdą. Jak można "obejść" to np. na ręcznie robionej płytce, lub takie uniwersalnej? Czy są jakieś techniki na robienie "przelotek"?
  • Odpowiedz
@bielu000: Nie traktuj schematu połączeń elektrycznych jako 1:1 prowadzenia połączeń na płytce.
W technice niskich częstotliwości, gdzie można praktycznie ścieżkami zawijać "do woli" robienie "przelotek" jest trochę porażką konstruktorską. Dobrze zaprojektowana PCB jedno warstwowa (jedna warstwa miedzi) powinna mieć jak najmniej przelotek. W twoim przypadku będzie to bardzo proste. Między nogami kondensatorów można prowadzić ścieżkę i pod scalakiem też ( ͡- ͜ʖ ͡°).
Jak robić "przelotki"? No
  • Odpowiedz
@defoxe: Dzięki wielkie za pomoc. Spróbowałem wygenerować PCB w tym programie EasyEDA, wraz z AutoRouterem na jednej warstwie i faktycznie się da.

Mam jeszcze jedno pytanie odnośnie PWM.
Nie do końca jeszcze ogarniam co się w tej dokumentacji dzieje, ale czy dobrze rozumiem, że działa to na zasadzie:
- timer/Counter(załóżmy 8 bitowy) liczy od 0 od 255.
- w rejestrze OCR0(?) ustalam pewną wartość np. 125 która będzie porównywana z wartością
  • Odpowiedz
Dodatkowo w przypadku Atmegi16A robiąc PWM na Timer0 powinienem podpiąć wyjście PB3(OC0, AIN3), a korzystając z Timer1 mogę użyć wyjść PD4(OC1B) oraz PD5(OC1A)?
  • Odpowiedz
@defoxe: @QBA__: Czy znacie może jakieś źródła gdzie mógłbym poczytać o jakichś "best-practices" odnośnie programowania takich układów? Czy są jakieś specjalne techniki np. na odczytywanie stanów wejść inne niż seria ifów w pętli głównej itp? :)
  • Odpowiedz
@bielu000:

No witam, wcześniej nie miałem dość czasu zeby treściwie odpisać.

Mam jeszcze jedno pytanie odnośnie PWM.

Nie do końca jeszcze ogarniam co się w tej dokumentacji dzieje, ale czy dobrze rozumiem, że działa to na zasadzie:

- timer/Counter(załóżmy 8 bitowy) liczy od 0 od 255.

- w rejestrze OCR0(?) ustalam pewną wartość np. 125 która będzie porównywana z wartością T/C0?


Mniej więcej dobrze rozumujesz. Dałem Ci wyżej link do artykułu
  • Odpowiedz
@QBA__: Dzięki wielkie mirku za obszerny opis :) Część z tych źródeł kojarzę, zwłaszcza Mirosława Kardasia i faktycznie ma taki zwyczaj, że dużo gada ale nie na temat, aczkolwiek wiedzę ma ogromną moim zdaniem :)

Czytam sobie dokumentację Atmegi48/88/168 i naszło mnie jeszcze jedno pytanie:
W konfiguracji Timera jest coś takiego:

COM0A[1]-> 0
COM0A[0]->1
Opis do tego trybu:
WGM0[2:0]: Normal port operation, OC0A disconnected.
WGM0[2:1]: Toggle OC0A on compare match

Czy
  • Odpowiedz
@QBA__: Poza tym czy dobrze rozumiem, że aby ustawić załóżmy tryb PWM, może być taka opcja, że trzeba zmienić coś w dwóch rejestrach kontrolnych timerów?

Np. sugerując się wspomnianą dokumentacją -> ustawienia trybu preskalera dostępne są w rejestrze kontrolnym TCCR0B, a w TCCR0A nie ma takiej opcji. Rozumiem, że normalną sytuacją jest, że np. część ustawień timera jest w jednym rejestrze, a część w drugim?
  • Odpowiedz