樹莓派控制五線四相步進電機
阿新 • • 發佈:2019-02-19
同樣是大二時候的坑......就不明白了當初為什麼不把程式碼也給貼上去,現在就貼出程式碼。
在編譯C檔案的時候,使用gcc XXX.c -o XXX -lwiringPi指定連線wiringPi庫才可以驅動步進電機,之後執行編譯好的檔案,便可以看到步進電機工作了。#include<stdio.h> #include<stdlib.h> #include<wiringPi.h> //提供GPIO控制函式 #include<unistd.h> //提供sleep()函式 void DelayMs(int n) { usleep(n*1000); } //使樹莓派停止 void Step_Stop(int* Ins) { int i; for(int i=0;i<=3;i++) { digitalWrite(Ins[i],0); //設定為低電平,停止轉動 } } //完成一圈的旋轉 void Step_Rounds(int* Ins) { int i,j; for(i=0;i<4;i++) { for(j=0;j<4;j++) { if(i==j) { digitalWrite(Ins[3-j],1); } else { digitalWrite(Ins[3-j],0); } } //DelayMs(20); } } int main(void) { int A=0,B=1,C=2,D=3; int Pin[4]={A,B,C,D}; int count=100; int i; pinMode(A,OUTPUT); pinMode(B,OUTPUT); pinMode(C,OUTPUT); pinMode(D,OUTPUT); sleep(5); for(i=1;i<=count;i++) { Step_Rounds(Pins); } Step_Stop(Pins); sleep(2); printf("Stop!\n"); return 0; }