导航:首页 > 操作系统 > 单片机算力和转速

单片机算力和转速

发布时间:2024-03-09 20:27:19

单片机测量电动机转速的原理是什么啊 能详细说说吗从开始数字信号变成脉冲信号一直到LED显示出转速

基本上,单片机采集的是转子产生的信号,这个信号的频率与转子的转速相关.
例如说,转子或转子轴的一侧粘贴了一面小镜子,使这个小镜子能随转子一起转动,然后在旁边固定一个光源对着镜子所在的位置,这样的话,转子每转过一圈,小镜子所反射的光线就会经过一次检测元件,转子转得越快,经过检测元件的光线就会越频繁,换言之就是光线被反射到检测元件上的频率越高.
那么,现在你已经知道转子每转一圈,检测元件就会检测到一次光线了,那如何换算成具体的转速呢,实际上,只要对检测元件的两次光照时间进行检测,或对一定时间内检测元件被光线照射到几次进行计数,然后再换算就可以了.
例如,每两次光照的间隔为1秒,那么就表示每秒钟这个转子转了一圈,那么一分钟就是60圈,这就是转速了.
若你需要更精确的检测,则这个1秒钟才一次的信号显然不够,你需要每秒钟有更多个脉冲,才能实现较为精确的测量,比如可以测量到1.05圈/秒,或者0.95圈/秒.而这就需要在转子上粘贴更多的镜子.
例如说,你在转子上均匀地粘了10面镜子,而所检测到的每两次光照的间隔为20mS,那么换算下来,1000mS÷20mS÷10=5,这个5就是每秒钟的转数,换算成一般的标法,就是300转/分了.
然而,如果被检测的电动机速度更快一些,并且这些"镜子"数量更多一些,对于慢速的单片机来说,再用检测光照时间的方法就可能忙不过来了,或者是精度要打折扣了,比如说你的单片机最短要10uS才能中断一次,而被检测的电动机所传过来的"光照"信号周期只有8uS,那么你可能就检测不到这个信号了,或者检测成错误的结果.
此时,你就可以将检测方法改为检测一定时间内的信号个数,比如说你可以用一个定时器来产生100mS的定时周期,再用另一个定时器来对信号进行计数,比如这个100mS你记录到了700次信号,按上面的例子,你已经知道转子每圈会有10个信号,那就是说,这个100mS内,转子转过了70圈,这样的话,就很好计算转速了,在这个例子中,100mS是十分之一秒,那么实际的转速就是10倍×70转=700转/秒,算成一般的标法那就是700转×60秒=4200转/分了.
知道这个转速之后,要显示出来就不用再多说了吧,hoho~~
希望对你有帮助~

❷ 用51单片机测电机的转速,,,,,谢谢各位。。

用一个转速传感器或者编码器,利用单片机引脚的脉冲沿捕获中断,1个计数器用于记录2相邻脉冲捕获时间间隔,一个计数器用于记录脉冲数。
然后计算1s时间内脉冲的个数就是频率啦,再通过换算的电机转速;

❸ 求教:如何用单片机控制发动机的转速

单片机控制发动机转速,首先要由单片机系统对发动机转速进行测量,测量得到的转速进行PID运算,再输出控制信号,通过执行机构控制发动机油门,转速高于目标转速时,减油门,低于目标转速时加油门,从而实现对发动机转速的控制。

❹ 52单片机的算力有多大

8K字节。其52单片机的算力有8K字节这么大,在同等级的单片机算力上属于排名非常靠前的层次。单片机又称微控制器,由中央处理器、存储器、输入输出端口、计时器和计数器等组成,具有完整数字处理功能的大规模集成电路。

❺ 怎样用单片机控制步进电机转速

那我们让电机正转一圈,反转半圈,在正传1/4圈,反转一圈,试试。
#include <reg51.h>

typedef unsigned char uint8;
typedef unsigned int uint16;
typedef unsigned long uint32;

#define P_DIR 0
#define N_DIR 1

code uint8 FFW[8]={0xF1,0xF3,0xF2,0xF6,0xF4,0xFc,0xF8,0xF9};

void delay(uint16 i)
{
while (i--);
}

void motor_turn(uint16 angle, uint8 dir)
{
uint32 n=4096;
uint8 i;

n /= 360; //1度所需指令数
n *= angle; //angle度所需指令数

if (dir == P_DIR) //正转
{
i = 7;
while (n--) //循环n次指令数
{
P1 = FFW[i];
if (i == 0)
i = 7;
else
i--;
delay(200);
}
}
else if (dir == N_DIR) //反转
{
i = 0;
while (n--)
{
P1 = FFW[i];
if (i == 7)
i = 0;
else
i++;
delay(200);///调节转速快慢
}
}
}

