• 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
Generowanie sygnału PWM niezależnie od dalszego kodu
#1
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?
 
Odpowiedź
#2
Witam,
Funkcja delay przyjmuje jako argument liczby całkowite, dodatnie. Możesz użyć delayMicroseconds ().
Pozdrawiam
 
Odpowiedź
#3
No dobrze, ale to nic nie pomoże w samym działaniu
 
Odpowiedź
#4
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
 
Odpowiedź
#5
Poza tym sam generator o stalej częstotliwości można łatwo zrealizować za pomocą funkcji tone () umieszczonej w setup.
 
Odpowiedź
#6
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ć
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości