logisim优先编码器怎么用_编码器简介、应用的stm32代码及注释

在机器人的旋转关节中、或者底盘的驱动轮中,编码器是一个很常用的部件,它用于检测输出轴的位置、转速。下面我们先从它的分类开始,后面还有一个简单的用法示例代码。

f8d466b04bb80656b081942fca776800.png

磁编码器

1.编码器分类:

按工作原理:光电式、磁电式和触点电刷式。按码盘的刻孔方式:增量式和绝对式两类。

笔者到目前为止,就用过这些种类的编码器。像光电的差分编码器,一般由8根线连接。信号线分别为 A+ A- B+ B- Z+ Z- 以及VCC和GND。这里有一种不需要Z信号的,6线差分A+ A- B+ B- VCC 和GND。正交编码器一般是5根线连接,信号线分别为A B Z VCC和GND。

编码器线数: 就是旋转一圈你的A(B)会输出多少个脉冲 ,这里的A、B就是上面的输出脉冲信号线,它们转一圈发出的脉冲数一样的,不过存在90°的相位差。线数越高代表编码器能够反应的位置精度越高。

2.下面以基于stm32的直流电机驱动为例,里面有编码器的读取。

代码及注释如下:

#include "delay.h"

#include "stm32f10x.h"

#include "sys.h"

#include "timer.h"

#include "usart.h"

#include "encoder.h"

#include "oled.h"

#include "pwm.h"

#include "control.h"

#include "led.h"

#include "key.h"

extern int Target_velocity;

extern u16 Encoder; //左右编码器的脉冲计数

extern u16 Moto1; //电机PWM变量

u8 t=0;

float speed;

int main(void)

