Pierwsze kroki z Raspberry Pi: zdalne (WiFi) sterowanie PWM na przykładzie serwomechanizmu i LED
Generowanie sygnału PWM i sterowanie przez sieć
Teraz wrócimy do sterowania diodą, ale będziemy korzystać z innej ciekawej funkcjonalności pakietu pigpio, czyli możliwości sterowania przez socket (zarówno lokalnie jak i przez sieć). Program pigpiod domyślnie oczekuje na połączenia na porcie 8888, na który należy wysłać cztery 32-bitowe dane, pierwszą jest kod rozkazu, trzy kolejne są jego argumentami, lista rozkazów jest w tabeli poniżej.
| Macro | cmd | Function | p1 | p2 | res |
| PI_CMD_MODES | 0 | gpioSetMode | gpio | mode value | status |
| PI_CMD_MODEG | 1 | gpioGetMode | gpio | – | mode or error |
| PI_CMD_PUD | 2 | gpioSetPullUpDown | gpio | pull up down value | status |
| PI_CMD_READ | 3 | gpioRead | gpio | – | level or error |
| PI_CMD_WRITE | 4 | gpioWrite | user gpio | level | status |
| PI_CMD_PWM | 5 | gpioPWM | user gpio | duty cycle | status |
| PI_CMD_PRS | 6 | gpioSetPWMrange | user gpio | range | real range or error |
| PI_CMD_PFS | 7 | gpioSetPWMfrequency | user gpio | frequency | selected frequency or error |
| PI_CMD_SERVO | 8 | gpioServo | user gpio | pulse width | status |
| PI_CMD_WDOG | 9 | gpioSetWatchdog | user gpio | timeout | status |
| PI_CMD_BR1 | 10 | gpioRead_Bits_0_31 | – | – | levels |
| PI_CMD_BR2 | 11 | gpioRead_Bits_32_53 | – | – | levels |
| PI_CMD_BC1 | 12 | gpioWrite_Bits_0_31_Clear | bits | – | 0 |
| PI_CMD_BC2 | 13 | gpioWrite_Bits_32_53_Clear | bits | – | 0 |
| PI_CMD_BS1 | 14 | gpioWrite_Bits_0_31_Set | bits | – | 0 |
| PI_CMD_BS2 | 15 | gpioWrite_Bits_32_53_Set | bits | – | 0 |
| PI_CMD_TICK | 16 | gpioTick | – | – | tick |
| PI_CMD_HWVER | 17 | gpioHardwareRevision | – | – | revision |
| PI_CMD_NO | 18 | gpioNotifyOpen | – | – | handle or error |
| PI_CMD_NB | 19 | gpioNotifyBegin | handle | bits | status |
| PI_CMD_NP | 20 | gpioNotifyPause | handle | – | status |
| PI_CMD_NC | 21 | gpioNotifyClose | handle | – | status |
| PI_CMD_PRG | 22 | gpioGetPWMrange | user gpio | – | range or error |
| PI_CMD_PFG | 23 | gpioGetPWMfrequency | user gpio | – | frequency or error |
| PI_CMD_PRRG | 24 | gpioGetPWMrealRange | user gpio | – | real range or error |
| PI_CMD_HELP | 25 | N/A, handled by calling program | – | – | 0 |
Po wysłaniu tych czterech wartości pigpiod odeśle nam je z tą różnicą, że czwarty parametr będzie zawierał wynik operacji. Jeśli chcielibyśmy zaświecić diodę z wypełnieniem PWM równym 50% powinniśmy wywołać w konsoli polecenie:
pigs p 15 128
Tutaj p określa operację jaką chcemy wykonać, 15 – numer linii, 128 oznacza wypełnienie (zakres od 0 do 255). Aby tę samą operację wykonać przez socket należy wysłać kolejno:
5 – rozkaz PWM,
15 – numer linii,
128 – wartość wypełnienia PWM,
0 – pusta wartość.
W przykładowym filmie posłużono się aplikacją dla systemu Android, która wykonuje powyższe operacje, artykuł na temat sposobu tworzenia takiej aplikacji zamieścimy wkrótce.

Jak dobrać odpowiedni format banera reklamowego do wydarzenia plenerowego?
„Shadow AI” w firmach: dlaczego tak wielu pracowników korzysta ze sztucznej inteligencji bez zgody firmy?
ADALM2000 – Regulowany układ wyzwalania zewnętrznego 

![https://www.youtube.com/watch?v=XkeyLmtLfxo O konkursie organizowanym przez firmę TRUMPF Huettinger i polskie uczelnie techniczne opowiada Alicja Peresada i prof. Jacek Rąbkowski oraz kilkoro nagrodzonych dyplomantów: mgr inż. Jakub Dobosz, inż. Maja Zielińska, dr inż. Jakub Kołodziej, dr inż Weronika Hryniewska-Guzik i dr inż. Grzegorz Bartyzel. Zapraszamy do obejrzenia filmu! [materiał redakcyjny]](https://mikrokontroler.pl/wp-content/uploads/2026/07/TRUMPF-czolowka.png)