main()
{
while (1)
{
motor_turn(360, P_DIR);
motor_turn(180, N_DIR);
motor_turn(90, P_DIR);
motor_turn(360, N_DIR);
}
}
这个程序主要讲一下motor_turn里面的数据处理部分,不晓得大家是否看懂了。由于电机的旋转一周需要的指令个数是8*8*64=4096,所以旋转一度需要的指令数为4096/360,那么我要旋转N度,要发送的指令数为N*4096/360,看看是不是和程序里写的一样呢。当然,如果你约分的话,N将会容纳更多角度而不溢出。

❻ 单片机测电机转速,

你的问题包括三个部分:
第一,测量转速信号的频率。
第二,将频率换算为转速。
第三,测量结果通过LED(你的板子是LCD)显示。
第二个问题属于比例运算,表面上很简单,不过用汇编语言实现的话,有一点点难度,建议用乘法运算,可下载一些多字节乘法的子程序。
第一个问题可到文库下载一些频率测量方面的文章,许多文章有程序的。
第三个问题可根据板子的LCD的型号,查阅厂家的相关资料,必要的话可质询厂家,一般而言,这类LCD接口有许多是类似的,网上也可以下载程序。
除了上述三个问题,还有一个很根本的问题就是熟悉你的板子的原理,上述所有程序或文献仅能供你参考。
还有,作为开发板,可想办法早一些开发板厂家提供的例程,如果你都能熟悉的话,相信经过简单裁减就可以得到你要的程序。
当然,最主要的还是要有耐心,最好自己弄明白,自己弄明白了,你收获的是知识和能力,别人帮你编程,你得到的仅仅是0、1组合,对你帮助不大。

❼ 单片机汽车转速测量怎么做

那就看你做什么咯。转速的直接面向控制设备是 仪表盘。
如果你是做仪表盘,那么转速信号就是从无到有咯,你就需要对转速传感器进行脉冲测量,而且得很清楚,多少脉冲对应多少圈数。
如果你是做一般控制器,那么只要对仪表盘输出的转速信号进行脉冲测量,同样也需知道,多少脉冲对应多少圈数。当然,你也可以直接找转速传感器,直接像仪表盘一样测量。

❽ 单片机如何控制电机转速

利用单片机的定时器TIMER_A(TA)中断产生脉冲信号,通过在响应的中断程序中实现步进电机步数和圈数的准确计数,通过PWM实现转速控制。

可以利用P10端口的中断关闭TA中断程序,并推入堆栈,停止电机;P11中断则开启TA中断,堆栈推入程序计器(PC),开启电机。

P31端口输出高电平由PMM8713的U/D端口控制电机的转向;P3.0~P37端口接8279的8个数据接口。

单片机扫描到矩阵键盘有键按下时,利用P2端口的中断设置TA,控制启停、调速和转向等,同时单片机反馈给8279控制LED管显示转速和转向。

(8)单片机算力和转速扩展阅读

1、单片机所接收到控制命令暂存在RXBUFFER中,与存储在片内Flash的中断程序的入口地址相比较,相同就进入中断,实现步进电机的控制。

2、当P1.0中为高电平时,其内部三极管导通,使电机转动。当P1.0为低电平时,内部三极管截止,电路断开,电机停止转动。所以在程序中可以利用P1.0口输出PWM波来控制电机的转速。

阅读全文

与单片机算力和转速相关的资料

热点内容
服务器数据遇到异常什么原因 浏览:446
phpexif信息 浏览:540
单片机三字节浮点数 浏览:754
命令与征服泰伯利亚战争下载 浏览:376
c窗口界面编程 浏览:21
hypermill编程能做模板吗 浏览:780
计算机网络最经典的算法 浏览:626
华为思科的配置命令 浏览:869
linux设置光盘启动 浏览:359
程序员俱乐部注册 浏览:17
洗洁精鸡蛋盘解压视频 浏览:291
企业内网加密app 浏览:49
腾讯云服务器怎么设置本地网络 浏览:623
日常程序员 浏览:513
哪个pe有bit加密功能 浏览:108
rust服务器是用什么ip 浏览:692
java随机字符串生成 浏览:551
数码宝贝编程人物 浏览:390
php多用户建站系统 浏览:624
加密防盗地上栓价位 浏览:671