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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 8447|回復: 9
打印 上一主題 下一主題
收起左側(cè)

單片機+TB6600+42步進電機測試通過 附程序

  [復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:626079 發(fā)表于 2020-2-23 16:01 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
     經(jīng)過年前到年后幾個月,終于搞清我這個步進電機的性能。感謝CCC888在24小時必答區(qū)解答了我的問題,也把這個程序分享給大家。
附件程序測試連接42步進電機運行正常通過。
    發(fā)現(xiàn)電機對時間要求很高,如果主程序里的WHILE(1)里如果執(zhí)行程序如果占用太多過長,會38影響步進電機的運行,還是新手沒辦法對時間進行很好的把控啊。

程序說明:
特色:程序是電機自動正反轉(zhuǎn)120度(回到初始的地方)

主程序while(1)只是掃描一個按鍵,這個時間很快。對步進電機運行沒有問題。
本想加一個TM1638模塊,用它的按鍵,但是發(fā)現(xiàn)加了后電機工作會有失步的情況。為哈這個電機這么嬌氣啊??
http://www.zg4o1577.cn/bbs/dpj-180026-1.html

附件程序是對步進電機用了1細分, 細分多了,滿足不了我的需求,轉(zhuǎn)速會慢,STC52的端口輸出頻率太低了。
程序是電機自動正反轉(zhuǎn)120度(回到初始的地方), 我最開始的想法是做一個自動手搖扇子,就是大炮打蚊子了,比較符合了。期間不能快遞沒辦法做成品了。
中斷里的時間是調(diào)試過無數(shù)次,有個簡單的加速減速的過程,只是時間有點短,有勝于無吧,中斷里用了DELAY函數(shù)來對電機在反轉(zhuǎn)時進行一個延時短停來保護一下電機的沖擊,這個時間遠遠少于進入中斷的時間,所以也不會影響步進電機的脈沖產(chǎn)生時間得。

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏9 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:626079 發(fā)表于 2020-2-23 16:05 | 只看該作者

TB6600+42步進電機測試通過

42motorTB6600FB120自動正反可用單片機源程序如下:
  1. #include<reg52.h>

  2. //電機控制引腳
  3. sbit CLK  = P1^0;          //PUL-
  4. sbit ENA  = P1^1;           //ENA-
  5. sbit DIR  = P1^2;          //DIR-
  6.                   
  7. //按鍵控制端
  8. sbit speedup = P3^2;         //調(diào)速+
  9. sbit speeddown = P3^0;         //調(diào)速-
  10. sbit StopStart  = P3^1;           //停止與啟動
  11. unsigned int count=0;
  12. unsigned int Tspeed[5]={250,500,1000,2500,3000};               
  13. //調(diào)速等級表,5個檔位。1細分, 200脈沖一圈。         一個脈沖是1.8度。
  14. //計算:
  15. //4000,8ms一個脈沖(高電平4MS,低電平4MS,共是8MS)。 200個脈沖就是:1.6秒, 即1.6秒步進電機走一圈。37.5圈/分
  16. //4000 起步會失步在1細分的情況下。
  17. //3000        6ms                                                                                                                        1.2                                                          50圈/分
  18. //2000, 4ms一個脈沖(高電平2MS,低電平2MS,共是4MS)。 200個脈沖就是:0.8秒, 即0.8秒步進電機走一圈。75圈/分
  19. //1000,就是0.4秒/圈, 150圈/分。
  20. //500       0.2秒/圈,  300圈/分
  21. //250       0.1秒/圈   600圈/分。  500US一個脈沖。1S就是2000個脈沖,IO輸出就是2MHZ.在STC89C52的范圍內(nèi)。
  22. //再細分下去,超出C52的范圍。

  23. //我這步進最佳最快有效是600轉(zhuǎn)/分。最快1000圈/分

  24. bit Run_Status=1;                                                   //默認是電機啟動狀態(tài)
  25. unsigned int SPEED=0;                                   //脈沖頻率初始6ms
  26. unsigned int counttemp=0;                                   //暫存停止前的COUNT計數(shù)


  27. void Init_time();
  28. void Key_scan();
  29. void delay(unsigned int hehe);                           //延時hehe毫秒                          

  30. void main()
  31. {
  32.         CLK=0;
  33.         ENA=1;                                 //ENA-接的控制口,但一樣的,如果ENA=0,步進電機卡起
  34.         DIR=1;                                 //DIR-接的控制口。初始化電機        低電平有效,測試,DIR=1,是正轉(zhuǎn), DIR=0反轉(zhuǎn)。
  35.         SPEED=Tspeed[4];
  36.         P2=0X00;
  37.         delay(2000);                            //延時2秒等待系統(tǒng)穩(wěn)定。
  38.         P2=0XFF;
  39.        
  40.         Init_time();                 //初始化定時器       
  41.        
  42.         while(1)
  43.         {
  44.                 Key_scan();
  45.          
  46.          }       
  47. }
  48. void Init_time()                                 //初始化定時器
  49. {
  50.         TMOD |= 0x01;
  51.         TH0=(65536-SPEED)/256;                  //給time0裝初值
  52.         TL0=(65536-SPEED)%256;
  53.     IE = 0x82;
  54.         TR0=0;                       //開啟中斷產(chǎn)生脈沖信號
  55.         EA=0;

  56. }
  57. void Enter_Timer0() interrupt 1         //進入定時器中斷
  58. {

  59.         TH0=(65536-SPEED)/256;
  60.         TL0=(65536-SPEED)%256;
  61.         CLK=~CLK;                                          //發(fā)送脈沖……
  62.         count++;
  63.         if(count<100)
  64.         SPEED=3000;                                          //如果調(diào)到2000失控   1細分
  65.         if(count<200)
  66.         SPEED=2000;
  67.         else                              
  68.         SPEED=3000;
  69.         if(count==300)        //計數(shù)2次為一個脈沖周期          所以180度為計數(shù)200.如果計數(shù)100只有90度
  70.                         {
  71.                                
  72.                                 DIR=~DIR;
  73.                                 count=0;
  74.                                 CLK=0;
  75.                                 TR0=0;                       //開啟中斷產(chǎn)生脈沖信號
  76.                                 EA=0;
  77.                                 delay(300);
  78.                                 CLK=0;
  79.                                 TR0=1;
  80.                                 EA=1;


  81.                         }       

  82. }

  83. void delay(unsigned int n)                           //delay幾個毫秒,入口參數(shù)為幾個毫秒
  84.                                                                           //正反轉(zhuǎn)切換時速度太快了。延時保護電機
  85. {
  86. unsigned int i,y;

  87. for(i=n;i>0;i--)

  88. for(y=114;y>0;y--);                                  
  89. }


  90. void Key_scan()                                             
  91. {
  92.         if(StopStart==0)
  93.         {
  94.                 delay(10);
  95.                 if(StopStart==0)
  96.                 {
  97.                        
  98.                         Run_Status=~Run_Status;
  99.                         if(Run_Status)
  100.                         {
  101.                                 count=counttemp;
  102.                                 TR0=1;                       //開啟中斷產(chǎn)生脈沖信號
  103.                     EA=1;
  104.                                
  105.                         }
  106.                         else
  107.                         {
  108.                                 counttemp=count;
  109.                                     TR0=0;                       //關閉中斷停止脈沖信號
  110.                       EA=0;
  111.                         }
  112.                 } while(!StopStart);
  113.         }
  114. }
  115. /**********************************
  116.         static char i=0;
  117.         static char j=4;

  118.         if(speedup==0)                                   //加速
  119.         {
  120.                 delay(10);                       
  121.                 if(speedup==0)
  122.             {
  123.                
  124.                         j--;
  125.                         if(j<1)
  126.                         j=0;
  127.                         SPEED=Tspeed[j];               
  128.                 }
  129.         }          while(!speedup);
  130.         if(speeddown==0)                                   //減速
  131.         {
  132.                 delay(10);
  133.                 if(speeddown==0)
  134.                 {
  135.                        
  136.                         i++;
  137.                         if(i>4)
  138.                         i=4;
  139.                         SPEED=Tspeed[i];
  140.                 }
  141.         } while(!speeddown);


  142. }
  143.    *************************************/       
復制代碼

評分

參與人數(shù) 1黑幣 +40 收起 理由
admin + 40 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

板凳
ID:626079 發(fā)表于 2020-2-23 19:05 來自手機 | 只看該作者
是270度哈,中斷初始化是沒有開的,按一下鍵就開啦
回復

使用道具 舉報

地板
ID:626079 發(fā)表于 2020-2-23 19:07 來自手機 | 只看該作者
這些都可以自行改得。。
回復

使用道具 舉報

5#
ID:712831 發(fā)表于 2020-4-21 10:56 | 只看該作者
請問用32單片機控制TB6600驅(qū)動42步進電機轉(zhuǎn)動與停止 ,如果按下一個確認按鍵,電機轉(zhuǎn)動,還要用定時器或外部中斷不
回復

使用道具 舉報

6#
ID:917021 發(fā)表于 2021-9-21 22:32 | 只看該作者
為什么我的會抖動,我是初學者,能教一下嗎
回復

使用道具 舉報

7#
ID:1005267 發(fā)表于 2022-2-15 14:43 | 只看該作者
為什么定時器初始化中的TH0和TL0中的speed直接用數(shù)字帶入,電機的轉(zhuǎn)速要快的多?若將鍵盤掃描中的delay全部取消,速度依然為什么?
回復

使用道具 舉報

8#
ID:324780 發(fā)表于 2022-5-31 15:50 | 只看該作者
簡單看了一下,下載下來學習研究,
回復

使用道具 舉報

9#
ID:1037586 發(fā)表于 2022-6-30 14:08 | 只看該作者
附程序下載到普中A2開發(fā)板電機不轉(zhuǎn),不知什么原因
回復

使用道具 舉報

10#
ID:262 發(fā)表于 2022-7-6 16:27 | 只看該作者
樓上的 最好不要在開發(fā)板上做,io連了其他設備可能驅(qū)動能力不夠 自己焊接一個最小系統(tǒng)個就好了,再就是樓主設置了1細分  這個你也要在模塊上設置一下
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成人免费视频网址 | 午夜激情视频 | 午夜视频在线 | 国产精品久久久久久久久久 | 色妹子综合网 | 久久小视频| 亚洲国产成人在线视频 | 中文字幕视频在线观看免费 | 欧美日韩中文字幕在线 | 亚洲精品色 | 国产激情91久久精品导航 | 免费一区二区三区在线视频 | 91久久精品一区二区二区 | 国产精品一二三区 | 午夜伊人| 中文字幕一级毛片视频 | 一区二区精品 | 国产精品一区三区 | 亚洲综合二区 | 欧美日韩福利视频 | 在线观看国产视频 | 欧美高清视频一区 | 91在线精品秘密一区二区 | 97成人在线| 欧美日韩综合视频 | 99re视频在线观看 | 成人综合视频在线 | 国产区在线看 | 性高朝久久久久久久3小时 av一区二区三区四区 | 超碰在线久 | 91在线观看 | 欧美日韩网站 | 青青久久| 亚洲精视频 | 免费v片 | 日韩精品一区二区三区视频播放 | 日韩在线精品视频 | 99热热精品 | 免费一区二区 | 狠狠操狠狠干 | 欧美一区二区在线播放 |