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
Revision 0:aac2e8a1b6e1, committed 2021-05-07
- Comitter:
- markowirnsberger
- Date:
- Fri May 07 08:11:51 2021 +0000
- Commit message:
- Brzinomjer za bicikl v0.1
Changed in this revision
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
mbed.bld | Show annotated file Show diff for this revision Revisions of this file |
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Fri May 07 08:11:51 2021 +0000 @@ -0,0 +1,34 @@ +#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 + } + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Fri May 07 08:11:51 2021 +0000 @@ -0,0 +1,1 @@ +https://os.mbed.com/users/mbed_official/code/mbed/builds/65be27845400 \ No newline at end of file