{

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 设置中断优先级分组2

delay_init(); //延时函数初始化

KEY_Init(); //初始化与按键连接的硬件接口

OLED_Init();

uart_init(9600); //=====串口初始化

Encoder_Init_TIM2(); //=====编码器接口

TIM3_Int_Init(99,7199); //10ms

IN2=1;

IN1=0;

LED_Init(); //初始化与LED连接的硬件接口

TIM1_PWM_Init(7199,0);//不分频。PWM频率=72000/(899+1)=80Khz

while(1)

{

speed = Encoder*100/4/13/30;

printf("speed:%0.2f rad/s

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

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

相关文章

数据库查询集合排序

/** 定义一个排序规则*/ public class ComparatorUser implements Comparator{Overridepublic int compare(Object arg0, Object arg1) {User user0(User)arg0;User user1(User)arg1;//首先比较年龄,如果年龄相同,则比较名字int flaguser0.getAge().comp…

立项管理

项目建议书 也叫立项申请项目建设单位发起主要内容:项目的必要性、项目市场预测、产品方案或服务的市场预测、项目建设必需的条件项目可行性研究 特点 预见性、公正性、可靠性、科学性主要内容 投资、技术、财务、组织、经济、社会的可行性、风险因素及对策技术可行…

c++输出方块_【Blender】方块波浪动画音乐效果

先上结果:Blender方块动画效果https://www.zhihu.com/video/1232333427569262592老规矩:一、设置基本Wave Mesh(波浪面)创建Plane,S 8,这样宽度就是2*816m了。CtrlA/Object菜单->Apply->Apply Scale—…

vue服务端渲染添加缓存

虽然 Vue 的服务器端渲染(SSR)相当快速,但是由于创建组件实例和虚拟 DOM 节点的开销,无法与纯基于字符串拼接(pure string-based)的模板的性能相当。在 SSR 性能至关重要的情况下,明智地利用缓存策略,可以极大改善响应时间并减少服…

Could not autowire. No beans of 'xxxx' type found的错误提示

spring 集成mybatis 找不到 beans 查了很多网页,解决办法是: 在PersonMapper 上加 Repositorypackage zengmiaogen.csdn.cn.mybatis;import org.apache.ibatis.annotations.Mapper; import org.springframework.stereotype.Repository;import java.ut…

怎么把页面按比例缩小_做PPT多图排版千万别套模板了,按这28种版式来,绝对靠谱!...

编按:各种类型的PPT经常会用到图片,这些图片到底如何排版才更出色呢?今天给大家分享一篇PPT图片排版手册,主要介绍了多张图常见的排版方式,希望能帮助到您!嗨,大家好,我是P小白。一张…

spring boot 集成Mybatis时 Invalid bound statement (not found)

spring boot 集成Mybatis时,运行提示 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): zengmiaogen.csdn.cn.mybatis.PersonMapper.queryPersonList 按照下文的步骤,解决了问题 https://blog.csdn.net/qq_3598128…

Caffe CuDNN版本与环境不同导致make错误

1.将./include/caffe/util/cudnn.hpp 换成最新版的caffe里的cudnn的实现,即相应的cudnn.hpp. 2.将./include/caffe/layers里的,所有以cudnn开头的文件,例如cudnn_conv_layer.hpp,都替换成最新版的caffe里的相应的同名文件。 3.将.…

nodejs 安装 nrm

nodejs默认源在国外,访问速度慢。可以手动修改源,但要每次都修改。 安装 nrm,指定源路径,不需要每次修改 npm install nrm -g nrm ls * npm -------- https://registry.npmjs.org/ yarn ------- https://registry.yarnpkg.co…

磁盘阵列怎么做_设计与后期制作该怎么选择笔记本电脑?朋克老师来教你

最近有很多人问我设计与后期制作该怎么选择笔记本电脑?既然选择笔记本电脑就说明在相关工作中对电脑有移动需求,比如自媒体、记者、影视后期出组人员等等,那该如何选择呢?视频剪辑咱们按工作内容分类聊一聊。第一类,平…

EventBus源码分析

简介 前面我学习了如何使用EventBus,还有了解了EventBus的特性,那么接下来我们一起来学习EventBus的源码,查看EventBus的源码,看看EventBus给我们带来什么惊喜以及编程思想。 这个图我们从一开始就一直放置在上面了。我们在来回顾…

Vue.js 概述与 MVVM 模式

一、Vue.js 1. Vue.js 是什么 Vue.js 是一个轻巧、高性能、可组件化的 MVVM 库,拥有非常容易上手的 API; Vue.js是一个构建数据驱动的 Web 界面的库。 2. Vue.js 的特性 1. 轻量级的框架 2. 双向数据绑定 3. 指令 4. 插件化(组件化&#…

ipad录屏软件_如何在 Mac 上优雅的截图和录屏

在使用电脑的时候,很多时候我们都需要截屏或者录屏分享。所以你可能已经听过 snip,或者经常使用 QQ、微信 等软件来实现截屏。但是今天我们一起来看一下,怎么使用系统提供的功能,来优雅的实现截图和录屏。最开始的这几篇都比较基础…

数据库的辅助工具:My-SqlViewer

阅读目录开始My-SqlViewer 使用说明程序安装及启动说明程序主界面DataBase浏览器搜索数据库存储过程的复制比较数据库今天发一个我自己写的且经常使用的数据库的辅助工具:My-SqlViewer由于我比较喜欢使用存储过程,但发现不管是SQL Server Management Stu…

安卓平板微信和手机微信同时登陆_Mac电脑如何同时登陆多个微信或QQ

现如今,微信和QQ已经不单单是简单的社交软件了,也成了工作必备软件,工作中用它传个文件,发个通知,不知道有多方便。但是很多人希望将工作圈和生活圈分开,有人想出拿两部手机的方法,倒是可以&…

VSCode 开发Vue必备插件

工欲善其事,必先利其器 以下就是开发Vue必备插件: Vetur —— 语法高亮、智能感知、Emmet等 包含格式化功能, AltShiftF (格式化全文),CtrlK CtrlF(格式化选中代码,两个Ctrl需要同时…

苹果x人脸识别突然失灵_教你解决mac电脑键盘失灵的问题

无论是使用WIN系统还是苹果电脑都有可能遇到键盘失灵,无法使用的问题,那么苹果电脑键盘失灵该怎么解决呢?这里macw小编为大家带来了苹果电脑键盘失灵解决教程,赶紧收藏起来吧!无线键盘失灵解决教程1、确保蓝牙已启用并…

产品文档如何说清楚产品业务?关注这几点就够了

如果产品文档没把产品业务说清楚会有什么影响? 常见的:产品不符合业务(实际使用场景),验收不通过,需要加班修改,调整。产品经理被骂。 严重的:甲方爸爸受不了了,换供应…

前端错误日志收集方案

前言 公司的项目上线出现问题后难以定位错误,研究过现存的错误监控方案,受限于特殊条件只能定制自己的错误收集方案。 基于以上背景我撸出来一个错误日志收集方案 - Ohbug。 欢迎各位大佬 star ~ 监控错误 说起错误的捕获,首先想到的是 try c…

spring入门到放弃——spring事务管理

Spring事务提供了两种管理的的方式:编程式事务和声明式事务 简单回顾下事务: 事务:逻辑上的一组操作,组成操作的各个单元,要么全部成功,要么全部失败。 事务特性: 原子性:一个事务包…