树莓派学习:wiringPi+硬件pwm+舵机

目录

目的

代码  只有io口1是支持pwm,其他要软件pwm

编译

运行


目的

黄色pwm,红色正极,棕色负极

让sg90舵机转动,就需要一个20ms的周期pwm,其中高电平在0.5-2.5ms之间

  • 转动角度    高电平在一个周期内的时间
  • 0°                        0.5ms
  • 45°                      1ms
  • 90°                      1.5ms
  • 135°                    2ms
  • 180°                    2.5ms

代码  只有io口1是支持pwm,其他要软件pwm

#include <softPwm.h>
#include <wiringPi.h>
#include <stdio.h>
int main()
{//初始化wiringpiif(-1==wiringPiSetup()){return -1;}//wiringpi引脚编码int pin = 1;//输出模式pinMode (pin , PWM_OUTPUT);//传统pwm模式  占空比模式pwmSetMode (PWM_MODE_MS);//设置时钟频率  树莓派的PWM时钟基础频率是19.2MHz//我们把pwm分为2000分,要50hz的pwm频率,那时钟频率=19200*1000/(50*2000)=192pwmSetClock (192);//周期为20mspwmSetRange (2000);int i = 0;while(1){i++;pwmWrite(pin,i);printf("%d\n",i);delay(20);}return 0;
}

我测试的是100左右舵机0°。750左右180°,可能是我树莓派硬件问题,理论是50-250的,我的是100-750

编译

gcc main.c -lwiringPi

运行

sudo ./a.out

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/202332.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ElasticSearch篇---第四篇

系列文章目录 文章目录 系列文章目录前言一、elasticsearch 是如何实现 master 选举的?二、elasticsearch 索引数据多了怎么办,如何调优,部署?三、说说你们公司 es 的集群架构,索引数据大小,分片有多少?前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽…

集成开发环境 PyCharm 的安装【侯小啾python基础领航计划 系列(二)】

集成开发环境PyCharm的安装【侯小啾python基础领航计划 系列(二)】 大家好,我是博主侯小啾, 🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔…

LeetCode Hot100 207.课程表

题目&#xff1a; 你这个学期必须选修 numCourses 门课程&#xff0c;记为 0 到 numCourses - 1 。 在选修某些课程之前需要一些先修课程。 先修课程按数组 prerequisites 给出&#xff0c;其中 prerequisites[i] [ai, bi] &#xff0c;表示如果要学习课程 ai 则 必须 先学习…

掌握大型语言模型(LLM)技术:推理优化

原文链接&#xff1a;Mastering LLM Techniques: Inference Optimization | NVIDIA Technical Blog 大模型相关技术文章已整理到Github仓库&#xff0c;欢迎start! 堆叠Transformer层以创建大型模型可以获得更好的准确性、few-shot学习能力&#xff0c;甚至在各种语言任务中具有…

关键活动——拓扑排序

假定一个工程项目由一组子任务构成&#xff0c;子任务之间有的可以并行执行&#xff0c;有的必须在完成了其它一些子任务后才能执行。“任务调度”包括一组子任务、以及每个子任务可以执行所依赖的子任务集。 比如完成一个专业的所有课程学习和毕业设计可以看成一个本科生要完成…

Kafka 的特点和优势

Apache Kafka 作为一款分布式流处理平台&#xff0c;以其独特的特点和卓越的优势成为实时数据处理领域的瑰宝。本文将深入研究 Kafka 的各项特点和优势&#xff0c;并通过详实的示例代码展示其在不同场景下的强大应用。 高吞吐量和水平扩展 Kafka 的设计注重高吞吐量和水平扩…

Python-炸弹人【附完整源码】

炸弹人 炸弹人是童年的一款经典电子游戏&#xff0c;玩家控制一个类似"炸弹人"的角色&#xff0c;这个角色可以放置炸弹&#xff0c;并在指定的时间内引爆它们消灭敌人以达到目标&#xff0c;此游戏共设有两节关卡&#xff0c;代码如下&#xff1a; 运行效果&#x…

python将时间戳转换为时间

python将时间戳转换为时间 import datetime timestamp 1701862813779 # 将时间戳转换为秒&#xff08;因为Python的timestamp通常是以秒为单位的&#xff09; timestamp_seconds timestamp / 1000 # 将时间戳转换为UTC时间 utc_time datetime.datetime.utcfromti…

[原创][5]探究C#多线程开发细节-利用AutoResetEvent类解决多线程循环轮询假同步的问题.

[简介] 常用网名: 猪头三 出生日期: 1981.XX.XX QQ联系: 643439947 个人网站: 80x86汇编小站 https://www.x86asm.org 编程生涯: 2001年~至今[共22年] 职业生涯: 20年 开发语言: C/C、80x86ASM、PHP、Perl、Objective-C、Object Pascal、C#、Python 开发工具: Visual Studio、D…

