![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Armin, Kenan
Revision 0:3b0e2caa6ad4, committed 2014-05-12
- Comitter:
- tim010
- Date:
- Mon May 12 16:01:59 2014 +0000
- Commit message:
- PAI_LV9_Grupa3_Tim010
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Mon May 12 16:01:59 2014 +0000 @@ -0,0 +1,77 @@ +#include "mbed.h" +#include "motor.h" + +Serial pc(USBTX, USBRX); +motor mt(dp13, dp11, dp10, dp9); +Ticker tick; + +int brzina = 1200 ; // set default motor speed +int brojKoraka = 512 ; + +void komunikacija() { + char c = pc.getc(); + while (c != '0' && c != '1' && c != '2' && c != '3' && c != '4' && c!='5') + c = pc.getc(); + pc.printf("Char %c\n", c); + if (c=='1') + mt.korak(brojKoraka,0,brzina); // number of steps, direction, speed + + if (c=='2') + mt.korak(brojKoraka,1,brzina); + + if (c=='3') + mt.korak(brojKoraka/2,0,brzina); + + if (c=='4') + mt.korak(brojKoraka/2,1,brzina); + + if (c=='5') { + pc.printf("Current Speed: %d\n\r", brzina); + pc.printf("New speed: \n\r"); + pc.scanf("%d",&brzina); // sets new speed + } +} + +int main() { + // Screen Menu + pc.printf("Osnovna brzina: %d\n\r",brzina); + pc.printf("1- 360 stepeni naprijed\n\r"); + pc.printf("2- 360 stepeni nazad\n\r"); + pc.printf("3- 180 stepeni naprijed\n\r"); + pc.printf("4- 180 stepeni nazad\n\r"); + pc.printf("5- Promijeni brzinu\n\r"); + //pc.attach(&komunikacija); + + while(1) { + char c = pc.getc(); + //while (c != 'a' && c != 'b' && c != 'c' && c != 'd' && c != 'e' && c!='f') + //c = pc.getc(); + //pc.printf("Char %c\n", c); + if (c=='a') + mt.korak(brojKoraka,0,brzina); // number of steps, direction, speed + + if (c=='b') + mt.korak(brojKoraka,1,brzina); + + if (c=='d') + mt.korak(brojKoraka/2,0,brzina); + + if (c=='e') + mt.korak(brojKoraka/2,1,brzina); + + if (c=='f') { + pc.printf("Current Speed: %d\n\r", brzina); + pc.printf("New speed: \n\r"); + pc.scanf("%d",&brzina); // sets new speed + } + if (c=='g') { + pc.printf("\nStepeni: "); + float stepeni(0); + pc.scanf("%f", &stepeni); + float temp(stepeni/5.625); + mt.korak(brojKoraka/(64/temp),0,brzina); + } + } + + +} \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Mon May 12 16:01:59 2014 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/mbed/builds/8a40adfe8776 \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/motor.cpp Mon May 12 16:01:59 2014 +0000 @@ -0,0 +1,62 @@ +#include "motor.h" +#include "mbed.h" + +int brzinaMotora; // Steper speed + +motor::motor(PinName A0, PinName A1, PinName A2, PinName A3) : _A0(A0), _A1(A1), _A2(A2), _A3(A3) { // Defenition of motor pins + _A0=0; _A1=0; _A2=0; _A3=0; +} + +void motor::postaviPinove(int vr) { + switch (vr) { + case 0: { _A0=0; _A1=0; _A2=0; _A3=1; } + break; + case 1: { _A0=0; _A1=0; _A2=1; _A3=1; } + break; + case 2: { _A0=0; _A1=0; _A2=1; _A3=0; } + break; + case 3: { _A0=0; _A1=1; _A2=1; _A3=0; } + break; + case 4: { _A0=0; _A1=1; _A2=0; _A3=0; } + break; + case 5: { _A0=1; _A1=1; _A2=0; _A3=0; } + break; + case 6: { _A0=1; _A1=0; _A2=0; _A3=0; } + break; + case 7: { _A0=1; _A1=0; _A2=0; _A3=1; } + break; + } + wait_us(brzinaMotora); // wait time defines the speed + } + +void motor::binarniBrojac(bool nazad) { + if (nazad) + for (int i = 7; i >= 0; i--) + postaviPinove(i); + + if (!nazad) + for (int i = 0; i <= 7; i++) + postaviPinove(i); +} + +void motor::nazad() { // rotate the motor 1 step anticlockwise + binarniBrojac(true); +} + +void motor::naprijed() { // rotate the motor 1 step clockwise + binarniBrojac(false); +} +void motor::korak(float broj_koraka, int smjer, int brzina) {// steper function: number of steps, direction (0- right, 1- left), speed (default 1200) + int count=0; // initalize step count + brzinaMotora=brzina; //set motor speed + if (smjer==0) // turn clockwise + do { + naprijed(); + count++; + } while (count<broj_koraka); // turn number of steps applied + else if (smjer==1)// turn anticlockwise + do { + nazad(); + count++; + } while (count<broj_koraka);// turn number of steps applied +} \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/motor.h Mon May 12 16:01:59 2014 +0000 @@ -0,0 +1,26 @@ +#ifndef MBED_MOTOR_H +#define MBED_MOTOR_H + +#include "mbed.h" + +class motor { +public: + + motor(PinName A0, PinName A1, PinName A2, PinName A3); //konstruktor + + void korak(float broj_koraka, int smjer, int brzina); + void naprijed(); + void nazad(); + void binarniBrojac(bool nazad); + void postaviPinove(int vr); + +private: + + DigitalOut _A0; + DigitalOut _A1; + DigitalOut _A2; + DigitalOut _A3; + +}; + +#endif \ No newline at end of file