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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3154|回復: 7
打印 上一主題 下一主題
收起左側

步進電機控制設置轉動180度為什么不停止,在一直轉動,求解,該怎么修改單片機代碼

[復制鏈接]
跳轉到指定樓層
樓主
ID:858009 發表于 2021-5-12 15:21 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  1. #include <reg51.h>     //*  單雙八拍工作方式:A-AB-B-BC-C-CD-D-DA*
  2. unsigned char code shun[8] = {0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09};
  3. unsigned char code ni[8] = {0x09,0x01,0x03,0x02,0x06,0x04,0x0c,0x08};
  4. void delay(char x)     //延時程序
  5. {                          
  6.    char i,j;
  7.    for(i=x;i>0;i--)
  8.      for(j=110;j>0;j--);
  9. }
  10. void  motor_1(float a)//a即想要轉的圈數
  11. {
  12.    unsigned char b;
  13.    unsigned int  c;
  14.    for (c=0; c<8*64*a; c++)
  15.     {
  16.       for (b=0; b<8; b++)
  17.         {
  18.           P1 = shun[b];
  19.          delay(10);
  20.          }
  21.     }
  22. }
  23. void  motor_2(float a)//a即想要轉的圈數
  24. {
  25.    unsigned char b;
  26.    unsigned int  c;
  27.    for (c=0; c<8*64*a; c++)
  28.     {
  29.       for (b=0; b<8; b++)
  30.         {
  31.           P1 = ni[b];
  32.          delay(10);
  33.          }
  34.     }
  35. }
  36. void main()//主程序
  37. {   
  38.         while(1)
  39.         {
  40.                 motor_1(0.5); //轉動1圈(可以改動)         
  41.     delay(10);
  42.           P1 = 0;                    //防止電機發熱
  43.           //motor_2(0.5); //轉動1圈(可以改動)         
  44.     //delay(10);
  45.          // P1 = 0;                    //防止電機發熱
  46.         }
  47. }
復制代碼
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:858009 發表于 2021-5-12 15:22 | 只看該作者
該怎么修改代碼控制步進電機轉動一定的角度
回復

使用道具 舉報

板凳
ID:227393 發表于 2021-5-12 16:05 來自觸屏版 | 只看該作者
這樣肯定是一直在轉的了,while(1)一直在循環啊,你可以加按鍵設置條件再滿足時調用轉動函數就行了
回復

使用道具 舉報

地板
ID:883031 發表于 2021-5-13 11:45 | 只看該作者
a是浮點數,不對吧。
回復

使用道具 舉報

5#
ID:362023 發表于 2021-5-13 17:13 | 只看該作者
不知道你驅動函數里面第一個for(c)的循環有什么作用?但是如果你只想轉動180度可以只讓電機走四拍
回復

使用道具 舉報

6#
ID:362023 發表于 2021-5-13 17:15 | 只看該作者
for (b=0; b<8*a; b++)
        {
          P1 = ni[b];
         delay(10);
         }
去掉一個for 這樣試試
回復

使用道具 舉報

7#
ID:824490 發表于 2021-5-13 17:45 | 只看該作者
  while(1)
        {
                motor_1(0.5); //轉動1圈(可以改動)         
    delay(10);
          P1 = 0;                    //防止電機發熱
          //motor_2(0.5); //轉動1圈(可以改動)         
    //delay(10);
         // P1 = 0;                    //防止電機發熱
        }
大循環while(1){}肯定是一直運行,所以你要有個條件,只運行一次

while(1)
{
flag=XXXXX;//比如,按鍵賦值
if (flag)  motor_1(0.5);
}



}
回復

使用道具 舉報

8#
ID:858009 發表于 2021-5-13 18:05 來自觸屏版 | 只看該作者
如果想用藍牙控制轉到一次幾停止呢
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲精品免费视频 | 久干网| 国产精品成人一区 | 黄网站免费入口 | www.亚洲一区 | 羞羞涩涩在线观看 | 日韩有码一区 | 日韩国产中文字幕 | 久久久久国产一区二区三区四区 | 中文字幕一区二区三区四区 | 人人操日日干 | 性高朝久久久久久久3小时 av一区二区三区四区 | 欧美日韩高清一区 | 欧美日韩国产在线观看 | 狠狠干五月天 | 日韩精品一区二区三区中文在线 | 欧美亚洲一区二区三区 | 亚洲精品国产a久久久久久 午夜影院网站 | 红桃成人在线 | 欧美a级成人淫片免费看 | 久久综合一区 | 欧美久久精品一级c片 | 亚洲国产成人av好男人在线观看 | 精品国产18久久久久久二百 | 亚洲a在线视频 | 丁香五月网久久综合 | 99这里只有精品视频 | 久久精品一区二区三区四区 | 日韩精品久久 | 香蕉一区二区 | 日本一区二区三区免费观看 | 日韩成人免费av | 日韩视频在线一区 | 国产农村一级国产农村 | 午夜在线小视频 | 粉嫩国产精品一区二区在线观看 | 中文字幕一区二区三区不卡 | 国产精品色 | 精品成人免费视频 | 国产精品国产a级 | 午夜午夜精品一区二区三区文 |