Bogusław Kempny

PWM, modulacja szerokości impulsów

×
Autor English
Początek HC-SR04 LCD Kamera fork() sms strfry() GPIO impulsy Klawiatura Brama GPIO PWM SG90 RFID Grafolog RCP Shutdown Temperatura ....











No to czas na testowe programy.

Nie sądzę, że każdy z Was ma pod ręką oscyloskop, żeby sobie obejrzeć i pomierzyć wygenerowany sygnał. Ja też nie mam. Dlatego napisałem prosty programik markspace.c który na pinie 22 (według wiringPi) mierzy czas trwania jedynki logicznej, czas zera logicznego i okres sygnału. Nie jest super precyzyjny, pomiar zakłóca mu wielozadaniowość Raspbiana, ale do naszych celów wystarczy.

Kompilujemy go gotowym skryptem cms lub ręcznie: cc markspace.c -o markspace -lwiringPi

łączymy pin 22 z pinem na którym chcemy mierzyć sygnał i uruchamiamy:

./markspace

Jeśli na pinie 22 będzie jakiś okresowy sygnał, na ekranie coś takiego się wyświetli:

Mark: 4.00 ms Space: 6.00 ms Period: 10.00 ms

Zamiast programu markspace do pinu pwm podłączyć możemy diodę LED, wtedy (przynajmniej w niektórych przykładach) "na własne oczy" zobaczymy ze pwm działa, jasność świecenia będzie się zmieniała: