久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

單片機如何實現兩個霍爾判斷電機正反轉程序?

查看數: 4440 | 評論數: 15 | 收藏 3
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發布時間: 2022-7-3 19:03

正文摘要:

如圖,兩個霍爾傳感器并排放置,想利用兩個霍爾中斷下降沿觸發來判斷正反轉,這樣就有四種狀態分別是00  01 11 10 ,利用四個狀態的順序理論上可以判斷正反轉。 求大佬教學,四種狀態的判別程序是應該在 ...

回復

ID:1109793 發表于 2024-2-20 12:41
伊小于 發表于 2024-2-20 09:51
大佬,就是兩個霍爾采集電機的正反轉方向的問題,我用外部中斷采集狀態發現會掉狀態,我想請教下你是如何實 ...

http://www.zg4o1577.cn/bbs/dpj-36467-1.html
ID:1075077 發表于 2024-2-20 09:51
大佬,就是兩個霍爾采集電機的正反轉方向的問題,我用外部中斷采集狀態發現會掉狀態,我想請教下你是如何實現的
ID:737063 發表于 2024-1-27 11:20
理論上出現 11 01 00 10 11是可以的 實際中可以出現 11 10 00 10 11或11 01 11 10 11就不行
ID:195496 發表于 2022-7-6 09:49
兩個霍爾裝在一起,一個磁鐵來觸發,形成正交方式信號,很容易判斷方向
ID:394424 發表于 2022-7-4 17:57
學到了  確實和編碼器的電平讀取有點像
ID:491577 發表于 2022-7-4 11:44
很簡單,以11為標準,當檢測到11時開始計時,看看哪個霍爾先變0,電機的方向就是從先變0霍爾到后變0霍爾。
ID:883242 發表于 2022-7-4 11:26
如果磁鐵大小合適,讓兩個霍爾形成正交編碼器,那么以任意一個霍爾作為基準,就叫A吧,當A翻轉的時候檢查B的狀態,如果是高就是正轉,如果B為低則為反轉,and vice versa.
ID:965189 發表于 2022-7-4 10:37
保證任何方向兩個霍爾先后觸發的情況下,可參考EC11編碼器的識別方法。
ID:827243 發表于 2022-7-4 10:37
daemondong 發表于 2022-7-4 09:54
直接上代碼,希望你能看明白。

代碼少了一段
  1. void exint0() interrupt 0 {
  2.     _nop_();
  3.     step++;
  4.     stat[step]=stat[step-1];
  5.     stat[step] |= 0x01;
  6. }

  7. void exint1() interrupt 2 {
  8.     _nop_();
  9.     step++;
  10.     stat[step]=stat[step-1];
  11.     stat[step] |= 0x10;
  12. }
復制代碼
ID:887371 發表于 2022-7-4 10:21
你這個就是編碼器,可以參考ec11的代碼。
  1. volatile unsigned char  K_cnt;//值增加表示正轉,值減少表示反轉
  2. void exint0() interrupt 0//K1=P3^2
  3. {
  4.   if(K2) K_cnt++;
  5.   else K_cnt--;
  6. }
  7. void exint1() interrupt 2//K2=P3^3
  8. {
  9.   if(!K1) K_cnt++;
  10.   else K_cnt--;
  11. }
復制代碼


http://www.zg4o1577.cn/bbs/dpj-221719-1.html
EC11增量型脈沖數字電位器單片機驅動程序

ID:827243 發表于 2022-7-4 09:54
本帖最后由 daemondong 于 2022-7-4 09:57 編輯

直接上代碼,希望你能看明白。
  1. void main(void) {
  2.     char stat[4],step;
  3.     stat[0]=0;   //初始狀態為全零
  4.     step=0;
  5.     while (1) {
  6.         if (step>=2) {
  7.             if (stat[1]==0x01 && stat[2]==0x11) {} //正轉
  8.             else if (stat[1]==0x10 && stat[2]==0x11) {} //反轉
  9.             else {} //霍爾器件安裝錯誤

  10.             step=0;
  11.         }
  12.     }
  13. }

  14. void exint0() interrupt 0 {
  15.     _nop_();
  16.     step++;
復制代碼
ID:891041 發表于 2022-7-4 09:45
你可以用一個定時中斷。 這個定時的時長保證, 每次中斷時間內, 霍爾不可能發生兩次變化。也就是最高轉速下 霍爾也不可能在一個定時周期內發生兩次變化。  這樣讀前后的兩個霍爾電平 判斷順序就可以知道正反轉了。
ID:25310 發表于 2022-7-4 08:16
本帖最后由 pcbboy 于 2022-7-4 10:14 編輯

某個中斷觸發后標志位先=1,觸發時間在前面的是一個方向,觸發時間在后面的是一另個方向,
ID:832450 發表于 2022-7-4 06:34
Hephaestus 發表于 2022-7-4 06:08
一個霍爾翻轉時間是一圈時間,兩個霍爾翻轉時間差小和大表示正轉反轉。

主要是我的磁鐵不是勻速轉動,所以時間差對我來說有點困難
ID:883242 發表于 2022-7-4 06:08
一個霍爾翻轉時間是一圈時間,兩個霍爾翻轉時間差小和大表示正轉反轉。

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品久久久爽爽爽麻豆色哟哟 | 美女精品一区 | 91麻豆精品国产91久久久久久 | 99热在线播放 | 伊人久久综合 | 日韩av成人在线观看 | 日本高清不卡视频 | 97视频在线观看网站 | 精品视频一区二区在线观看 | 一本大道久久a久久精二百 欧洲一区二区三区 | 久久91精品| 在线欧美激情 | 欧美日韩黄 | 亚洲视频第一页 | www.操.com| 一区二区免费看 | 亚洲精品一区二区三区蜜桃久 | 国产免费高清 | 北条麻妃av一区二区三区 | 亚洲自拍偷拍视频 | 欧美午夜影院 | 欧美在线综合 | 久干网 | 一区二区国产精品 | 久久久久久成人网 | 五月婷婷导航 | 婷婷综合久久 | 亚洲成人精品在线 | 色又黄又爽网站www久久 | 一级毛片在线播放 | 国产成人99久久亚洲综合精品 | av天天爽| 成人激情视频在线 | 中文字幕在线视频精品 | 国产精品久久久久久久久久99 | 免费1区2区3区 | h视频在线免费 | 午夜视频网站 | 国产ts人妖系列高潮 | 欧美福利三区 | 亚洲人在线 |