Ivan Novak / uStep1
Committer:
inovak1
Date:
Mon Jan 09 14:11:31 2017 +0000
Revision:
0:1b66f1ca8dd2
a

Who changed what in which revision?

UserRevisionLine numberNew contents of line
inovak1 0:1b66f1ca8dd2 1 #include "uStep.h"
inovak1 0:1b66f1ca8dd2 2 #include "mbed.h"
inovak1 0:1b66f1ca8dd2 3 Ticker mtick;
inovak1 0:1b66f1ca8dd2 4 int motorbrzina; // BRZINA STEP MOTORA
inovak1 0:1b66f1ca8dd2 5 uStep::uStep(PinName FAZ1, PinName FAZ2, PinName FAZ3, PinName FAZ4) : _FAZ1(FAZ1), _FAZ2(FAZ2), _FAZ3(FAZ3), _FAZ4(FAZ4) //DEFINICIJA PINOVA MOTORA
inovak1 0:1b66f1ca8dd2 6 {
inovak1 0:1b66f1ca8dd2 7 _FAZ1=0;
inovak1 0:1b66f1ca8dd2 8 _FAZ2=0;
inovak1 0:1b66f1ca8dd2 9 _FAZ3=0;
inovak1 0:1b66f1ca8dd2 10 _FAZ4=0;
inovak1 0:1b66f1ca8dd2 11 }
inovak1 0:1b66f1ca8dd2 12 void uStep::ooskz() // ROTIRAJ MOTOR U SMJERU OBRNUTOM D KAZALJKE NA SATU
inovak1 0:1b66f1ca8dd2 13 {
inovak1 0:1b66f1ca8dd2 14 for (int i = 0; i <= 7; i++) {
inovak1 0:1b66f1ca8dd2 15 switch (i) { // AKTIVIRAJTE FAZE ( FAZ1, FAZ3, FAZ4, FAZ4) U BINARNOJ SEKVENCI ZA KORAKE
inovak1 0:1b66f1ca8dd2 16 case 0: {
inovak1 0:1b66f1ca8dd2 17 _FAZ1=0;
inovak1 0:1b66f1ca8dd2 18 _FAZ2=0;
inovak1 0:1b66f1ca8dd2 19 _FAZ3=0;
inovak1 0:1b66f1ca8dd2 20 _FAZ4=1;
inovak1 0:1b66f1ca8dd2 21 }
inovak1 0:1b66f1ca8dd2 22 break;
inovak1 0:1b66f1ca8dd2 23 case 1: {
inovak1 0:1b66f1ca8dd2 24 _FAZ1=0;
inovak1 0:1b66f1ca8dd2 25 _FAZ2=0;
inovak1 0:1b66f1ca8dd2 26 _FAZ3=1;
inovak1 0:1b66f1ca8dd2 27 _FAZ4=1;
inovak1 0:1b66f1ca8dd2 28 }
inovak1 0:1b66f1ca8dd2 29 break;
inovak1 0:1b66f1ca8dd2 30 case 2: {
inovak1 0:1b66f1ca8dd2 31 _FAZ1=0;
inovak1 0:1b66f1ca8dd2 32 _FAZ2=0;
inovak1 0:1b66f1ca8dd2 33 _FAZ3=1;
inovak1 0:1b66f1ca8dd2 34 _FAZ4=0;
inovak1 0:1b66f1ca8dd2 35 }
inovak1 0:1b66f1ca8dd2 36 break;
inovak1 0:1b66f1ca8dd2 37 case 3: {
inovak1 0:1b66f1ca8dd2 38 _FAZ1=0;
inovak1 0:1b66f1ca8dd2 39 _FAZ2=1;
inovak1 0:1b66f1ca8dd2 40 _FAZ3=1;
inovak1 0:1b66f1ca8dd2 41 _FAZ4=0;
inovak1 0:1b66f1ca8dd2 42 }
inovak1 0:1b66f1ca8dd2 43 break;
inovak1 0:1b66f1ca8dd2 44 case 4: {
inovak1 0:1b66f1ca8dd2 45 _FAZ1=0;
inovak1 0:1b66f1ca8dd2 46 _FAZ2=1;
inovak1 0:1b66f1ca8dd2 47 _FAZ3=0;
inovak1 0:1b66f1ca8dd2 48 _FAZ4=0;
inovak1 0:1b66f1ca8dd2 49 }
inovak1 0:1b66f1ca8dd2 50 break;
inovak1 0:1b66f1ca8dd2 51 case 5: {
inovak1 0:1b66f1ca8dd2 52 _FAZ1=1;
inovak1 0:1b66f1ca8dd2 53 _FAZ2=1;
inovak1 0:1b66f1ca8dd2 54 _FAZ3=0;
inovak1 0:1b66f1ca8dd2 55 _FAZ4=0;
inovak1 0:1b66f1ca8dd2 56 }
inovak1 0:1b66f1ca8dd2 57 break;
inovak1 0:1b66f1ca8dd2 58 case 6: {
inovak1 0:1b66f1ca8dd2 59 _FAZ1=1;
inovak1 0:1b66f1ca8dd2 60 _FAZ2=0;
inovak1 0:1b66f1ca8dd2 61 _FAZ3=0;
inovak1 0:1b66f1ca8dd2 62 _FAZ4=0;
inovak1 0:1b66f1ca8dd2 63 }
inovak1 0:1b66f1ca8dd2 64 break;
inovak1 0:1b66f1ca8dd2 65 case 7: {
inovak1 0:1b66f1ca8dd2 66 _FAZ1=1;
inovak1 0:1b66f1ca8dd2 67 _FAZ2=0;
inovak1 0:1b66f1ca8dd2 68 _FAZ3=0;
inovak1 0:1b66f1ca8dd2 69 _FAZ4=1;
inovak1 0:1b66f1ca8dd2 70 }
inovak1 0:1b66f1ca8dd2 71 break;
inovak1 0:1b66f1ca8dd2 72 }
inovak1 0:1b66f1ca8dd2 73
inovak1 0:1b66f1ca8dd2 74
inovak1 0:1b66f1ca8dd2 75 wait_us(motorbrzina); // VRIJEME CEKANJA DEFINIRA BRZINU OKRETANJA MOTORA
inovak1 0:1b66f1ca8dd2 76 }
inovak1 0:1b66f1ca8dd2 77 }
inovak1 0:1b66f1ca8dd2 78
inovak1 0:1b66f1ca8dd2 79 void uStep::skz() // ROTIRAJ MOTOR JEDNOM U SMJERU KAZALJKE NA SATU
inovak1 0:1b66f1ca8dd2 80 {
inovak1 0:1b66f1ca8dd2 81 for (int i = 0; i <= 7; i++) {
inovak1 0:1b66f1ca8dd2 82
inovak1 0:1b66f1ca8dd2 83 switch (i) {
inovak1 0:1b66f1ca8dd2 84 case 0: {
inovak1 0:1b66f1ca8dd2 85 _FAZ1=1;
inovak1 0:1b66f1ca8dd2 86 _FAZ2=0;
inovak1 0:1b66f1ca8dd2 87 _FAZ3=0;
inovak1 0:1b66f1ca8dd2 88 _FAZ4=1;
inovak1 0:1b66f1ca8dd2 89 }
inovak1 0:1b66f1ca8dd2 90 break;
inovak1 0:1b66f1ca8dd2 91 case 1: {
inovak1 0:1b66f1ca8dd2 92 _FAZ1=1;
inovak1 0:1b66f1ca8dd2 93 _FAZ2=0;
inovak1 0:1b66f1ca8dd2 94 _FAZ3=0;
inovak1 0:1b66f1ca8dd2 95 _FAZ4=0;
inovak1 0:1b66f1ca8dd2 96 }
inovak1 0:1b66f1ca8dd2 97 break;
inovak1 0:1b66f1ca8dd2 98 case 2: {
inovak1 0:1b66f1ca8dd2 99 _FAZ1=1;
inovak1 0:1b66f1ca8dd2 100 _FAZ2=1;
inovak1 0:1b66f1ca8dd2 101 _FAZ3=0;
inovak1 0:1b66f1ca8dd2 102 _FAZ4=0;
inovak1 0:1b66f1ca8dd2 103 }
inovak1 0:1b66f1ca8dd2 104 break;
inovak1 0:1b66f1ca8dd2 105 case 3: {
inovak1 0:1b66f1ca8dd2 106 _FAZ1=0;
inovak1 0:1b66f1ca8dd2 107 _FAZ2=1;
inovak1 0:1b66f1ca8dd2 108 _FAZ3=0;
inovak1 0:1b66f1ca8dd2 109 _FAZ4=0;
inovak1 0:1b66f1ca8dd2 110 }
inovak1 0:1b66f1ca8dd2 111 break;
inovak1 0:1b66f1ca8dd2 112 case 4: {
inovak1 0:1b66f1ca8dd2 113 _FAZ1=0;
inovak1 0:1b66f1ca8dd2 114 _FAZ2=1;
inovak1 0:1b66f1ca8dd2 115 _FAZ3=1;
inovak1 0:1b66f1ca8dd2 116 _FAZ4=0;
inovak1 0:1b66f1ca8dd2 117 }
inovak1 0:1b66f1ca8dd2 118 break;
inovak1 0:1b66f1ca8dd2 119 case 5: {
inovak1 0:1b66f1ca8dd2 120 _FAZ1=0;
inovak1 0:1b66f1ca8dd2 121 _FAZ2=0;
inovak1 0:1b66f1ca8dd2 122 _FAZ3=1;
inovak1 0:1b66f1ca8dd2 123 _FAZ4=0;
inovak1 0:1b66f1ca8dd2 124 }
inovak1 0:1b66f1ca8dd2 125 break;
inovak1 0:1b66f1ca8dd2 126 case 6: {
inovak1 0:1b66f1ca8dd2 127 _FAZ1=0;
inovak1 0:1b66f1ca8dd2 128 _FAZ2=0;
inovak1 0:1b66f1ca8dd2 129 _FAZ3=1;
inovak1 0:1b66f1ca8dd2 130 _FAZ4=1;
inovak1 0:1b66f1ca8dd2 131 }
inovak1 0:1b66f1ca8dd2 132 break;
inovak1 0:1b66f1ca8dd2 133 case 7: {
inovak1 0:1b66f1ca8dd2 134 _FAZ1=0;
inovak1 0:1b66f1ca8dd2 135 _FAZ2=0;
inovak1 0:1b66f1ca8dd2 136 _FAZ3=0;
inovak1 0:1b66f1ca8dd2 137 _FAZ4=1;
inovak1 0:1b66f1ca8dd2 138 }
inovak1 0:1b66f1ca8dd2 139 break;
inovak1 0:1b66f1ca8dd2 140 }
inovak1 0:1b66f1ca8dd2 141
inovak1 0:1b66f1ca8dd2 142
inovak1 0:1b66f1ca8dd2 143 wait_us(motorbrzina); // VRIJEME CEKANJA DEFINIRA BRZINU OKRETANJA MOTORA
inovak1 0:1b66f1ca8dd2 144 }
inovak1 0:1b66f1ca8dd2 145 }
inovak1 0:1b66f1ca8dd2 146 void uStep::step(int koraci, int smjer, int brzina) // FUNKCIJA STEP MOTORA (BROJ KORAKA, SMJER VRTNJE, BRZINA VRTNJE)
inovak1 0:1b66f1ca8dd2 147 {
inovak1 0:1b66f1ca8dd2 148 int count=0; // INICIJALIZCIJA BROJACA KORAKA
inovak1 0:1b66f1ca8dd2 149 motorbrzina=brzina; //POSTAVLJANJE BRZINE MOTORA
inovak1 0:1b66f1ca8dd2 150 if (smjer==0) // OKRETANJE U SMJERU KAZALJKE NA SATU
inovak1 0:1b66f1ca8dd2 151 do {
inovak1 0:1b66f1ca8dd2 152 skz();
inovak1 0:1b66f1ca8dd2 153 count++;
inovak1 0:1b66f1ca8dd2 154 } while (count<koraci); // turn number of steps applied
inovak1 0:1b66f1ca8dd2 155 else if (smjer==1)// OKRETANJE OBRNUTO OD KAZALJKE NA SATU
inovak1 0:1b66f1ca8dd2 156 do {
inovak1 0:1b66f1ca8dd2 157 ooskz();
inovak1 0:1b66f1ca8dd2 158 count++;
inovak1 0:1b66f1ca8dd2 159 } while (count<koraci);// IZVODI ODABRANI BROJ KORAKA
inovak1 0:1b66f1ca8dd2 160
inovak1 0:1b66f1ca8dd2 161 }