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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 10960|回復: 5
收起左側

51單片機步進電機轉角+方向控制

[復制鏈接]
ID:309307 發表于 2018-9-20 11:55 | 顯示全部樓層 |閱讀模式
STC15W4K58S4單片機串口控制步進電機轉角,串口發送角度值,大于零正轉,小于零反轉,只是速度過快的時候,由于慣性作用,會有誤差累積

單片機源程序如下:
  1. #include "stc15w.h"
  2. #include <stdlib.h>
  3. #include <stdio.h>
  4. #include <math.h>
  5. #include "uart.h"
  6. #include "motor.h"

  7. /***********函數變量定義聲明*************/
  8. void IO_Init();
  9. double AngVal=0.0;
  10. int pul_cut=0;

  11. /**************主函數******************/
  12. void main()
  13. {
  14.         IO_Init();
  15.         Uart1_Init();                //串口1初始化
  16.         Timer0Init();                //定時器0初始化
  17.         DIR=1;                       //初始化電機方向
  18.         EN=0;                        //初始化電機使能
  19.         TR0=0;                       //定時器初始化不計時
  20.         while(1)
  21.         {
  22.                 if(RecvFlag==1)            //判斷串口接收標志                                                                                                                     
  23.                 {                       
  24.                         RecvFlag=0;              //清接收標志
  25.                         AngVal=atof(Val);        //字符串轉浮點
  26.                         printf("%5.2f\n",AngVal);//打印輸出角度
  27.                         EN=1;                    //步進電機使能
  28.                         if(AngVal>0)             //判斷電機轉向
  29.                         {
  30.                                 DIR=1;
  31.                         }
  32.                         else if(AngVal<=0)
  33.                         {
  34.                                 DIR=0;
  35.                         }
  36.                         TR0=1;                   //定時器0開始計時
  37.                         pul_cut=fabs(AngVal/0.1125);   //通過角度計算脈沖個數
  38.                 }
  39.                 if(num>=pul_cut)           //脈沖個數判斷
  40.                 {
  41.                         num=0;                   //脈沖個數清零
  42.                         TR0=0;                   //關閉定時器0
  43.                 }
  44.         }
  45. }
  46. /**************IO口初始化函數******************/
  47. void IO_Init()                 //IO口初始化,P5口推晚輸出,其余口設置為準雙向
  48. {
  49.         P0M0 = 0x00;
  50.         P0M1 = 0x00;
  51.         P1M0 = 0x00;
  52.         P1M1 = 0x00;
  53.         P2M0 = 0x00;
  54.         P2M1 = 0x00;
  55.         P3M0 = 0x00;
  56.         P3M1 = 0x00;
  57.         P5M0 = 0xff;               
  58.         P5M1 = 0x00;
  59. }
復制代碼

所有資料51hei提供下載:
串口控制步進電機角度.rar (53.22 KB, 下載次數: 130)
回復

使用道具 舉報

ID:1 發表于 2018-9-20 16:52 | 顯示全部樓層
補全原理圖或者詳細說明一下電路連接即可獲得100+黑幣
回復

使用道具 舉報

ID:309307 發表于 2018-9-21 09:44 | 顯示全部樓層
補充說明.doc (144.5 KB, 下載次數: 44)
回復

使用道具 舉報

ID:309307 發表于 2018-9-21 09:47 | 顯示全部樓層
對昨天的程序做一個更全面的補充

補充說明.doc

144.5 KB, 下載次數: 40, 下載積分: 黑幣 -5

補充說明

回復

使用道具 舉報

ID:309307 發表于 2018-9-21 09:51 | 顯示全部樓層
補充說明:
電機選用57兩相步進電機,驅動器使用雷塞的ME432,采用共陽極接法,單片機控制引腳低電平有效(控制引腳無需接限流電阻,公共正端即是單片機的VCC)。接線圖如下:
圖片1.png
對應程序管腳定義:
使能信號:EN--> P5.3
方向脈沖:DIR-->P5.4
脈沖信號:PUL-->P5.5
注:管腳可根據自己使用的單片機更改,但一定設置為推晚輸出,才能驅動控制器。
此外,驅動電機的脈沖頻率(即電機轉速)要根據單片機定時器的定時時間去修改,頻率過快或者過慢都會使電機無法轉動,要根據實際情況適當調整。還有,驅動器的細分會影響電機轉角,細分為多少,電機轉一圈就需要多少個脈沖。假設細分為800,電機轉一圈(360°)需要800個脈沖,一個脈沖就轉0.45°。要注意的是,在脈沖頻率確定后,細分越大,精度越高,轉速越慢,要提高轉速,此時可以修改脈沖頻率,即定時器初值。
步進電機和驅動器的資料大家可以在淘寶上找,在寶貝詳情里都有資料可下載。

回復

使用道具 舉報

ID:584041 發表于 2019-8-1 09:59 | 顯示全部樓層
大佬牛逼了
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 天天躁日日躁aaaa视频 | 欧美日本高清 | www.黄色片视频 | 国产精品综合视频 | 999观看免费高清www | 91传媒在线观看 | 久久综合av | 国产999精品久久久久久 | 欧美性乱 | 午夜视频网站 | 做a网站| 91黄在线观看 | 成人夜晚看av | 中文字幕国产 | 高清国产午夜精品久久久久久 | 91影院在线观看 | 99精彩视频 | 这里有精品 | 精品免费视频 | 天天射天天操天天干 | 国产精品天堂 | 99色播| 综合一区二区三区 | 久久精品欧美一区二区三区不卡 | 成人精品视频 | 日操操夜操操 | 国产黄色大片在线观看 | aaa综合国产 | 国产精品久久av | 免费精品 | 欧美极品在线 | 久久久久亚洲精品 | 美女视频黄的免费 | 成人福利在线 | 国产一级片免费视频 | 日韩精品 电影一区 亚洲 | 91综合网| 亚洲一区二区三区久久 | 一区二区在线 | 国产亚洲精品久久久久动 | 久久久久久国 |