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@0:b0a083935928, 2021-03-01 (annotated)
- Committer:
- fsamardzi
- Date:
- Mon Mar 01 17:58:32 2021 +0000
- Revision:
- 0:b0a083935928
123
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| fsamardzi | 0:b0a083935928 | 1 | #include "mbed.h" |
| fsamardzi | 0:b0a083935928 | 2 | #include "TextLCD.h" |
| fsamardzi | 0:b0a083935928 | 3 | |
| fsamardzi | 0:b0a083935928 | 4 | InterruptIn Tipkalo(PB_3); //Tipkalo za uključivanje i iskjučivanje sustava |
| fsamardzi | 0:b0a083935928 | 5 | DigitalOut Stanje_Sustava(PA_10); //Crvena LED-ica koja svijetli kada je sustav uključen |
| fsamardzi | 0:b0a083935928 | 6 | DigitalOut Motor_U_Radu(PA_7); //Zelena LED-ica koja svijetli kada je motor u radu |
| fsamardzi | 0:b0a083935928 | 7 | PwmOut Pokreni_Motor(PA_6); //PWM izlaz kojim reguliramo brzinu vrtnje motora |
| fsamardzi | 0:b0a083935928 | 8 | |
| fsamardzi | 0:b0a083935928 | 9 | Timer Debounce_Timer; //Timer za debounce tipkala |
| fsamardzi | 0:b0a083935928 | 10 | Ticker Refresh; //Ticker koji poziva funkciju za signalizaciju |
| fsamardzi | 0:b0a083935928 | 11 | |
| fsamardzi | 0:b0a083935928 | 12 | TextLCD lcd(PB_4, PB_10, PA_8, PA_9, PC_7, PB_6); //Inicijalizacija LCD-a |
| fsamardzi | 0:b0a083935928 | 13 | Serial pc(USBTX, USBRX); //Inicijalizacija serijske komunikacije sa PC-em |
| fsamardzi | 0:b0a083935928 | 14 | |
| fsamardzi | 0:b0a083935928 | 15 | void Ukljuci_Iskljuci_Sustav(void); |
| fsamardzi | 0:b0a083935928 | 16 | void Racunanje_Brzine_Motora(void); |
| fsamardzi | 0:b0a083935928 | 17 | void Signalizacija_Rada(void); |
| fsamardzi | 0:b0a083935928 | 18 | |
| fsamardzi | 0:b0a083935928 | 19 | float Brzina_Motora = 0.0; //Globalna varijabla brzine motora |
| fsamardzi | 0:b0a083935928 | 20 | |
| fsamardzi | 0:b0a083935928 | 21 | int main() { |
| fsamardzi | 0:b0a083935928 | 22 | |
| fsamardzi | 0:b0a083935928 | 23 | Tipkalo.mode(PullUp); |
| fsamardzi | 0:b0a083935928 | 24 | |
| fsamardzi | 0:b0a083935928 | 25 | Debounce_Timer.start(); |
| fsamardzi | 0:b0a083935928 | 26 | Tipkalo.fall(&Ukljuci_Iskljuci_Sustav); |
| fsamardzi | 0:b0a083935928 | 27 | Refresh.attach(&Signalizacija_Rada, 0.5); |
| fsamardzi | 0:b0a083935928 | 28 | |
| fsamardzi | 0:b0a083935928 | 29 | Pokreni_Motor.period(0.01); |
| fsamardzi | 0:b0a083935928 | 30 | Pokreni_Motor = 0.0; |
| fsamardzi | 0:b0a083935928 | 31 | |
| fsamardzi | 0:b0a083935928 | 32 | while(1){ |
| fsamardzi | 0:b0a083935928 | 33 | |
| fsamardzi | 0:b0a083935928 | 34 | Racunanje_Brzine_Motora(); |
| fsamardzi | 0:b0a083935928 | 35 | |
| fsamardzi | 0:b0a083935928 | 36 | if(Stanje_Sustava==1){ |
| fsamardzi | 0:b0a083935928 | 37 | Pokreni_Motor = Brzina_Motora; |
| fsamardzi | 0:b0a083935928 | 38 | } |
| fsamardzi | 0:b0a083935928 | 39 | |
| fsamardzi | 0:b0a083935928 | 40 | lcd.cls(); |
| fsamardzi | 0:b0a083935928 | 41 | lcd.printf("Brzina: %2.2f ", Brzina_Motora); |
| fsamardzi | 0:b0a083935928 | 42 | |
| fsamardzi | 0:b0a083935928 | 43 | } |
| fsamardzi | 0:b0a083935928 | 44 | } |
| fsamardzi | 0:b0a083935928 | 45 | |
| fsamardzi | 0:b0a083935928 | 46 | void Ukljuci_Iskljuci_Sustav() { |
| fsamardzi | 0:b0a083935928 | 47 | if (Debounce_Timer.read_ms()>200){ |
| fsamardzi | 0:b0a083935928 | 48 | Stanje_Sustava=!Stanje_Sustava; |
| fsamardzi | 0:b0a083935928 | 49 | Debounce_Timer.reset(); |
| fsamardzi | 0:b0a083935928 | 50 | |
| fsamardzi | 0:b0a083935928 | 51 | if(Stanje_Sustava==1){ |
| fsamardzi | 0:b0a083935928 | 52 | Pokreni_Motor = Brzina_Motora; |
| fsamardzi | 0:b0a083935928 | 53 | } |
| fsamardzi | 0:b0a083935928 | 54 | else{ |
| fsamardzi | 0:b0a083935928 | 55 | Pokreni_Motor = 0.0; |
| fsamardzi | 0:b0a083935928 | 56 | } |
| fsamardzi | 0:b0a083935928 | 57 | } |
| fsamardzi | 0:b0a083935928 | 58 | } |
| fsamardzi | 0:b0a083935928 | 59 | |
| fsamardzi | 0:b0a083935928 | 60 | void Racunanje_Brzine_Motora() { |
| fsamardzi | 0:b0a083935928 | 61 | char c = pc.getc(); |
| fsamardzi | 0:b0a083935928 | 62 | wait(0.001); |
| fsamardzi | 0:b0a083935928 | 63 | if((c == '+') && (Brzina_Motora < 1.0)) { |
| fsamardzi | 0:b0a083935928 | 64 | Brzina_Motora += 0.1; |
| fsamardzi | 0:b0a083935928 | 65 | } |
| fsamardzi | 0:b0a083935928 | 66 | if((c == '-') && (Brzina_Motora > 0.0)) { |
| fsamardzi | 0:b0a083935928 | 67 | Brzina_Motora -= 0.1; |
| fsamardzi | 0:b0a083935928 | 68 | } |
| fsamardzi | 0:b0a083935928 | 69 | } |
| fsamardzi | 0:b0a083935928 | 70 | |
| fsamardzi | 0:b0a083935928 | 71 | void Signalizacija_Rada() { |
| fsamardzi | 0:b0a083935928 | 72 | if(Pokreni_Motor > 0.0){ |
| fsamardzi | 0:b0a083935928 | 73 | Motor_U_Radu = 1; |
| fsamardzi | 0:b0a083935928 | 74 | } |
| fsamardzi | 0:b0a083935928 | 75 | else{ |
| fsamardzi | 0:b0a083935928 | 76 | Motor_U_Radu = 0; |
| fsamardzi | 0:b0a083935928 | 77 | } |
| fsamardzi | 0:b0a083935928 | 78 | } |