User Tools

Site Tools


raspberrypi:wiringpi:softpwm

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;
}
raspberrypi/wiringpi/softpwm.txt · Last modified: by aistis