導航:首頁 > 操作系統 > 單片機電機測速

單片機電機測速

發布時間:2023-09-14 06:42:55

⑴ 利用單片機實現直流電機的測速

用的8051的吧,用計數器功能就行了單位時間內數下降沿個數,12個下降岩一個周期,看來還要結合定時器第一秒,或更多。總之,計數器計數,定時器定時,在運算

⑵ 單片機直流電機測速實驗程序

#include<reg52.h>
#include"delay.h"
#define uchar unsigned char
#define uint unsigned int

//*********************//
sbit ENA = P2^2; //驅動晶元使能,若為0則電機停止;
sbit IN1 = P2^1; //控制電機正轉和反轉
sbit IN2 = P2^0; //控制電機正轉和反轉
sbit key1 = P1^0; //此鍵按下,電機正轉;IN1=1;IN2=0 ;ENA=1
sbit key2 = P1^1; //此鍵按下,電機反轉;IN1=0,IN2=1 ;ENA=1
sbit key3 = P1^2; //此鍵按下,電機剎停; IN1=1,IN2=1 ;ENA=1
//*********************//

int motor_change_mank=0;

// 按鍵設置
//**********************//
uint keylogo()
{
if(key1==0)
{
delayms(2) ;
//while(key1==0);
motor_change_mank=1;//正轉標志位
}

if(key2==0)
{
delayms(2) ;
//while(key2==0);
motor_change_mank=2;//反轉標志位
}

if(key3==0)
{
delayms(2) ;
//while(key3==0);
motor_change_mank=0;//剎停標志位
}

return(motor_change_mank);

}

//**********************//
//控制驅動晶元函數
//**********************//
void execute_motor()
{
switch(motor_change_mank)
{
case 0: //剎停標志位
{
IN1 = 1;
IN2 = 1;
ENA = 1;
}break;

case 1: //正轉標志位
{
IN1 = 1;
IN2 = 0;
ENA = 1;
}break;

case 2: //反轉標志位
{
IN1 = 0;
IN2 = 1;
ENA = 1;
}break;

default:break;

}

}
//**********************//

void main()
{

while(1)
{
keylogo();
execute_motor();
}

}

/**********************************************************************/
/**********************************************************************/
#define uint unsigned int

void delayms(uint n)
{
int i;
for(;n>0;n--)
for(i=0;i<1;i++);
}

/**********************************************************************/
/**********************************************************************/
#ifndef delay_h
#define delay_h
#define uint unsigned int

extern void delayms(uint n);

#endif

⑶ 用51單片機寫那個電機測速的程序大概是怎麼寫呀😄

用一個定時器計數
另一個定時
開始
main()
{
同時打開計數器定時器
計數器計數
}
定時器1秒鍾到
{
關閉定時器
和計數器
計算轉數
//轉數=(1s計數值÷電機轉一圈的脈沖數)×60
}

⑷ 基於51單片機直流電機調速測速模擬原理

基於51單片機直流電機調速測速模擬原理是以STC90C52RC單片機為主控晶元,利用PWM的原理,通過按鍵對直流電機進行調速,實現正反轉;採用霍爾感測器對直流電機的轉動進行計數,並通過主控晶元將採集到的計數值轉化為直流電機的當前速度值;利用LCD1602顯示模塊將計算得到的值進行實時顯示。

⑸ 求助51單片機電機測速的問題

放一個紅外發射二極體,一邊放一個紅外接收電路,當電機帶動圓盤轉動時,紅外接收電路每次透過孔接收到那一邊紅外發射管的信號

⑹ 如何用stc89c52單片機和紅外管做電機測速

這個你要是做成密封的也就是不透光的話用紅外發射和接收器件或直接用個發光二極體和光敏元件組成都可以,然後接在單片機的T0或T1上來記數就可以了~但一般都不是打一個孔通常是打60個,這樣轉一周是60個脈沖,轉一秒就可以檢測出來,比較好推算每分鍾的轉數

閱讀全文

與單片機電機測速相關的資料

熱點內容
rdlcpdf 瀏覽:109
鏈表實現快速排序python 瀏覽:590
php輸出命令 瀏覽:987
d站app叫什麼名字 瀏覽:172
oppor系列如何解除應用加密 瀏覽:601
程序員那麼可愛姜逸城初戀 瀏覽:499
modbustcp編程 瀏覽:493
實況為什麼安卓看不了 瀏覽:129
Java多線程Queue 瀏覽:95
雲伺服器499元三年 瀏覽:980
nbd源碼 瀏覽:847
x86在arm上編譯 瀏覽:8
linux怎麼配置網路 瀏覽:307
程序員想要的小禮物 瀏覽:187
java獲取網頁url 瀏覽:625
怎麼做解壓神器泡泡版 瀏覽:967
自己動手做一個c編譯器 瀏覽:930
手機如何鏈接谷歌伺服器地址 瀏覽:137
廢掉一個程序員的武功 瀏覽:250
java樹形演算法 瀏覽:642