码迷,mamicode.com
首页 > 其他好文 > 详细

树莓派中QT实现PWM

时间:2019-03-19 16:40:03      阅读:253      评论:0      收藏:0      [点我收藏+]

标签:creat   int   fine   write   ISE   .com   debug   count   树莓派   

树莓派中QT实现PWM

在QT中实现 PWM 使用的驱动为 wiringPi

之前的博客中已经介绍了 wiringPi , BOARD 管脚, BCM 之间的关系

这次, 就介绍在 wiringPi 中的PWM如何使用

库的引入

LIBS += -lwiringPi
LIBS += -lwiringPiDev

UI 展示

技术图片

效果展示

PWM低时

技术图片

PWM高时

技术图片

代码实现

widget.h

定义UI中两个控件对应的槽函数

#include <QWidget>
#include <QDebug>
#include "wiringPi.h"
#include "softPwm.h"

namespace Ui {
class Widget;
}

class Widget : public QWidget
{
    Q_OBJECT

public:
    explicit Widget(QWidget *parent = 0);
    ~Widget();

private slots:
    void on_pushButton_clicked();
    void on_horizontalSlider_valueChanged(int value);

private:
    Ui::Widget *ui;
    int count = 0;
    int pwm = 0;
};

widget.cpp

在槽函数中具体对PWM进行实现

#include "widget.h"
#include "ui_widget.h"

#define PWMrange 100

Widget::Widget(QWidget *parent) : QWidget(parent),
    ui(new Ui::Widget){
    ui->setupUi(this);

    wiringPiSetup();
    pinMode(25,OUTPUT);
    softPwmCreate(25,0,PWMrange);
}

Widget::~Widget(){
    delete ui;
}

void Widget::on_pushButton_clicked(){
    count ++;
    if(count % 2 == 1){
        softPwmWrite(25,pwm);
        qDebug() << "1";
    }else{
        softPwmWrite(25,0);
        qDebug() << "0";
    }
}

void Widget::on_horizontalSlider_valueChanged(int value){
    pwm = value;
    if(count % 2 == 0){
        softPwmWrite(25,0);
        return;
    }else {
        softPwmWrite(25,pwm);
    }
}

树莓派中QT实现PWM

标签:creat   int   fine   write   ISE   .com   debug   count   树莓派   

原文地址:https://www.cnblogs.com/wangha/p/10559379.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!