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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 9513|回復(fù): 18
收起左側(cè)

雷賽55步進(jìn)電機驅(qū)動器stm32單片機控制源程序

  [復(fù)制鏈接]
ID:321704 發(fā)表于 2018-5-3 22:48 | 顯示全部樓層 |閱讀模式
12864顯示坐標(biāo),按鍵輸入坐標(biāo)電機移動xmm,精度誤差在1mm以內(nèi),原創(chuàng)程序
0.jpg
stm32單片機源程序如下:
  1. #include "sys.h"       
  2. #include "delay.h"       
  3. #include "led.h"
  4. #include "smotor.h"
  5. #include "keyb.h"
  6. #include "beep.h"
  7. #include "12864.h"
  8. #include "keym.h"
  9. #include "stmflash.h"

  10. //int datatemp[3]={0};

  11. int main(void)
  12. {
  13. //         u8 exit=0;
  14. //         int obuf[3]={1,0};
  15.     delay_init();   //延時初始化
  16.         LED_Init();    //初始化燈
  17.         BEEP_Init();   //蜂鳴器初始化
  18.         Init_key();   //初始化矩陣鍵盤
  19.     Init_Motor(); //初始化步進(jìn)驅(qū)動器口
  20.         LCD_Init_12864(); //液晶初始化
  21.         while(1)
  22.         {
  23. //                 STMFLASH_Write(FLASHADDR,(u16*)obuf,3);
  24. //         STMFLASH_Read(FLASHADDR,(u16*)datatemp,3);
  25.                 keyscan(); //獲取鍵值輸入步數(shù)       
  26.             dis_step(); //顯示設(shè)置的向下轉(zhuǎn)步數(shù)
  27.                 read_flash();
  28.                 SET_XYZ(xm,ym,zm,XMSPEED);
  29.                
  30.         }
  31.          
  32. }

