Armin, Kenan

Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
tim010
Date:
Mon May 12 16:01:59 2014 +0000
Commit message:
PAI_LV9_Grupa3_Tim010

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
motor.cpp Show annotated file Show diff for this revision Revisions of this file
motor.h Show annotated file Show diff for this revision Revisions of this file
diff -r 000000000000 -r 3b0e2caa6ad4 main.cpp
--- /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
diff -r 000000000000 -r 3b0e2caa6ad4 mbed.bld
--- /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
diff -r 000000000000 -r 3b0e2caa6ad4 motor.cpp
--- /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
diff -r 000000000000 -r 3b0e2caa6ad4 motor.h
--- /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