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

Committer:
dgerin
Date:
Thu Dec 09 07:52:53 2021 +0000
Revision:
0:054375111414
Konstrukcijski zadatak

Who changed what in which revision?

UserRevisionLine numberNew 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 }