Proiectul are ca scop masurarea vitezei medii a obiectelor ce trec prin dreptul sau. Initial, voiam sa fac un dispozitiv pentru masurarea vitezei unei bari la sala (de exemplu pentru masurarea vitezei unei genuflexiuni) insa Arduino nu este chiar potrivit pentru asta, din cauza dimensiunii sale.
Cred ca este util in special pentru cei mici (sa vada viteza unei mingi sau a unei masini de jucarie si sa devina, poate, atrasi de inginerie).
Obiectul trece prin dreptul becurilor cu infrarosu si astfel cunoastem timpii la care acesta a trecut. Scazand aceasta viteza si impartind la distanta dintre LED-uri putem afla viteza medie a obiectului ce va fi afisata pe LCD.
Lista de piese:
Codul este destul de simplu. In setup se configureaza pinii si se afiseaza un mesaj simplu pe LCD (SPEED TEST urmat de timpii si viteza necompletate). Se aprinde apoi LED-ul verde ce semnifica faptul ca Speedster este gata pentru a masura viteza.
In loop astept ca primul PIN IR(pin-ul 4 pentru mine) sa treaca in LOW si culeg timpul in ms. Asemanator se procedeaza si pentru cel de-al doilea pin. Apoi, tot ce ramane de facut este o scadere si o impartire, urmand afisarea rezultatelor si reinitializarea LCD-ului.
Nu am folosit intreruperi, deoarece in interiorul acestora millis nu functioneaza corect, mai multe aici.
Cu siguranta modulul ar fi mai bun daca in locul LED-urilor cu IR si al receptorilor as fi folosit bariere cu infrarosu sau chiar laser. Cu toate acestea, modulul este suficient de reliable, iata un demo.
Arhiva ce contine codul se afla aici. Nu uitati ca este nevoie de biblioteca LiquidCrystal-I2C.
Gherghe Andrei-Ionut 333CC