Impulso pločio moduliacija (Pulse-width modulation) PWM - skirta jeigu norime simuliuoti stiprėjantį arba silpstantį signalą. Tinka LED Šviesumui reguliuoti arba motoro sukimosi greitumui reguliuoti
Kodas žemiau didina intensyvumą nuo 0 iki 100
#include <wiringPi.h> #include <softPwm.h> int main (void) { wiringPiSetupGpio(); softPwmCreate(2, 0, 100); for (int i=0;i<100;i++) { softPwmWrite (2, i); delay (20) ; } return 0 ; }
kodas zemiau spaudant q ir w galima reguliuoti intensyvumą
#include<stdio.h> #include <termios.h> //termios, TCSANOW, ECHO, ICANON #include <unistd.h> //STDIN_FILENO #include <wiringPi.h> #include <softPwm.h> const int pin = 21; int main(void){ int c; static struct termios oldt, newt; tcgetattr( STDIN_FILENO, &oldt); newt = oldt; newt.c_lflag &= ~(ICANON | ECHO); tcsetattr( STDIN_FILENO, TCSANOW, &newt); wiringPiSetupGpio(); pinMode(pin, OUTPUT); softPwmCreate(pin, 0, 100); int p = 0; printf("Press e to exit program\n"); printf("press q and w to increase and decrease software pwm\n"); while((c=getchar())!= 'e') { if (c == 'q') { p ++; printf("%d \r",p); softPwmWrite (pin, p); } if (c == 'w') { p --; printf("%d \r",p); softPwmWrite (pin, p); } delay (20) ; } tcsetattr( STDIN_FILENO, TCSANOW, &oldt); return 0; }