当前位置: 首页 > news >正文

香橙派/树莓派 利用Wiring库 使用GPIO模拟PWM

香橙派或者树莓派 等开发板,本身带有硬件PWM,比如香橙派3 lts版,但是这个引脚不符合我的项目需求,我需要外接一个电机,在检测到人脸的时候 转动,但是这个硬件引脚,只要上电就开始输出pwm 信号,导致电机一直再转,因此采用软件 利用GPIO模拟的方式,更符合需求。

#pragma once
#include <wiringPi.h>
#include <softPwm.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <memory>
#include <Util/logger.h>

using namespace toolkit;
const int gpioPin = 10;         //GPIO引脚
const int pwmRange = 100;       // PWM范围(0-100对应占空比0-100%)
const int targetDutyCycle = 80; // 目标占空比(0-100)

class Vibration : public std::enable_shared_from_this<Vibration>
{
public:
    using Ptr = std::shared_ptr<Vibration>;
    ~Vibration()
    {
    }

    bool init()
    {
        // 初始化 WiringPi 库
        if (wiringPiSetup() == -1)
        {
            ErrorL << "WiringPi初始化失败!";
            return false;
        }

        // 初始化软件PWM(参数:引脚、初始值、范围)
        if (softPwmCreate(gpioPin, 0, pwmRange) != 0)
        {
            ErrorL << "软件PWM初始化失败!";
            return false;
        }
        return true;
    }

    void vibrate()
    {
        // 设置占空比
        softPwmWrite(gpioPin, targetDutyCycle);

       InfoL<< "PWM运行中 (引脚 " << gpioPin
                  << "), 占空比: " << targetDutyCycle << "%" ;

        // 保持运行(例如5秒)
        delay(3000);

        // 停止PWM
        softPwmWrite(gpioPin, 0);
    }
};

相关文章:

  • WebSocketHandler 是 Spring Framework 中用于处理 WebSocket 通信的接口
  • 普中单片机-51TFT-LCD显示屏(1.8寸 STM32)
  • tableau之雷达图和凹凸图
  • 图数据库 | 23、如何评测图系统 — 评测内容?
  • 正则表达式用法及其示例:匹配、查找、替换文本中的模式,及QT下如何使用正则表达式。
  • Linux网络基础(协议 TCP/IP 网络传输基本流程 IP VS Mac Socket编程UDP)
  • RAG 阿里云
  • go 语言中的线程池
  • 四、Redis主从复制与读写分离
  • nvidia驱动更新,centos下安装openwebui+ollama(非docker)
  • 面试基础---ConcurrentHashMap vs HashMap
  • 网络运维学习笔记(DeepSeek优化版)003网工初级(HCIA-Datacom与CCNA-EI)命令入门
  • 【paddle】详解 padde.autograd.backward
  • 人工智能发展全景与DeepSeek-R1
  • 设计模式Python版 备忘录模式
  • uni-app集成sqlite
  • Vue组件间通信的方式
  • 升级Office软件后,Windows 系统右键里没有新建Word、Excel、PowerPoint文件的解决办法
  • OA办公系统自动渗透测试过程
  • 树和二叉树
  • 邢台建设一个企业网站/网推资源渠道
  • 网站访问量什么意思/产品软文范例800字
  • 手机网站建设推广/青岛今天发生的重大新闻
  • 国土局网站建设制度/搜索引擎优化课程
  • 网站优化外包/一篇好的营销软文
  • wordpress程序不能升级/seo短期课程