Arduino Polska Forum
Generowanie sygnału PWM niezależnie od dalszego kodu - Wersja do druku

+- Arduino Polska Forum (https://forum.arduinopolska.pl)
+-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino)
+--- Dział: Programowanie w Arduino (https://forum.arduinopolska.pl/dzial-programowanie-w-arduino)
+--- Wątek: Generowanie sygnału PWM niezależnie od dalszego kodu (/watek-generowanie-sygna%C5%82u-pwm-niezale%C5%BCnie-od-dalszego-kodu)



Generowanie sygnału PWM niezależnie od dalszego kodu - Tomuh - 06-01-2017

Potrzebuje na dowolnym pinie wygenerować sygnał PWM o dużej częstotliwości i wypełnieniu 50%
Jednak gdy robię coś takiego
Kod:
void loop()
{
digitalWrite(13, HIGH);
delay(0.1);
digitalWrite(13, LOW);
delay(0.1);
}


Jest ok, dopóki nie wpisze dalszego kodu i delay'ów potrzebnych do ich realizacji...
Kiedy zostawie takie opóźnienie do całości, to jest ono tak małe, że różne rzeczy wariują, np. wyświetlacz tak szybko pisze, ludzkim okiem tego nie widzę, czy da się zrobić coś w stylu void loop2, który będzie się powtarzał niezależnie od void loop?


RE: Generowanie sygnału PWM niezależnie od dalszego kodu - Smaczek - 06-01-2017

Witam,
Funkcja delay przyjmuje jako argument liczby całkowite, dodatnie. Możesz użyć delayMicroseconds ().
Pozdrawiam


RE: Generowanie sygnału PWM niezależnie od dalszego kodu - Tomuh - 06-01-2017

No dobrze, ale to nic nie pomoże w samym działaniu


RE: Generowanie sygnału PWM niezależnie od dalszego kodu - Smaczek - 06-01-2017

Witam,
To każ pozostałe czynności robić co któreś wykonanie pętli loop:
int i =0 - jako zmienna globalna
if (! (i%100))...
i++
Pozdrawiam


RE: Generowanie sygnału PWM niezależnie od dalszego kodu - Smaczek - 07-01-2017

Poza tym sam generator o stalej częstotliwości można łatwo zrealizować za pomocą funkcji tone () umieszczonej w setup.


RE: Generowanie sygnału PWM niezależnie od dalszego kodu - piotr2393 - 07-01-2017

Tak jak kolega Smaczek napisał, do generowania sygnałów o odpowiedniej częstotliwości służy funkcja Tone(), która domyślnie ustawia PWM na poziomie 50% o czym warto pamiętać