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
#include
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
#include //termios, TCSANOW, ECHO, ICANON
#include //STDIN_FILENO
#include
#include
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;
}