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