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
- Committer:
- inovak1
- Date:
- 2017-01-04
- Revision:
- 0:b6a7b972fbee
File content as of revision 0:b6a7b972fbee:
#include "uStep.h"
#include "mbed.h"
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
}