欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5208|回復: 3
收起左側

L298n控制步進電機

[復制鏈接]
ID:568983 發表于 2019-6-21 17:13 | 顯示全部樓層 |閱讀模式
步進電機的使用一定要選擇一個比較好的機型,最起碼能在網上搜到它的相關資料。這樣會給電機的參數的確定提供相關信息。我最近學了一個EM--462步進電機。這家伙可是把我氣炸了,一點信息也沒有,上網查都查不到。盲目的試探之后,終于能驅動它了。

對EM--462的描述:有四根線,其他信息沒了。

相數:可能是四相,也可能是兩相;

我開始用的驅動電路是L297搭配L298n使用,但是沒搞明白,于是直接用L298N驅動了。我用L298n是這樣用的:信號輸入端分別從5、 7 、10 、12 腳輸入,對應單片機管腳P2^0---P2^3

298的6 、11腳連接單片機的P2^4 、P2^5腳。把他們都置高,就可以工作了。

對于其他腳的連線

4--12v電源、整流橋正極;(整流橋要用兩個,現在接與2、3腳一組的那個)

2、3---分別接整流橋 交流 的兩個腳(不分順序)

9--5V電源

1、8、15接地

13、14----分別接另一個整流橋的 交流的兩腳 (不分順序)

整流橋的正負極都要分別接在12V的正負極上。

請務必上網查看L298的用法。(我不會上傳,如果需要的話,給我說一聲,我發郵件給你,這個我會傳上文件的)


2、3、13、14接在步進電機的四個腳上。關于順序就得自己摸索了。一般來說按順序從左至右一些依次對應2、3、13、14腳。從右至左也行,就是轉的反向不同而已。可以調節的。

來看看程序:

//單八拍運作模式

#include<reg51.h>#define uchar unsigned char#define uint unsigned int

sbit a=P^0;sbit b=P2^1;sbit c=P2^2;sbit d=P2^3;sbit m=P2^4;sbit n=P2^5;


uint i=0;

//---------延時函數------------void delay(uchar z){uint i,j;for (i=0;i<=z;i++)     for(j=0;j<=100;j++);}

//----------主函數---------------void main(){    m=n=1;//使能端???好像吧置零就不轉了i=5;//調節速度while(1){     a=1;b=0;c=0;d=0;   delay(i);   a=1;b=0;c=0;d=0;   delay(i);

   a=1;b=1;c=0;d=0;   delay(i);   a=0;b=1;c=0;d=0;   delay(i);

   a=0;b=1;c=1;d=0;   delay(i);   a=0;b=0;c=1;d=0;   delay(i);

   a=0;b=0;c=1;d=1;   delay(i);    a=0;b=0;c=0;d=1;   delay(i);      a=1;b=0;c=0;d=1;   delay(i);

}   }

調延時的時間就可以控制速度了。這里是i的值

再看看單四拍

#include<reg51.h>#define uchar unsigned char#define uint unsigned int

sbit a=P2^0;sbit b=P2^1;sbit c=P2^2;sbit d=P2^3;sbit m=P2^4;sbit n=P2^5;


uint i=0;

//---------延時函數------------void delay(uchar z){uint i,j;for (i=0;i<=z;i++)     for(j=0;j<=50;j++);}

//----------主函數---------------void main(){    m=n=1;i=5;while(1){     a=1;b=0;c=0;d=0;   delay(i);   a=0;b=1;c=0;d=0;   delay(i);   a=0;b=0;c=1;d=0;   delay(i);   a=0;b=0;c=0;d=1;   delay(i);}}

雙四拍

#include<reg51.h>#define uchar unsigned char#define uint unsigned int

sbit a=P2^0;sbit b=P2^1;sbit c=P2^2;sbit d=P2^3;sbit m=P2^4;sbit n=P2^5;


uint i=0;

//---------延時函數------------void delay(uchar z){uint i,j;for (i=0;i<=z;i++)     for(j=0;j<=100;j++);}

//----------主函數---------------void main(){    m=n=1;i=5;while(1){     a=1;b=0;c=0;d=0;   delay(i);   a=1;b=1;c=0;d=0;   delay(i);   a=0;b=1;c=1;d=0;   delay(i);   a=0;b=0;c=1;d=1;   delay(i);   a=1;b=0;c=0;d=1;   delay(i);}}

還可以控制直流電機的速度。

改改連接方式:

4腳接6V,整流橋的正負極也對應接6V的正負極

2、3一組控制一個電機,13、14一組控制一個電機

看程序

#include<reg51.h>#define uchar unsigned char#define uint unsigned int

sbit a=P2^0;//電機一sbit b=P2^1;//電機一sbit c=P2^2;//電機二sbit d=P2^3;//電機二sbit m=P2^4;//電機一使能端sbit n=P2^5;//電機二使能端


uint i=0;

//---------延時函數------------void delay(uchar z){uint i,j;for (i=0;i<=z;i++)     for(j=0;j<=100;j++);}

//----------主函數---------------void main(){    m=n=1;i=500;while(1){    a=1;b=0;c=0;d=0;//電機一正轉   delay(i);   a=0;b=1;c=0;d=0;//電機一反轉   delay(i);   a=0;b=0;c=1;d=0;//電機二正轉   delay(i);   a=0;b=0;c=0;d=1;//電機二反轉   delay(i);   }}

這個i要大點

這個不能控制速度。控制占空比來控制速度。

以電機一為例

#include<reg51.h>#define uchar unsigned char#define uint unsigned int

sbit a=P2^0;sbit b=P2^1;


sbit m=P2^4;
//---------延時函數------------void delay(uchar z){uint i,j;for (i=0;i<=z;i++)     for(j=0;j<=100;j++);}

//----------主函數---------------void main(){    m=1;    i=5;while(1){         b=0;        //只控制正轉

          a=1;        //占空比,我的理解就是轉的時間和不轉的時間的比值

          delay(5);//轉一會時間(1)

          a=0;       //不轉

         delay(10);//停一會(2)

   }//循環}

由于單片機執行的時間很短,所以,電機轉的結果是你看不出有停頓,但速度變化了。

調節(1)、(2)的值就能調速度了。

以后的事情自己總結經驗。
回復

使用道具 舉報

ID:659671 發表于 2019-12-10 09:59 來自觸屏版 | 顯示全部樓層
想要那個L298N的用法 謝謝樓主
回復

使用道具 舉報

ID:715088 發表于 2020-4-26 20:20 | 顯示全部樓層
雖然我看不太懂,但是支持樓主哦,加油!!!
回復

使用道具 舉報

ID:495287 發表于 2020-7-5 13:22 | 顯示全部樓層
樓主碼這么多字辛苦了,
而且接線還標注的這么清楚,對剛上手的非常有必要。
回復

使用道具 舉報

5#
無效樓層,該帖已經被刪除
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表