Ivan Novak / uStep1
Revision:
0:1b66f1ca8dd2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/uStep.cpp	Mon Jan 09 14:11:31 2017 +0000
@@ -0,0 +1,161 @@
+#include "uStep.h"
+#include "mbed.h"
+Ticker mtick;
+int motorbrzina; // BRZINA STEP MOTORA
+uStep::uStep(PinName FAZ1, PinName FAZ2, PinName FAZ3, PinName FAZ4) : _FAZ1(FAZ1), _FAZ2(FAZ2), _FAZ3(FAZ3), _FAZ4(FAZ4)   //DEFINICIJA PINOVA MOTORA
+{
+    _FAZ1=0;
+    _FAZ2=0;
+    _FAZ3=0;
+    _FAZ4=0;
+}
+void uStep::ooskz()   // ROTIRAJ MOTOR U SMJERU OBRNUTOM D KAZALJKE NA SATU
+{
+    for (int i = 0; i <= 7; i++) {
+        switch (i) { // AKTIVIRAJTE FAZE ( FAZ1, FAZ3, FAZ4, FAZ4)  U BINARNOJ SEKVENCI ZA KORAKE
+            case 0: {
+                _FAZ1=0;
+                _FAZ2=0;
+                _FAZ3=0;
+                _FAZ4=1;
+            }
+            break;
+            case 1: {
+                _FAZ1=0;
+                _FAZ2=0;
+                _FAZ3=1;
+                _FAZ4=1;
+            }
+            break;
+            case 2: {
+                _FAZ1=0;
+                _FAZ2=0;
+                _FAZ3=1;
+                _FAZ4=0;
+            }
+            break;
+            case 3: {
+                _FAZ1=0;
+                _FAZ2=1;
+                _FAZ3=1;
+                _FAZ4=0;
+            }
+            break;
+            case 4: {
+                _FAZ1=0;
+                _FAZ2=1;
+                _FAZ3=0;
+                _FAZ4=0;
+            }
+            break;
+            case 5: {
+                _FAZ1=1;
+                _FAZ2=1;
+                _FAZ3=0;
+                _FAZ4=0;
+            }
+            break;
+            case 6: {
+                _FAZ1=1;
+                _FAZ2=0;
+                _FAZ3=0;
+                _FAZ4=0;
+            }
+            break;
+            case 7: {
+                _FAZ1=1;
+                _FAZ2=0;
+                _FAZ3=0;
+                _FAZ4=1;
+            }
+            break;
+        }
+
+
+        wait_us(motorbrzina); // VRIJEME CEKANJA DEFINIRA BRZINU OKRETANJA MOTORA
+    }
+}
+
+void uStep::skz()   // ROTIRAJ MOTOR JEDNOM U SMJERU KAZALJKE NA SATU
+{
+    for (int i = 0; i <= 7; i++) {
+
+        switch (i) {
+            case 0: {
+                _FAZ1=1;
+                _FAZ2=0;
+                _FAZ3=0;
+                _FAZ4=1;
+            }
+            break;
+            case 1: {
+                _FAZ1=1;
+                _FAZ2=0;
+                _FAZ3=0;
+                _FAZ4=0;
+            }
+            break;
+            case 2: {
+                _FAZ1=1;
+                _FAZ2=1;
+                _FAZ3=0;
+                _FAZ4=0;
+            }
+            break;
+            case 3: {
+                _FAZ1=0;
+                _FAZ2=1;
+                _FAZ3=0;
+                _FAZ4=0;
+            }
+            break;
+            case 4: {
+                _FAZ1=0;
+                _FAZ2=1;
+                _FAZ3=1;
+                _FAZ4=0;
+            }
+            break;
+            case 5: {
+                _FAZ1=0;
+                _FAZ2=0;
+                _FAZ3=1;
+                _FAZ4=0;
+            }
+            break;
+            case 6: {
+                _FAZ1=0;
+                _FAZ2=0;
+                _FAZ3=1;
+                _FAZ4=1;
+            }
+            break;
+            case 7: {
+                _FAZ1=0;
+                _FAZ2=0;
+                _FAZ3=0;
+                _FAZ4=1;
+            }
+            break;
+        }
+
+
+        wait_us(motorbrzina); // VRIJEME CEKANJA DEFINIRA BRZINU OKRETANJA MOTORA
+    }
+}
+void uStep::step(int koraci, int smjer, int brzina)  // FUNKCIJA STEP MOTORA (BROJ KORAKA, SMJER VRTNJE, BRZINA VRTNJE)
+{
+    int count=0; // INICIJALIZCIJA BROJACA KORAKA
+    motorbrzina=brzina; //POSTAVLJANJE BRZINE MOTORA
+    if (smjer==0) // OKRETANJE U SMJERU KAZALJKE NA SATU
+        do {
+            skz();
+            count++;
+        } while (count<koraci); // turn number of steps applied
+    else if (smjer==1)// OKRETANJE OBRNUTO OD KAZALJKE NA SATU
+        do {
+            ooskz();
+            count++;
+        } while (count<koraci);// IZVODI ODABRANI BROJ KORAKA
+
+}
\ No newline at end of file