树莓派中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的更多相关文章

  1. 树莓派中QT实现I2C

    树莓派中QT实现I2C 在QT中实现 I2C 使用的驱动为 wiringPi 库的引入 LIBS += -lwiringPi LIBS += -lwiringPiDev 代码实现 widget.h 中 ...

  2. 树莓派中QT实现串口通讯

    树莓派中QT实现串口通讯 开发平台为QT 此博客QT使用的为WiringPi驱动 我使用的串口调试助手为 cutecom 先简单说一些开发过程中需要注意的问题 Linux 下设备为 tty ,对应在 ...

  3. 树莓派中安装QT

    树莓派中安装QT 本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 环境: 主机:WIN7 硬件:树莓派 步骤: 参考链接:http://qt-proje ...

  4. 张高兴的 Windows 10 IoT 开发笔记:使用 Lightning 中的软件 PWM 驱动 RGB LED

    感觉又帮 Windows 10 IoT 开荒了,所以呢,正儿八经的写篇博客吧.其实大概半年前就想写的,那时候想做个基于 Windows 10 IoT 的小车,但树莓派原生不支持 PWM 啊.百度也搜不 ...

  5. 树莓派中编译Opencv3.4.1和OpenCVSharp库

    一.简介 本文主要讲在树莓派中编译Opencv3.4.1和OpenCVSharp库,方便C#开发人员可以通过Mono或者Netcore运行C#通过OpenCVSharp写的OpenCV库. 二.过程 ...

  6. 树莓派中编译OpenCV3.4.1和OpenCvSharp

    一.简介 本文重点描述在树莓派中编译OpenCV3.4.1和OpenCvSharp,大家都知道OpenCVSharp是使用C#调用OpenCV最简洁的一个库.但是在Linux上或者树莓派上运行时,需要 ...

  7. Linux环境中Qt程序的手工发布

    Linux环境中Qt程序的手工发布

  8. 在Ubuntu18.04中QT编程的环境构建(转)

    在Ubuntu18.04中QT编程的环境构建 原点分析 百家号06-2110:14 如果说QT大家觉得陌生的话,那么 Windows 早年推出的C++图形用户界面的应用程序开发框架MFC,应该是耳熟能 ...

  9. Linux树莓派中/etc/rc.local不执行的问题

    最近研究在树莓派中嵌入式开发java程序,并打算和Salesforce进行通信.需要开发一个java的web server,不想弄那么复杂,于是打算在linux系统中/etc/rc.local写想要执 ...

随机推荐

  1. 折腾Java设计模式之模板方法模式

    博客原文地址:折腾Java设计模式之模板方法模式 模板方法模式 Define the skeleton of an algorithm in an operation, deferring some ...

  2. 008. 阻塞&非阻塞、同步&异步

    阻塞 非阻塞:关注的对象是调用者: 阻塞:调用者发起调用后,处于等待状态,直到该调用有返回: 非阻塞:调用者发起调用后,不需要等待返回,可以往下执行: 同步 异步:  关注的对象是被调用者: 同步:服 ...

  3. php封装生成随机数函数

    随机数函数Random(num,min,max): num:生成的个数 min:最小的数 max:最大的数. <?php //生成随机20个1-80内不重复的随机数 //思路:也没什么思路,就是 ...

  4. StackExchange.Redis中文使用文档

    StackExchange.Redis中文使用文档 Intro 最近想深入学习一些 Redis 相关的东西.于是看了看官方的项目 StackExchange,发现里面有一份文档,于是打算翻译成中文,方 ...

  5. 获取DataTable前几条数据

    #region 获取DataTable前几条数据 /// <summary> /// 获取DataTable前几条数据 /// </summary> /// <param ...

  6. w3wp.exe进程占用内存过高解决方法

    解决CPU占用过多: 1.在IIS中对每个网站进行单独的应用程序池配置.即互相之间不影响. 2.设置应用程序池的CPU监视,不超过25%(服务器为4CPU),每分钟刷新,超过限制时关闭. 根据w3wp ...

  7. .NET开源快速开发框架Colder发布 (NET452+AdminLTE版)

    .NET开源快速开发框架Colder(NET452+AdminLTE版) 引言 半年前将基于Easyui的快速开发框架开源,三个版本(NET4.52,NETCore和NET4.0)总共荣获200+星, ...

  8. Node.js中的console.log()输出彩色字体

    转自:https://www.jianshu.com/p/cca3e72c3ba7 console.log('\033[42;30m DONE \033[40;32m Compiled success ...

  9. Map的clear与new Map的区别

    对于clear与new Map的区别.我们首先来看一个例子,本例子是我在实际开发中遇到的,需求就是讲map放入到list中,说白了就是list转map,有两种实现方式,分别是: // 方案一 Map& ...

  10. 基于Python玩转人工智能最火框架 TensorFlow应用实践

    慕K网-299元-基于Python玩转人工智能最火框架 TensorFlow应用实践 需要联系我,QQ:1844912514