Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: TextLCD
main.cpp
00001 #include "mbed.h" 00002 #include "TextLCD.h" 00003 00004 InterruptIn Tipkalo(PB_3); //Tipkalo za uključivanje i iskjučivanje sustava 00005 DigitalOut Stanje_Sustava(PA_10); //Crvena LED-ica koja svijetli kada je sustav uključen 00006 DigitalOut Motor_U_Radu(PA_7); //Zelena LED-ica koja svijetli kada je motor u radu 00007 PwmOut Pokreni_Motor(PA_6); //PWM izlaz kojim reguliramo brzinu vrtnje motora 00008 00009 Timer Debounce_Timer; //Timer za debounce tipkala 00010 Ticker Refresh; //Ticker koji poziva funkciju za signalizaciju 00011 00012 TextLCD lcd(PB_4, PB_10, PA_8, PA_9, PC_7, PB_6); //Inicijalizacija LCD-a 00013 Serial pc(USBTX, USBRX); //Inicijalizacija serijske komunikacije sa PC-em 00014 00015 void Ukljuci_Iskljuci_Sustav(void); 00016 void Racunanje_Brzine_Motora(void); 00017 void Signalizacija_Rada(void); 00018 00019 float Brzina_Motora = 0.0; //Globalna varijabla brzine motora 00020 00021 int main() { 00022 00023 Tipkalo.mode(PullUp); 00024 00025 Debounce_Timer.start(); 00026 Tipkalo.fall(&Ukljuci_Iskljuci_Sustav); 00027 Refresh.attach(&Signalizacija_Rada, 0.5); 00028 00029 Pokreni_Motor.period(0.01); 00030 Pokreni_Motor = 0.0; 00031 00032 while(1){ 00033 00034 Racunanje_Brzine_Motora(); 00035 00036 if(Stanje_Sustava==1){ 00037 Pokreni_Motor = Brzina_Motora; 00038 } 00039 00040 lcd.cls(); 00041 lcd.printf("Brzina: %2.2f ", Brzina_Motora); 00042 00043 } 00044 } 00045 00046 void Ukljuci_Iskljuci_Sustav() { 00047 if (Debounce_Timer.read_ms()>200){ 00048 Stanje_Sustava=!Stanje_Sustava; 00049 Debounce_Timer.reset(); 00050 00051 if(Stanje_Sustava==1){ 00052 Pokreni_Motor = Brzina_Motora; 00053 } 00054 else{ 00055 Pokreni_Motor = 0.0; 00056 } 00057 } 00058 } 00059 00060 void Racunanje_Brzine_Motora() { 00061 char c = pc.getc(); 00062 wait(0.001); 00063 if((c == '+') && (Brzina_Motora < 1.0)) { 00064 Brzina_Motora += 0.1; 00065 } 00066 if((c == '-') && (Brzina_Motora > 0.0)) { 00067 Brzina_Motora -= 0.1; 00068 } 00069 } 00070 00071 void Signalizacija_Rada() { 00072 if(Pokreni_Motor > 0.0){ 00073 Motor_U_Radu = 1; 00074 } 00075 else{ 00076 Motor_U_Radu = 0; 00077 } 00078 }
Generated on Sat Aug 13 2022 16:54:04 by
1.7.2