Pytanie:
Arduino PWM nie działa
Leo Adberg
2014-12-16 07:09:19 UTC
view on stackexchange narkive permalink

Kontroluję 4 silniki za pomocą portów PWM na Arduino Uno (3,9,10,11). Z jakiegoś powodu silnik podłączony do portu 11 nie porusza się z moim obecnym kodem. Wiem, że jest to problem z kodem, ponieważ mogę utworzyć nowy podstawowy kod, który po prostu porusza silnikiem i działa dobrze, ale z jakiegoś powodu tak nie jest w tym kodzie.

  #include <SPI. h> #include <Pixy.h>Pixy pixy; int personX = 0; int offCount = 0; void setup () {pinMode (3, OUTPUT); pinMode (9, WYJŚCIE); pinMode (10, WYJŚCIE); pinMode (11, WYJŚCIE); Serial.begin (9600); while (! Serial); pixy.init ();} void loop () {static int i = 0; int j; bloki uint16_t; char buf [32]; bloki = pixy.getBlocks (); if (bloki) {personX = pixy.blocks [0] .x; } if (bloki) {Serial.println (personX); if (personX < 110) {analogWrite (11, 130); analogWrite (3, 130); analogWrite (9, 250); analogWrite (10, 250); } else if (personX > 190) {analogWrite (11, 250); analogWrite (3, 250); analogWrite (9, 130); analogWrite (10, 130); } else {analogWrite (11, 190); analogWrite (3, 190); analogWrite (9, 190); analogWrite (10, 190); } offCount = 0; } else {if (offCount < 1000) {offCount = offCount + 1; } else {analogWrite (11, 190); analogWrite (3, 190); analogWrite (9, 190); analogWrite (10, 190); }}} 

Poza tym, gdy biorę silnik i zamieniam go na inny, stary pracuje na nowym porcie PWM, ale nowy przestaje działać po włożeniu go do portu 11 .

Jeden odpowiedź:
Ignacio Vazquez-Abrams
2014-12-16 08:29:14 UTC
view on stackexchange narkive permalink

Pin 11 jest współdzielony między PWM i SPI. Aktywując SPI, wyłączyłeś PWM z pracy na tym pinie. Zamiast tego użyj innego pinu PWM lub przełącz się na programowe SPI na innych pinach.

Dzięki za informację! Zdałem sobie sprawę, że mogę po prostu podzielić PWM z 3, aby sterować silnikiem wcześniej podłączonym do portu 11, ale ponieważ będę musiał użyć 11 w pewnym momencie w przyszłości, będę musiał wiedzieć, jak korzystać z SPI. Jestem nowy w Arduino, więc musiałem wygooglować, czym jest SPI, ale jak przełączyć się na oprogramowanie SPI i czy nadal będzie działać z kamerą Pixy?
Nie polecam używania SPI oprogramowania, jeśli możesz temu zaradzić. Zamiast tego wybierz MCU z większą liczbą kanałów PWM (np.ATmega1280 w Arduino Mega lub ATmega128A znaleziony w ... żadnego Arduino, o którym wiem), albo znajdź zewnętrzny kontroler PWM, którym można sterować przez SPI lub I2C.


To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 3.0, w ramach której jest rozpowszechniana.
Loading...