1. 步進電機實現加速、勻速、減速的程序如何編寫
加速和減速的程序不用太復雜吧?就用delay(x),循環一次,x減1循環個幾次,就是加速程序了。要想減速程序,就是上面的減的程序變成x加1.再循環幾次,就可以了。 定時:根據需要設定 加速:加入是P1.0發脈沖,就是P1=0x00;delay(x);P1=0x01;delay(x);循環一次x- -;需要減幾次自己定,不要超出電機的最高頻率 減速:程序與上面差不多,就是x++,就可以了
2. 步進電機的程序該怎麼寫
我沒有寫過PLC的,只寫過單片機的哦...你網上搜下,蠻多的,主要是理解了就好...步進嘛,就是你給它一個突變的信號,它就走一步的,不然就不叫步進撒...也就是你觸發它一下,它跑一步,且只跑一步的哦...懂了吧?
內容:1、本程序用於測試4相步進電機常規驅動
2、需要用跳帽或者杜邦線把信號輸出端和對應的步進電機信號輸入端連接起來
3、速度不可以調節的過快,不然就沒有力矩轉動了
4、按s4(設置成獨立按鍵模式)可以控制正反轉
------------------------------------------------*/
#include <reg52.h>
bit Flag;//定義正反轉標志位
unsigned char code F_Rotation[4]={0xf1,0xf2,0xf4,0xf8}; //正轉表格
unsigned char code B_Rotation[4]={0xf8,0xf4,0xf2,0xf1}; //反轉表格
/******************************************************************/
/* 延時函數 */
/******************************************************************/
void Delay(unsigned int i)//延時
{
while(--i);
}
/******************************************************************/
/* 主函數 */
/******************************************************************/
main()
{
unsigned char i;
EX1=1; //外部中斷0開
IT1=1; //邊沿觸發
EA=1; //全局中斷開
while(!Flag)
{
P0=0x71;//顯示 F 標示正轉
for(i=0;i<4;i++) //4相
{
P1=F_Rotation[i]; //輸出對應的相 可以自行換成反轉表格
Delay(500); //改變這個參數可以調整電機轉速 ,數字越小,轉速越大
}
}
while(Flag)
{
P0=0x7C;//顯示 b 標示反轉
for(i=0;i<4;i++) //4相
{
P1=B_Rotation[i]; //輸出對應的相
Delay(500); //改變這個參數可以調整電機轉速 ,數字越小,轉速越大
}
}
}
/******************************************************************/
/* 中斷入口函數 */
/******************************************************************/
void ISR_Key(void) interrupt 2 using 1
{
Delay(300);
Flag=!Flag; //s3按下觸發一次,標志位取反
}