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.

PisanjeNaEkran.cpp

Committer:
mlucan
Date:
21 months ago
Revision:
0:a19b3eba5b1b

File content as of revision 0:a19b3eba5b1b:

#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);
    }

}