Programskim kodom se upravlja maketom malog DC motora koji je spojen na inkrementalni enkoder. Sa inkrementalnog enkodera se čitaju dvije faze impulsa pomoću kojih se računa brzina vrtnje iz impusla u vrenenu i smjer vrtnje iz odnosa stanja faza enkodera. Popunjenost PWM-a se zadaje potenciometrom a promjena smjera i pokretanje je se upravlja tipkalima.

Revision:
0:a19b3eba5b1b
diff -r 000000000000 -r a19b3eba5b1b PisanjeNaEkran.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/PisanjeNaEkran.cpp	Tue Feb 11 09:55:03 2020 +0000
@@ -0,0 +1,57 @@
+#include "PisanjeNaEkran.h"
+#include "mbed.h"
+#include "CriusOLED.h"
+
+
+PisanjeNaEkran::PisanjeNaEkran(PinName pin) :ain(pin)
+{
+    i2c.frequency(40000);
+    init_OLED();
+    displayOn();
+    reset_display();
+};
+
+void PisanjeNaEkran::ekran(int brzina_1, int brzina_2, int frekvencija, bool smjer, bool smot)
+{
+    char buf[9];
+    char brz1[9];
+    char brz2[9];
+    char frekv[9];
+    float dataAI;
+
+    dataAI=ain*100;
+    sprintf(buf, "%.2f ", dataAI);
+    sprintf(brz1, "%drpm ", brzina_1);
+    sprintf(brz2, "%drpm ", brzina_2);
+    sprintf(frekv, "%dHz  ", frekvencija);
+
+    sendStrXY( buf,0,0);
+    if(smjer==0) {
+        sendStrXY( "ljevo",1,0);
+    } else {
+        sendStrXY( "desno",1,0);
+    }
+
+    if(brzina_1==0) {
+        sendStrXY( "0rpm   ",2,0);
+    } else {
+        sendStrXY( brz1,2,0);
+    }
+    if(brzina_2==0) {
+        sendStrXY( "0rpm   ",3,0);
+    } else {
+        sendStrXY( brz2,3,0);
+    }
+    if(frekvencija==0) {
+        sendStrXY( "0Hz    ",4,0);
+    } else {
+        sendStrXY( frekv,4,0);
+    }
+
+    if(smot==0) {
+        sendStrXY( "ljevo",5,0);
+    } else {
+        sendStrXY( "desno  ",5,0);
+    }
+
+}