PURS_ZI_010
Diff: Temperatura.cpp
- Revision:
- 0:c1c396a29e74
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Temperatura.cpp Thu Feb 02 14:11:44 2017 +0000 @@ -0,0 +1,54 @@ +#include "mbed.h" +#include "Temperatura.h" +#include "C12832.h" + +Temperatura::Temperatura(PinName tipkaloPin, PinName senzorPin, PinName zvucnikPin) : tipkalo(tipkaloPin), senzor(senzorPin), zvucnik(zvucnikPin), lcd(p5, p7, p6, p8, p11) { + debounce.start(); + lcd.cls(); + lcd.locate(0,3); + lcd.printf("Mjerenje se moze pokrenuti..."); + mjerenjePokrenuto = ukljucenZvucnik = false; + zvucnik.period(1.0f / 500); + tipkalo.rise(this, &Temperatura::startStopMjerenja); +} + +void Temperatura::startStopMjerenja() { + if(debounce.read_ms() > 20) { + if(!mjerenjePokrenuto) { + mjerenjePokrenuto = true; + ticker.attach(this, &Temperatura::mjeriIPrikazi, 0.5); + } else { + mjerenjePokrenuto = false; + ticker.detach(); + lcd.cls(); + lcd.locate(0,3); + lcd.printf("Mjerenje se moze pokrenuti..."); + } + debounce.reset(); + } +} + + +void Temperatura::mjeriIPrikazi() { + float temperatura = -25 + (75 - (-25)) / ((3-0.5f)/3.3f) * (senzor.read() - (0.5f/3.3f)); + lcd.cls(); + lcd.locate(0,3); + if (temperatura >= -25 && temperatura <= 75) { + lcd.printf("Temperatura: %5.1f °C", temperatura); + } else { + lcd.printf("Temperatura izvan mjernog opsega!"); + if (!ukljucenZvucnik) { + zvucnik = 0.5; + ukljucenZvucnik = true; + timeout.attach(this, &Temperatura::iskljuciZvucnik, 0.5); + } + } +} +void Temperatura::iskljuciZvucnik() { + zvucnik = 0; + ukljucenZvucnik = false; + /* tko se jos zeli igrati s trajanjem pauze izmedju zvucnih signala + * moze dodati jos jedan timeout objekt vezan na bool varijablu + * ukljucenZvucnik + */ +} \ No newline at end of file