復(fù)制代碼

  1. #include "smotor.h"
  2. #include "delay.h"
  3. #include "12864.h"
  4. #include "keym.h"

  5. #define jiasu_time 10                //加速次數(shù) 即加速區(qū)段距離
  6. #define sudu_beilv 3                //加速倍率


  7. int m_x=0,m_y=0,m_z=0;    //初始坐標(biāo)

  8. /****初始化PE0-8口作為驅(qū)動器DIR/PUL/EN口****/
  9. void Init_Motor(void)  
  10. {
  11.     GPIO_InitTypeDef  GPIO_InitStructure;
  12.        
  13.          RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);         //使能PD端口時鐘
  14.                
  15.          GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|  \
  16.                                        GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7;
  17.        
  18.          GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;                  //推挽輸出
  19.          GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;                 //IO口速度為50MHz
  20.          GPIO_Init(GPIOD, &GPIO_InitStructure);                                         //根據(jù)設(shè)定參數(shù)初始化GPIO
  21. }
  22. void SET_XYZ(int x,int y,int z,u16 Speed)
  23. {
  24.     int tmp,j;
  25.         unsigned char M_speed,jiasu_step;
  26.         u8 runfast;
  27.         jiasu_step=Speed/(jiasu_time*sudu_beilv);//10mm,速度加一倍
  28.         if(jiasu_step<1)jiasu_step=1;

  29.         if(x!=m_x)
  30.         {
  31.                 if(x>m_x)         {        DIRX1; tmp=x-m_x;}
  32.                 else                {        DIRX0; tmp=m_x-x;}
  33.                 //--加速標(biāo)志-------------------------------------------------
  34.                 if(tmp>11)        runfast=1;else runfast=0;        //大于20mm 啟動加速功能
  35.                 M_speed=Speed;
  36.                 for(;tmp>0;tmp--)
  37.                 {       
  38.                         for(j=0;j<200/3;j++)                           //1毫米
  39.                         {
  40. //                                        if(x<m_x)                                       
  41. //                                                {m_x=0;break;}
  42.                                 PULX1;delay_us(M_speed*100);
  43.                                 PULX0;delay_us(M_speed*100);
  44.                         }
  45.                         if(runfast)
  46.                         {
  47.                                 if(tmp<10)                        //減速區(qū)長度
  48.                                         M_speed+=jiasu_step;                //減速
  49.                                 else
  50.                                 {
  51.                                         if(M_speed>Speed/sudu_beilv)                //速度最高限 us=900
  52.                                                 M_speed-=jiasu_step;                //加速                               
  53.                                 }
  54.                         }
  55.                 }
  56.                 m_x=x;
  57.         }
  58.         if(y!=m_y)
  59.         {
  60.                 if(y>m_y)         {        DIRY1; tmp=y-m_y;}
  61.                 else                {        DIRY0; tmp=m_y-y;}
  62.                 //--加速標(biāo)志-------------------------------------------------
  63.                 if(tmp>11)        runfast=1;else runfast=0;        //大于20mm 啟動加速功能
  64.                 M_speed=Speed;
  65.                 for(;tmp>0;tmp--)
  66.                 {
  67.                         for(j=0;j<200/3;j++)
  68.                         {
  69. //                                        if(y<m_y)                                       
  70. //                                                {m_y=0;break;}           //         Y_EN = 0;
  71.                                 PULY1;delay_us(M_speed*100);
  72.                                 PULY0;delay_us(M_speed*100);       
  73.                         }
  74.                         if(runfast)
  75.                         {
  76.                                 if(tmp<10)                        //減速區(qū)長度
  77.                                         M_speed+=jiasu_step;                //減速
  78.                                 else
  79.                                 {
  80.                                         if(M_speed>Speed/sudu_beilv)                //速度最高限
  81.                                         M_speed-=jiasu_step;                //加速                               
  82.                                 }
  83.                         }
  84.                 }
  85.                 m_y=y;
  86.         }
  87.         if(z!=m_z)
  88.         {
  89.                 if(z>m_z)         {        DIRZ1; tmp=z-m_z;}
  90.                 else                {        DIRZ0; tmp=m_z-z;}
  91.                 //--加速標(biāo)志-------------------------------------------------
  92.                 if(tmp>11)        runfast=1;else runfast=0;        //大于20mm 啟動加速功能
  93.                 M_speed=Speed;       
  94.                 for(;tmp>0;tmp--)
  95.                 {
  96.                         for(j=0;j<200/3;j++)
  97.                         {
  98. //                                        if(z<m_z)                                       
  99. //                                                {m_z=0;break;}
  100.                                 PULZ1;delay_us(M_speed*100);
  101.                                 PULZ0;delay_us(M_speed*100);
  102.                         }
  103.                         if(runfast)
  104.                         {
  105.                                 if(tmp<10)                        //減速區(qū)長度
  106.                                         M_speed+=jiasu_step;                //減速
  107.                                 else
  108.                                 {
  109.                                         if(M_speed>Speed/sudu_beilv)                //速度最高限
  110.                                         M_speed-=jiasu_step;                //加速                               
  111.                                 }
  112.                         }
  113.                 }
  114.                 m_z=z;
  115.         }
  116.        
  117. //        if(k!=m_k)
  118. //        {
  119. //                K_EN = 0;
  120. //                if(k>m_k)         {        K_CW = 1; tmp=k-m_k;}
  121. //                else                {        K_CW = 0; tmp=m_k-k;}
  122. //                //--加速標(biāo)志-------------------------------------------------
  123. //                if(tmp>20)        runfast=1;else runfast=0;        //大于20mm 啟動加速功能
  124. //                M_speed=Speed;       
  125. //                for(;tmp>0;tmp--)
  126. //                {
  127. //                        for(j=0;j<200*16/6;j++)
  128. //                        {
  129. //                                if(Kxianwei==0)
  130. //                                        if(k<m_k)                                       
  131. //                                                {m_k=0;K_EN = 1;break;}
  132. //                                K_CLK =1;delay_us(30);
  133. //                                K_CLK =0;delay_us(30);
  134. //                        }
  135. //                        if(runfast)
  136. //                        {
  137. //                                if(tmp<30)                        //減速區(qū)長度
  138. //                                        M_speed+=jiasu_step;                //減速
  139. //                                else
  140. //                                {
  141. //                                        if(M_speed>Speed/sudu_beilv)                //速度最高限
  142. //                                        M_speed-=jiasu_step;                //加速                               
  143. //                                }
  144. //                        }
  145. //                }
  146. //                K_EN = 1;
  147. //                m_k=k;
  148. //        }
  149.         
  150. }

  151. ……………………

  152. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
SMOTOR.rar (284.74 KB, 下載次數(shù): 213)

評分

參與人數(shù) 2黑幣 +59 收起 理由
lxj199610 + 9 贊一個!
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復(fù)

