• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
PWM - piszczenie silnika
#16
G woli ścisłości dla potomnych, wytłumaczmy sobie działanie programu z poprzedniej strony i dla czego nie robił tego co by autor chciał żeby robił.
Zaznaczyć trzeba, że program robi zawsze to, do czego został napisany.
W naszym przypadku te dziwne zaklęcia w stylu: TCCR2A = _BV(COM2B1) | _BV(WGM21) | _BV(WGM20); włączają dwa kanały timera. Kanał A na 38.4kHz (no nie do końca się zgodzę z autorem), kanał B na połowę kanału A.
Po różnych czarodziejskich wyrażeniach na nogę PIN3 wystawiony zostaje sygnał o częstotliwości kanału A z wypełnieniem 50% (ponieważ B/A=0.5).
Dopiero w funkcji loop(); mamy pinMode(3, pot2);
To znaczy, że jak pot2>0, to PIN3 ustawiony zostaje jako wyjście i otrzymujemy na nim sygnał z zegara.
Silnik nie pracuje na pełnych obrotach jak to napisał bako1987, tylko na 50%.
Potencjometr po prostu włącza i wyłącza sygnał PWM na nodze 3.
Chcąc rozwiązać nasz problem, musimy zacząć sterować wypełnieniem, czyli nomen omen wartością kanału B dla OCR2.
I myślę, że w tym przypadku powinno to wyglądać tak:

void loop(){
int pot = (analogRead(A0));
val = map(val, 0, 1023, 0, 51);
OCR2B=val;
}
Rozwiązanie bako1987 z wykorzystaniem biblioteki PWM, jest dokładnie tym samym co ja tu napisałem, tylko że biblioteka jest opasła ze względu na zawartość wielu niepotrzebnych nam funkcji( niepotrzebnych w tym przypadku)
Dla usprawnienia można jedynie użyć makra digitalPinToTimer.
Pozdrawiam.
Jeśli masz problem z kodem lub sprzętem, zadaj pytanie na forum. Nie odpowiadam na PW, jeśli nie dotyczą one spraw forum lub innych tematów prywatnych.

[Obrazek: SsIndaG.jpg]
 
Odpowiedź
  


Wiadomości w tym wątku
PWM - piszczenie silnika - przez bako1987 - 18-02-2018, 09:57
RE: PWM - piszczenie silnika - przez OMK - 20-02-2018, 00:29
RE: PWM - piszczenie silnika - przez bako1987 - 20-02-2018, 08:25
RE: PWM - piszczenie silnika - przez Smaczek - 20-02-2018, 09:13
RE: PWM - piszczenie silnika - przez bako1987 - 20-02-2018, 09:41
RE: PWM - piszczenie silnika - przez Smaczek - 20-02-2018, 10:07
RE: PWM - piszczenie silnika - przez bako1987 - 21-02-2018, 00:22
RE: PWM - piszczenie silnika - przez OMK - 20-02-2018, 12:24
RE: PWM - piszczenie silnika - przez bako1987 - 20-02-2018, 15:52
RE: PWM - piszczenie silnika - przez OMK - 20-02-2018, 16:09
RE: PWM - piszczenie silnika - przez bako1987 - 20-02-2018, 23:15
RE: PWM - piszczenie silnika - przez Smaczek - 21-02-2018, 09:18
RE: PWM - piszczenie silnika - przez OMK - 21-02-2018, 10:35
RE: PWM - piszczenie silnika - przez bako1987 - 21-02-2018, 23:24
RE: PWM - piszczenie silnika - przez bako1987 - 22-02-2018, 02:22
RE: PWM - piszczenie silnika - przez Robson Kerman - 22-02-2018, 14:50
RE: PWM - piszczenie silnika - przez Robson Kerman - 22-02-2018, 14:53

Skocz do:


Przeglądający: 1 gości