Seminarski rad na temu brzinomjera za bicikl. Tipkalom na ploćici se simulira rad magnetne sklopke koja detektira okretanje kotača, te se mjerenjem vremena između svakog impulsa sklopke i podatkom opsega kotača računa brzina. Podatak o brzini se ispisuje na računalu u terminalu Tera Term.
Dependencies: mbed
main.cpp
- Committer:
- markowirnsberger
- Date:
- 2021-05-07
- Revision:
- 0:aac2e8a1b6e1
File content as of revision 0:aac2e8a1b6e1:
#include "mbed.h" Serial pc(USBTX, USBRX); //Deklariranje USB serijske komunikacije DigitalIn button1(PC_13); //Deklariranje pina PC_13 (ujedno i tipkalo na ploćici) kao digitalni ulaz DigitalOut led1(PA_5); //Deklariranje pina PA_5 (ujedno i LED dioda na ploćici) kao digitalni izlaz Timer broji; //Deklariranje timera "broji" Ticker sekunda; //Deklariranje tickera "sekunda" float t=0; //Deklariranje varijable za vrijeme "t" i dodjeljivanje vrijednosti 0 sekunda float v=0; //Deklariranje varijable za brzinu "v" i dodjeljivanje vrijednosti 0 km/h float o=2; //Deklariranje konstante za opseg kotača "o" i dodjeljivanje vrijednosti 2 metra bool prije=0; //Deklariranje varijable za stanje tipkala "prije" i dodjeljivanje vrijednosti 0 void prikaz() //funkcija "prikaz" koja izračunava i prikazuje podatak o brzini { // pc.printf("%f \t",t); v=(o/t)*3.6*1000; //računanje brzine pc.printf("%.1f km/h \n\r",v); //ispisivanje brzine } int main() //glavna funkcija { broji.start(); //pokretanje timera "broji" sekunda.attach(&prikaz, 0.2); //pokretanje tickera "sekunda" i pokretanje funkcije "prikaz" while(1) { //beskonačna petlja if((button1==0)&&(prije==0)&&(broji.read_ms()>50)) { //ako je pritisnuta tipka I stanje varijebale "prije" je 0 I timer "broji" je odbrojao više od 50ms, onda se... t=broji.read_ms(); //...u varijablu "t" će se upisati vrijeme brojila "broji"... broji.reset(); //...brojilo će se resetirati... prije=1; //...varijabla "prije" če se postaviti u vrijednost 1... led1=!led1; //...stanje LED diode će se invertirati } if(button1==1) { //ako tipkalo nije pritisnuto... prije=0; //...vrijednost varijable "prije" se postavlja u vrijednost 0 } } }