使用道具 舉報

ID:343367 發(fā)表于 2018-9-20 09:07 | 顯示全部樓層
東西挺好
回復(fù)

使用道具 舉報

ID:399702 發(fā)表于 2018-10-2 09:48 | 顯示全部樓層
問下,是32什么型號的單片機
回復(fù)

使用道具 舉報

ID:337189 發(fā)表于 2018-10-6 10:10 | 顯示全部樓層
謝謝,正在寫這方面。可以作為參考。
回復(fù)

使用道具 舉報

ID:151749 發(fā)表于 2018-10-31 10:48 | 顯示全部樓層
謝謝提供!
回復(fù)

使用道具 舉報

ID:421201 發(fā)表于 2018-11-5 17:35 | 顯示全部樓層
謝謝,正在找這方面的資料,值得參考
回復(fù)

使用道具 舉報

ID:428580 發(fā)表于 2018-11-18 11:15 | 顯示全部樓層
不錯哈!
回復(fù)

使用道具 舉報

ID:138247 發(fā)表于 2019-6-23 09:18 | 顯示全部樓層

正在搞這個,資料非常有用啊。。。
回復(fù)

使用道具 舉報

ID:282095 發(fā)表于 2019-6-23 10:23 | 顯示全部樓層
請問樓上所說的是AUTONICS KR-55MC步進(jìn)電機驅(qū)動器嗎
回復(fù)

使用道具 舉報

ID:33544 發(fā)表于 2019-6-24 10:48 | 顯示全部樓層
正在找這方面的資料,值得參考
回復(fù)

使用道具 舉報

ID:235329 發(fā)表于 2019-6-26 14:55 | 顯示全部樓層
挺好的程序,很全用的stm32F1
回復(fù)

使用道具 舉報

ID:421536 發(fā)表于 2019-8-1 15:50 | 顯示全部樓層
正要查找這方面的資料
回復(fù)

使用道具 舉報

ID:421536 發(fā)表于 2019-8-1 15:54 | 顯示全部樓層
好東西,正要找這方面的資料
回復(fù)

使用道具 舉報

ID:606788 發(fā)表于 2019-9-5 08:47 | 顯示全部樓層
謝謝分享,可以學(xué)習(xí)一下這方面的
回復(fù)

使用道具 舉報

ID:96552 發(fā)表于 2019-10-11 17:14 | 顯示全部樓層
好資料,加上電機及絲桿參數(shù),就好玩了
回復(fù)

使用道具 舉報

ID:59423 發(fā)表于 2019-10-18 10:58 | 顯示全部樓層
資料非常有用,非常棒的程序。
回復(fù)

使用道具 舉報

ID:59423 發(fā)表于 2019-10-18 13:09 | 顯示全部樓層
我用的驅(qū)動器是DM542,非常適用。
回復(fù)

使用道具 舉報

ID:582339 發(fā)表于 2020-4-18 21:33 | 顯示全部樓層
謝謝!正好需要
回復(fù)

使用道具 舉報

ID:164385 發(fā)表于 2021-3-25 20:29 | 顯示全部樓層
很好的代碼,學(xué)習(xí)了
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 一级在线观看 | 久久另类视频 | 久久久性色精品国产免费观看 | 亚洲毛片一区二区 | 一区二区三区视频在线 | 免费h在线 | 999久久精品 | 亚洲视频国产 | 成人精品国产一区二区4080 | 久久国产美女视频 | 日本精品一区二区三区在线观看视频 | 久热国产在线 | 日本天天操 | 免费av一区二区三区 | 欧美日韩大片 | 亚洲网站在线观看 | 色综合天天天天做夜夜夜夜做 | a在线免费观看视频 | 特级黄一级播放 | 中文字幕日韩一区 | 久久精品高清视频 | 伊人中文网 | 国产高清精品在线 | 欧美一级欧美一级在线播放 | 最新国产在线 | 久久久久一区二区三区四区 | 欧美视频中文字幕 | 欧美一区二区三区在线看 | 中文在线亚洲 | 国产中文字幕在线观看 | 国产无套一区二区三区久久 | 西西裸体做爰视频 | 北条麻妃99精品青青久久主播 | 日韩三级 | 欧美日韩不卡在线 | 另类一区 | www.国产精品 | 国产一区在线免费 | 亚洲欧美日韩电影 | 亚洲另类自拍 | 国产91在线 | 欧美 |