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:
- 2020-02-11
- 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); } }