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
- Committer:
- dgerin
- Date:
- 2021-12-09
- Revision:
- 1:31d5c6e076c0
- Parent:
- 0:054375111414
File content as of revision 1:31d5c6e076c0:
#include "mbed.h" #include "buzzer.h" Beep buzzer(A3); //pin A3 za buzzer DigitalOut crvena(A0); //inicijalizacija crvene led lampice DigitalOut zuta(A1); //inicijalizacija zute led lampice DigitalOut zelena(A2); //inicijalizacija zelene led lampice DigitalOut LED(LED2); //inicijalizacija integrirane led lampice InterruptIn daljinski(USER_BUTTON); //inicijalizacija tipkala Timer debounce; //inicijalizacija debounce timera Timer odbrojavanje; //inicijalizacija timera Ticker tick; //inicijalizacija tickera float freq = 850; //frekvencija zvuka void klik (void); //inicijalizacija funkcije void otvaranje (void); //inicijalizacija funkcije void prekid(void); //inicijalizacija funkcije int main() { crvena = 1; //vrata zatvorena debounce.start(); daljinski.rise(&klik); //hardverski interupt while (1) { if (odbrojavanje.read() < 10) { //postavljanje vremenskog uvjeta if (LED == 0) { //uvjet provjere stanja integrirane ledice tick.attach(&otvaranje,1); //pozivanje funkcije otvaranje pomoću tickera } } if (odbrojavanje.read() > 10) { //postavljanje vremenskog uvjeta zelena = 1; //vrata otvorena } } } void klik(void) //funkcija za debounce i mijenjanje stanja integrirane ledice { if (debounce.read_ms()>200) { crvena = 0; zelena = 0; LED=!LED; //promjena stanja integrirane ledice odbrojavanje.start(); debounce.reset(); } } void otvaranje(void) //funkcija za signalizaciju promjenom stanja zute ledice i pokretanje buzzera { crvena = 0; zuta = !zuta; //promjena stanja zute ledice buzzer.beep(freq,0.5); //frekvencija melodije i trajanje melodije if (odbrojavanje.read() > 10) { //uvjet za deaktivaciju zute ledice i buzzera zuta = 0; buzzer.nobeep(); } }