Emrah Dautbegović Edis Kunić

Dependencies:   mbed sMotor

main.cpp

Committer:
tim008
Date:
2014-05-15
Revision:
0:d1b1742b324c

File content as of revision 0:d1b1742b324c:

#include "mbed.h"
#include "sMotor.h"
//motor.step(numstep,smjer,speed);
int smjer = 0;
bool radi = true;
Serial pc(USBTX, USBRX);
sMotor motor(dp9, dp10, dp11, dp13); // creates new stepper motor: IN1, IN2, IN3, IN4
int speed = 900 ; // set default motor speed
float numstep = 512 ; //broj koraka potrebnih da motor napravi ugao od 360 stepeni

void objasni() {
pc.printf("\n NAREDBE: "); 
pc.printf("\nA-postavi osovinu motora(0-360) stepeni");
pc.printf("\nB-promijeni smjer kretanja motora");
pc.printf("\nC-promijeni brzinu kretanja motora");   
pc.printf("\nD-pokreni/zaustavi motor");
}

char ocitajNaredbu() {
char naredba;
pc.printf("\nUnesi naredbu: ");
naredba=pc.getc();
while(naredba != 'A' && naredba != 'B' && naredba != 'C' && naredba != 'D') {
pc.printf("\nUnesi naredbu: ");
naredba=pc.getc();
}
return naredba;
}

void postaviUgaoOsovine() {
 int ugao;
 pc.printf("\nUnesi ugao(stepeni): ");
 pc.scanf("%d", &ugao);
 numstep = (int)((512./360.)*(ugao%360));
if(ugao>0){
 if(radi==true)
 motor.step(numstep,smjer,speed);   
 }
 else {
 smjer = 1-smjer;
 if(radi==true)
 motor.step(numstep,smjer,speed);
 }
}

void promijeniSmjer() {
smjer = 1-smjer;
if(radi==true)
motor.step(numstep,smjer,speed);    
}

void promijeniBrzinu() {
pc.printf("\nUnesi brzinu: ");
pc.scanf("%d", &speed);
if(radi==true)
motor.step(numstep,smjer,speed);
}

void pali_gasi() {
if(radi) pc.printf("\nMotor je upaljen i krece se brzinom %d.", speed);
else pc.printf("\nMotor je ugasen.");    
}

void startOrStop() {
if(radi == true) {
radi = false;
speed = 0;
}
else {
radi = true;
speed = 900;
}    
motor.step(numstep,smjer,speed);    
}

int main() {
    char naredba;
    motor.step(numstep,smjer,speed);
 while(1) {
    objasni();
    pali_gasi();
    naredba = ocitajNaredbu();
    if(naredba == 'A') postaviUgaoOsovine();
    else if(naredba == 'B') promijeniSmjer();
    else if(naredba == 'C') promijeniBrzinu();
    else if(naredba == 'D') startOrStop();
    wait(1);
    }   
}