一、板子跳線器說明:所有跳線都在左邊,則由單片機控制。
1、靠近光偶的短路冒打在CLK-555方向時有板上的555提供時鐘給驅動器;打在CLK-CPU時右用戶CPU提供時鐘給驅動器。
2、JT5打在右邊:297的HALF/FULL(全速/半速)腳接GND了 默認為FULL模式了;JT5打在左邊:297的HALF/FULL腳空了 電機模式用戶自己控制。
3、JT6打在右邊:297的CW/CCW腳(方向)接GND了 默認為順時針轉動模式了;JT6打在左邊:297的CW/CCW腳空了 電機正反轉模式用戶自己控制。
二、按鍵說明:
板子使用全新的L297作為控制芯片 L298作為驅動芯片 板載NE555時鐘電路為L297提供CLK因此 該版在不需要外部控制的情況下就可以工作 板載3個控制按鍵
EN - 使能
CW - 反向旋轉
HF - 半速旋轉
通過按鍵就可以直接控制電機的正反轉、全速/半速和使能。
三、基本功能描述:
通過光藕隔離之后將CLK CW HF EN四個基本控制端引出單片機等可以非常方便的控制電路的工作這個板子改進的地方比較多也方便研究使用。板子使用1N5822快速二極管作為續流器件 其速度要遠遠快于整流橋的 L298和電機能夠提供更完善的有效的保護。模塊供電+5V(L297和L298控制供電) +12V(根據電機最低4V最高16V)給電機供電。
電機輸出接口包括: +12V 四相輸出 GND(請根據您的電機連接)。
控制輸入接口包括: GND CLK EN CW HF。
EN:高電平停止,低電平使能。
RET:高電平停止,低電平使能。
C/CW:高電平逆時針,低電平順時針。
H/HD:高電平全速,低電平半速。
CLK:時鐘脈沖。
需要特別說明的是:為了測試方便 在板子上設置了NE555構成的一個低頻時鐘源(使用時跳線冒打在CLK-555處),當您使用外部的時鐘信號控制電機的轉速時必須跳線冒打在CLK-CPU處 否則外部時鐘是不會傳到L297里面。
四、接口說明:
1、板子左上方小二接口(JT1) VCC接+5V、GND接電源地,次處為芯片L297和555芯片的工作電壓;
2、板子左中方小八接口(MCU-IN)為光藕隔離的信號分別為:EN(使能)、RET(復位)、C/CW(正反控制)、H/FU(全速/半速)、CLK(時鐘信號) +5V(光藕工作電壓) 注意:如果沒有用CPU控制,小八接口(MCU-IN)的信號可以不接任何東西。
3、JT2為298的工作電壓也是驅動電機的工作電壓(接+12V)
注意:板子推薦的最高電機供電電壓在4V~18V之間 最大工作電流不超過2A 否則L298的耗散功率會過大 導致發熱嚴重 這種情況下通過風冷等措施 可以提高最大工作電流到2.5A左右。
4、OUT為電機的四相信號線 A B C D
相關程序:
// 控制線接到MCU的P1口 獨立鍵盤的接口接到MCU的P2口。
// KEY0- 右運動一步; KEY1- 左運動一步;
// KEY2- 右運動200步; KEY3- 左運動200步
// KEY4- 右運動1000步;
#include
#include
#define uint unsigned int
#define uchar unsigned char
sbit en=P1^0; // 定義P1.0口
sbit rst=P1^1; // 定義P1.1口
sbit ccw=P1^2; // 定義P1.2口
sbit hf=P1^3; // 定義P1.3口
sbit clk=P1^4; // 定義P1.4口
sbit k1=P1^5; // 定義P1.5口
sbit k2=P1^6; // 定義P1.6口
void ShortDelay(void)
{ uchar x,y;
for(x=0;x《5;x++)
for(y=0;y《125;y++)
_nop_();
return;
}
void outclk(uint a)
{ uint i,j;
while(a--)
{ en=1; // 定義P1.0口
rst=1; // 定義P1.1口
//if((k1&k2)!=0) // K1,K2限位置判斷
// {
clk=1;
for(i=150;i》0;i--) //200
for(j=150;j》0;j--); //200
clk=0;
// }
// else {rst=1;en=0;}
}
}
uchar key(void)
{uchar key_num;
if( ( P2 & 0x3f) != 0x3f ) //判斷按鍵
{
ShortDelay(); //消除抖動
if( ( P2 & 0x3f ) != 0x3f )
{
switch ( P2 & 0x3f ) //將按鍵碼轉換成鍵值
{
case 0x3e: return key_num=01;
case 0x3d: return key_num=02;
case 0x3b: return key_num=03;
case 0x37: return key_num=04;
case 0x2f: return key_num=05;
case 0x1f: return key_num=06;
default : return key_num=00;
}
}
}
return key_num;
}
void main(void)
{ uchar b;
while(1)
{
b= key();
switch(b)
{ //4步走1CM設定走5Cm 半應該是200的為了調整誤差所以少4步 (10CM為多8步)
case 00:rst=1;break;//0
case 01:ccw=1; outclk(1);break;//1 右運動1步
case 02:ccw=0; outclk(1);break;//2 左運動1步
case 03:ccw=1; outclk(200);break;//3 右運動1CM
case 04:ccw=0; outclk(200);break;//4 左運動1CM
case 05:ccw=1; outclk(1000);break;//5 右運動5CM
//case 06:ccw=0; outclk(1000);break;//6 左運動5CM
default:break;
}
}
}
實物圖:
-
單片機
+關注
關注
6040文章
44592瀏覽量
636905 -
驅動器
+關注
關注
53文章
8263瀏覽量
146683
發布評論請先 登錄
相關推薦
評論