Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
uStep.cpp@0:1b66f1ca8dd2, 2017-01-09 (annotated)
- Committer:
- inovak1
- Date:
- Mon Jan 09 14:11:31 2017 +0000
- Revision:
- 0:1b66f1ca8dd2
a
Who changed what in which revision?
| User | Revision | Line number | New 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 | } |