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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2245|回復: 2
收起左側

步進電機精確控制轉度 單片機程序

[復制鏈接]
ID:1020716 發(fā)表于 2022-4-22 16:26 | 顯示全部樓層 |閱讀模式
4相步進電機
精確控制轉度
盡管用
  1. #include  "reg51.h"
  2. #include <intrins.h>

  3. #define uint unsigned int
  4. #define uchar unsigned char

  5. sbit MA=P1^0;
  6. sbit MB=P1^1;
  7. sbit MC=P1^2;
  8. sbit MD=P1^3;

  9. void Delay1ms()     //@11.0592MHz
  10. {
  11.     unsigned char i, j;

  12.     _nop_();
  13.     _nop_();
  14.     _nop_();
  15.     i = 11;
  16.     j = 190;
  17.     do
  18.     {
  19.         while (--j);
  20.     } while (--i);
  21. }

  22. void delay(uint time)//延時time ms
  23. {
  24.     while(time--)
  25.     {Delay1ms();}
  26. }

  27. /*
  28. angle:角度,范圍[0,360]
  29. drct:旋轉方向,0:順時針,1:逆時針
  30. speed:轉速,范圍[1,100]
  31. */
  32. void MotorRun(uint angle,uint drct,uint speed)
  33. {
  34.     uint step,nangle;
  35.     step=0;
  36.     nangle=512*angle/45;//將角度換算成拍數,計算結果自動取整
  37.     if(drct==0)
  38.     {
  39.         while(nangle--)
  40.         {
  41.             switch(step)//8拍方式驅動,每拍轉(5.265/64)度
  42.             {
  43.                 case 1:MA=1;MB=1;MC=0;MD=0;break;
  44.                 case 2:MA=0;MB=1;MC=0;MD=0;break;
  45.                 case 3:MA=0;MB=1;MC=1;MD=0;break;
  46.                 case 4:MA=0;MB=0;MC=1;MD=0;break;
  47.                 case 5:MA=0;MB=0;MC=1;MD=1;break;
  48.                 case 0:MA=1;MB=0;MC=0;MD=0;break;
  49.                 case 6:MA=0;MB=0;MC=0;MD=1;break;
  50.                 case 7:MA=1;MB=0;MC=0;MD=1;break;
  51.             }
  52.             if(step==7)step=0;
  53.             else step++;

  54.             if(speed>100)speed=100;
  55.             delay(110-speed);//這里可以適當改動,延時時間短則轉速快,但是時間太短會造成電機堵轉(不轉了)
  56.         }
  57.     }
  58.     else
  59.     {
  60.         while(nangle--)
  61.         {
  62.             switch(step)
  63.             {
  64.                 case 0:MA=1;MB=0;MC=0;MD=1;break;
  65.                 case 1:MA=0;MB=0;MC=0;MD=1;break;
  66.                 case 2:MA=0;MB=0;MC=1;MD=1;break;
  67.                 case 3:MA=0;MB=0;MC=1;MD=0;break;
  68.                 case 4:MA=0;MB=1;MC=1;MD=0;break;
  69.                 case 5:MA=0;MB=1;MC=0;MD=0;break;
  70.                 case 6:MA=1;MB=1;MC=0;MD=0;break;
  71.                 case 7:MA=1;MB=0;MC=0;MD=0;break;
  72.             }
  73.             if(step==7)step=0;
  74.             else step++;
  75.             if(speed>100)speed=100;
  76.             delay(110-speed);//這里可以適當改動,延時時間短則轉速快,但是時間太短會造成電機堵轉(不轉了)
  77.         }
  78.     }
  79.     MA=0;MB=0;MC=0;MD=0;
  80. }

  81. void main()
  82. {
  83.     while(1)
  84.     {
  85.         MotorRun(90,0,100);
  86.         delay(500);
  87.     }
  88. }
復制代碼


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:1019158 發(fā)表于 2022-4-25 21:50 | 顯示全部樓層
大佬您好,您這個我可以用proteus里的四相六線電機仿真嗎?這個轉過的最小角度就是(5.265/64)度嘛?
回復

使用道具 舉報

ID:65369 發(fā)表于 2022-4-26 09:10 | 顯示全部樓層
要用單片機自身的控制方式來控制,或者專用控制芯片細分才精準的, 這樣程序直接控制,回轉,但精度不高的
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日本免费一区二区三区 | 亚洲精品成人网 | 男人电影天堂 | 日本亚洲精品成人欧美一区 | www.亚洲视频.com | 久久伊人免费视频 | 亚洲国产中文在线 | 国产成人网 | 天天人人精品 | 久久综合一区二区三区 | 中文一区二区 | 国产欧美三区 | 欧美xxxⅹ性欧美大片 | 91精品国产一区二区三区动漫 | 情侣酒店偷拍一区二区在线播放 | 日韩精品一区二区三区视频播放 | 国产日韩精品视频 | 日本一区二区在线视频 | av在线成人 | 先锋影音资源网站 | 伊人色综合久久天天五月婷 | 色婷婷av99xx | 草樱av| 亚州毛片| 黄网站免费在线观看 | 亚洲欧美一区二区三区视频 | 777zyz色资源站在线观看 | 中文字幕在线二区 | 日韩欧美视频 | 色综合国产| 91免费在线视频 | 在线观看亚洲一区二区 | 国产精品视频在线观看 | 亚洲高清网 | 丝袜毛片 | 久久99精品视频 | 欧美一级淫片免费视频黄 | 中文字幕蜜臀av | 欧美a√| 午夜成人免费视频 | 97视频精品 |