【昇腾CANN技术月刊】2023.11-Ascend C在线课程上新;CANN 7.0大模型推理部署技术解密;特邀名校老师面对面分享Ascend C开发经验

【Ascend C】昇腾Ascend C算子开发入门课程&#xff0c;新手零基础入门 摘要&#xff1a;本课程是Ascend C算子开发的初级教程&#xff0c;通过课程讲解及样例实操&#xff0c;帮助你学习如何使用Ascend C开发矢量算子。 1、了解并行计算架构、并行计算方法等基本概念 2、理解…

空间金字塔池化(SPP,Spatial Pyramid Pooling)系列

空间金字塔池化的作用是解决输入图片大小不一造成的缺陷&#xff0c;同时在目标识别中增加了精度。空间金字塔池化可以使得任意大小的特征图都能够转换成固定大小的特征向量&#xff0c;下面针对一些典型的空间金字塔进行盘点。 部分图片来自blog:空间金字塔池化改进 SPP / SP…

优雅处理MyBatis与Apollo集成中的配置加载

⭐️前言 MyBatis作为一种优秀的持久层框架&#xff0c;在使用MyBatis的过程中&#xff0c;我们经常需要从配置文件中读取一些参数&#xff0c;以便在mapper文件中使用。本文将介绍在不使用传参的情况下&#xff0c;如何从Apollo配置中读取这些参数&#xff0c;以及在mapper文…

SD-WAN异地组网提升多元企业网络体验

SD-WAN&#xff08;软件定义广域网&#xff09;异地组网方案是一种灵活、可靠且高效的解决方案&#xff0c;能够满足许多企业的组网需求。在这个全球化和数字化快速发展的时代&#xff0c;越来越多的企业开始关注网络连接的稳定性&#xff0c;而SD-WAN因其卓越的网络连接体验&a…

每天一点python——day88

#每天一点Python——88 #编程两大思想【面向过程与面向对象】 #如图&#xff1a; 面向过程的线性思维&#xff1a; 类似于做菜一步步的来&#xff0c;先怎么样怎么样&#xff0c;再怎么样 如果不一步步的来&#xff0c;例如先炒菜再点火&#xff0c;这样是做不好的 面向对象&a…

IntelliJ IDE 插件开发 | (二)UI 界面与数据持久化

系列文章 IntelliJ IDE 插件开发 |&#xff08;一&#xff09;快速入门 前言 在上一篇文章中介绍了在IDEA下开发、运行和安装插件的基本步骤&#xff0c;因此创建项目等基础步骤不再赘述&#xff0c;本文则开始介绍如何进行 UI 界面的开发以及相关数据的持久化存储&#xff…

安全测试工具,自动发现网站所有URL!

作为一个安全测试人员来说&#xff0c;首先要拿到网站所有url&#xff0c;然后根据拿到的url进行渗透测试进行漏洞挖掘。本文给大家介绍的是如何拿到一个网站所有的url。 深度爬取层级控制 现在我也找了很多测试的朋友&#xff0c;做了一个分享技术的交流群&#xff0c;共享了很…

拷贝构造函数:对象复制的重要工具

拷贝构造函数 功能&#xff1a; 使用一个已经存在的对象来初始化一个新的同一类型的对象。 声明&#xff1a; 只有一个参数并且参数为该类对象的引用 如果类中没有说明拷贝构造函数&#xff0c;则系统会自动生成一个缺省复制构造函数&#xff0c;作为该类的公有成员。 当函数…

ospf选路

问题描述 R6通过主备份路径访问LSP&#xff08;R1&#xff09;&#xff0c;主为R2&#xff0c; 备为R3 解决方案 路由器1看作LSP&#xff0c;配置loopback 0 ,地址为1.1.1.1 供测试使用&#xff1b;路由器 236, LSW4和LSW5&#xff0c; 运行ospf处于相同区域&#xff0c;建立…

<JavaEE> 经典设计模式之 -- 定时器

目录 一、定时器的概念 二、Java 标准库中的定时器 三、实现自己的定时器 一、定时器的概念 什么是定时器&#xff1f;定时器是软件开发中的一个常用且重要组件&#xff0c;作用是在达到设定时间后&#xff0c;执行指定的代码。 二、Java 标准库中的定时器 1&#xff09;T…

Redis核心知识点总结

1.Redis介绍 Redis 是 NoSQL&#xff0c;但是可处理 1 秒 10w 的并发&#xff08;数据都在内存中&#xff09; 使用 java 对 redis 进行操作类似 jdbc 接口标准对 mysql&#xff0c;有各类实现他的实现类&#xff0c;我们常用的是 druid 其中对 redis&#xff0c;我们通常用 J…