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

Files at this revision

API Documentation at this revision

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