Program opisuje signalizaciju otvaranja garaznih vrata. Kada su vrata zatvorena svjetli crvena ledica, na pritisak tipkala pokreće se otvaranje vrata. signalizacija otvaranja vrata je titrajuća zuta ledica i zvuk iz buzzera. Kada su vrata otvorena svjetli zelena ledica.
Dependencies: Piezo_zvucnik
main.cpp@0:054375111414, 2021-12-09 (annotated)
- Committer:
- dgerin
- Date:
- Thu Dec 09 07:52:53 2021 +0000
- Revision:
- 0:054375111414
Konstrukcijski zadatak
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
dgerin | 0:054375111414 | 1 | #include "mbed.h" |
dgerin | 0:054375111414 | 2 | #include "buzzer.h" |
dgerin | 0:054375111414 | 3 | |
dgerin | 0:054375111414 | 4 | Beep buzzer(A3); //pin A3 za buzzer |
dgerin | 0:054375111414 | 5 | |
dgerin | 0:054375111414 | 6 | DigitalOut crvena(A0); //inicijalizacija crvene led lampice |
dgerin | 0:054375111414 | 7 | DigitalOut zuta(A1); //inicijalizacija zute led lampice |
dgerin | 0:054375111414 | 8 | DigitalOut zelena(A2); //inicijalizacija zelene led lampice |
dgerin | 0:054375111414 | 9 | DigitalOut LED(LED2); //inicijalizacija integrirane led lampice |
dgerin | 0:054375111414 | 10 | |
dgerin | 0:054375111414 | 11 | |
dgerin | 0:054375111414 | 12 | InterruptIn daljinski(USER_BUTTON); //inicijalizacija tipkala |
dgerin | 0:054375111414 | 13 | |
dgerin | 0:054375111414 | 14 | |
dgerin | 0:054375111414 | 15 | Timer debounce; //inicijalizacija debounce timera |
dgerin | 0:054375111414 | 16 | Timer odbrojavanje; //inicijalizacija timera |
dgerin | 0:054375111414 | 17 | Ticker tick; //inicijalizacija tickera |
dgerin | 0:054375111414 | 18 | float freq = 850; //frekvencija zvuka |
dgerin | 0:054375111414 | 19 | |
dgerin | 0:054375111414 | 20 | void klik (void); //inicijalizacija funkcije |
dgerin | 0:054375111414 | 21 | void otvaranje (void); //inicijalizacija funkcije |
dgerin | 0:054375111414 | 22 | void prekid(void); //inicijalizacija funkcije |
dgerin | 0:054375111414 | 23 | |
dgerin | 0:054375111414 | 24 | int main() |
dgerin | 0:054375111414 | 25 | { |
dgerin | 0:054375111414 | 26 | crvena = 1; //vrata zatvorena |
dgerin | 0:054375111414 | 27 | |
dgerin | 0:054375111414 | 28 | debounce.start(); |
dgerin | 0:054375111414 | 29 | daljinski.rise(&klik); //hardverski interupt |
dgerin | 0:054375111414 | 30 | while (1) { |
dgerin | 0:054375111414 | 31 | |
dgerin | 0:054375111414 | 32 | if (odbrojavanje.read() < 10) { //postavljanje vremenskog uvjeta |
dgerin | 0:054375111414 | 33 | |
dgerin | 0:054375111414 | 34 | if (LED == 0) { //uvjet provjere stanja integrirane ledice |
dgerin | 0:054375111414 | 35 | tick.attach(&otvaranje,1); //pozivanje funkcije otvaranje pomoću tickera |
dgerin | 0:054375111414 | 36 | } |
dgerin | 0:054375111414 | 37 | } |
dgerin | 0:054375111414 | 38 | |
dgerin | 0:054375111414 | 39 | if (odbrojavanje.read() > 10) { //postavljanje vremenskog uvjeta |
dgerin | 0:054375111414 | 40 | zelena = 1; //vrata otvorena |
dgerin | 0:054375111414 | 41 | } |
dgerin | 0:054375111414 | 42 | } |
dgerin | 0:054375111414 | 43 | } |
dgerin | 0:054375111414 | 44 | |
dgerin | 0:054375111414 | 45 | |
dgerin | 0:054375111414 | 46 | |
dgerin | 0:054375111414 | 47 | void klik(void) //funkcija za debounce i mijenjanje stanja integrirane ledice |
dgerin | 0:054375111414 | 48 | { |
dgerin | 0:054375111414 | 49 | if (debounce.read_ms()>200) { |
dgerin | 0:054375111414 | 50 | crvena = 0; |
dgerin | 0:054375111414 | 51 | zelena = 0; |
dgerin | 0:054375111414 | 52 | LED=!LED; //promjena stanja integrirane ledice |
dgerin | 0:054375111414 | 53 | odbrojavanje.start(); |
dgerin | 0:054375111414 | 54 | debounce.reset(); |
dgerin | 0:054375111414 | 55 | } |
dgerin | 0:054375111414 | 56 | } |
dgerin | 0:054375111414 | 57 | |
dgerin | 0:054375111414 | 58 | void otvaranje(void) //funkcija za signalizaciju promjenom stanja zute ledice i pokretanje buzzera |
dgerin | 0:054375111414 | 59 | { |
dgerin | 0:054375111414 | 60 | crvena = 0; |
dgerin | 0:054375111414 | 61 | zuta = !zuta; //promjena stanja zute ledice |
dgerin | 0:054375111414 | 62 | buzzer.beep(freq,0.5); //frekvencija melodije i trajanje melodije |
dgerin | 0:054375111414 | 63 | if (odbrojavanje.read() > 10) { //uvjet za deaktivaciju zute ledice i buzzera |
dgerin | 0:054375111414 | 64 | zuta = 0; |
dgerin | 0:054375111414 | 65 | buzzer.nobeep(); |
dgerin | 0:054375111414 | 66 | } |
dgerin | 0:054375111414 | 67 | } |