Sygnał PWM jest sygnałem generowanym przez Pulse Width Modulation, aby uzyskać więcej informacji, możesz przejść do naszego wpisu na blogu. Krótko mówiąc, jak wspomniano w sekcji pin, modulacja PWM służy do przesyłania informacji za pośrednictwem kanału komunikacyjnego lub do kontrolowania ilości energii wysyłanej do ładunku. Tym razem zajmiemy się generowaniem PWM, obsługą wejść i kamer z poziomu Pythona.

Zacznijmy od prostego przykładu z diodą. Podłącz go przez rezystancję 1ko do pinu numer 12, jak widzieliśmy wcześniej i jak pokazano na poniższym schemacie:

Teraz otworzymy IDE do programu w Pythonie, na przykład Thonny Python IDE, w którym otworzymy nowy szkic i skopiujemy następujący kod:

importuj RPi.GPIO jako GPIO

czas importu

GPIO.setmode(GPIO. BCM)

GPIO.setwarnings(Fałsz)

GPIO.setup(12, GPIO. NA ZEWNĄTRZ)

dioda - GPIO. PWM (12, 50) #Nueva instancji PWM

cło - 0 - cykl pracy sygnału PWM

diodo.start (duty) - Aktywuje sygnał PWM

Spróbuj:

podczas gdy True:

cło +5

jeżeli cło > 100:

cło - 0

diody. Zmiana cyklu (cła) #Establece nową wartość wypełnienia

time.sleep(0.05)

z wyjątkiem KlawiaturyPrzejdła:

print("Koniec")

dioda.stop()

GPIO.cleanup()

Wyjaśnijmy trochę każdą linię. Jak zawsze, na początku trzeba zaimportować odpowiednie biblioteki i uruchomić konfiguracje, w naszym przypadku biblioteki pinów GPIO oraz czas i ich konfiguracje.

Gdy chcemy wygenerować sygnał PWM, musimy zacząć od utworzenia instancji, do której przypiszemy informacje o pinie i częstotliwości. Robimy to w następującym wierszu:

Nombre_instancia = GPIO. PWM (pin, częstotliwość) #Nueva instancji PWM

Pamiętaj, że to, co jest po "A" jest komentarz i nie wpływa na kod. W naszym przypadku linia pozostaje:

dioda - GPIO. PWM (12, 50) #Nueva instancji PWM

Następnie tworzymy zmienną "wypełnienia" o nazwie duty, która, jak sama nazwa wskazuje, będzie zawierać informacje o bieżącym wypełnieniu sygnału PWM (wartości od 0 do 100% niepodpisane), będzie cyklem roboczym sygnału. Krótko mówiąc, procent sygnału, który jest w stanie wysokim, w stosunku do sumy cyklu. Ta zmienna cła zostanie zainicjowana do 0.

cło - 0 - cykl pracy sygnału PWM

Następnym krokiem jest uruchomienie PWM, jako argument do tej funkcji dajemy oczekiwane zakończenie.

diodo.start (duty) - Aktywuje sygnał PWM

Od teraz sygnał PWM będzie generowany na pinie 12. Twój obowiązek można zmienić przez cały czas, wykonując następującą instrukcję:

diody. Zmiana cyklu (cło)

Następnie, zbierając informacje z poprzednich części kursu, możemy stworzyć prosty program, który zmieni PWM, kończąc cykl. W praktyce będzie to oznaczać płynne oświetlenie LED.

Istnieje również time.sleep(0.05), który czeka w pętli while, nawet jeśli jest minimalny, zawsze jest to konieczne. Na końcu programu znajduje się linia bardziej diode.stop(), której prawdopodobnie nie trzeba wyjaśniać. Oczywiście, jest odpowiedzialny za zatrzymanie PWM "generator" na danym pin. Podczas pracy programu możemy również dostosować częstotliwość PWM. Aby to zrobić, musimy wprowadzić następujące oświadczenie: dioda. Zmień Liczbę (XXX), gdzie w nawiasie można umieścić liczbę od 0 do 100.

Jak widzimy, tabela każdej linii jest ważna i powinna wyglądać jak poprzedni obraz. Gdy już to zrobimy, możemy dać Runowi do uruchomienia.

Zobaczysz, jak dioda LED jest stopniowo włączana do maksimum, a następnie wyłącza się i powtarza proces. Aby zatrzymać program, możesz wykonać ctrl+c lub nacisnąć przycisk Stop. Pamiętaj, że jeśli dioda LED pozostaje w miejscu, zawsze możesz ją wyłączyć ręcznie za pomocą terminala poleceń za pomocą:

gpio -g napisać 12 0