<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 51單片機學習之3-步進電機

          51單片機學習之3-步進電機

          作者: 時間:2016-11-30 來源:網(wǎng)絡 收藏



          這種步進電機叫減速步進電機(里面有減速齒輪),減速比是1/64。

          里面減速齒輪轉動64圈,外面的轉子才轉動1圈。

          驅動電壓為5V,步進(距)角度5.625*1/64,采用5線4相。

          線的順序是VCC、A、B、C、D。


          1相勵磁方式驅動程序代碼:實現(xiàn)讓步進電機轉動360°。

          現(xiàn)在知道步進電機的最小步距角是5.625*1/64=0.087890625°

          1相勵磁方式每通一相電(即每轉動一次)的角度應該是最小步距角的2倍(即0.087890625°*2=0.17578125)。一個循環(huán)就是4相:A→B→C→D(即0.17578125*4=0.703125°)。

          那么一個循環(huán)就是0.703125°,要幾個循環(huán)才能轉動360°呢?360°/0.703125=512個循環(huán)。

          下面這份代碼是通過按位方式給A、B、C、D相輪流通電。

          #include"reg51.h"

          #defineucharunsignedchar

          #defineuintunsignedint

          sbitDA=P1^0;//A相

          sbitDB=P1^1;//B相

          sbitDC=P1^2;//C相

          sbitDD=P1^3;//D相

          voiddelay(uintx)

          {
          uinty;

          for(;x>0;x--)

          for(y=10;y>0;y--);

          }

          voidmain()

          {

          uinti=512;

          uchardelayCout=25;

          while(i--)//循環(huán)512次就轉動360°的角度。

          {

          DA=1; //A相通電

          delay(delayCout); //需要延時一小段時間讓硬件反應的過來

          DA=0; //A相斷電

          DB=1; //B相通電

          delay(delayCout);//需要延時一小段時間讓硬件反應的過來

          DB=0; //B相斷電

          DC=1; //C相通電

          delay(delayCout); //需要延時一小段時間讓硬件反應的過來

          DC=0; //C相斷電

          DD=1; //D相通電

          delay(delayCout);//需要延時一小段時間讓硬件反應的過來

          DD=0;//D相斷電

          }

          while(1);//旋轉完后就停在這里,避免重復執(zhí)行main函數(shù)

          }

          上面那份源碼很好理解,下面是按邏輯運算實現(xiàn)的通斷A、B、C、D四相:

          #include"reg51.h"

          #defineucharunsignedchar

          #defineuintunsignedint

          voiddelay(uintx)

          {
          uinty;

          for(;x>0;x--)

          for(y=10;y>0;y--);

          }

          voidmain()

          {

          uinti=512;

          ucharXh;

          uchardelayCout=25;

          while(i--)//循環(huán)512次就轉動360°的角度。調(diào)整角度

          {

          Xh=3;

          P1=0x01;//P1==00000001相當于P1^0置1將A相通電

          delay(delayCout);//延時一段時間讓步進電機能反應過來

          while(Xh--)

          {

          P1<<=1;//第一次循環(huán)00000001<<1=00000010相當于P1^1置1同時將P1^0置0A相斷電B相通
          電每次循環(huán)都會將1向左移動一位
          delay(delayCout);//這里是調(diào)節(jié)切換速度,即轉動速度

          }

          }

          while(1);//旋轉完后就停在這里,避免重復執(zhí)行main函數(shù)

          }


          步進電機主要知道它的工作原理和計算角度。步進電機最大的方便是可以精確控制轉動角度和速度。


          上一頁 1 2 下一頁

          關鍵詞: 51單片機步進電

          評論


          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();