Documente Academic
Documente Profesional
Documente Cultură
Attribution-NonCommercial-NoDerivs CC BY-NC-ND
Esti liber sa distribui acest document prin orice mijloace consideri (email, publicare pe website / blog, printare, sau orice alt mijloc), atat timp cat nu aduci nici un fel de modificari acestuia. Codul sursa din acest document poate fi utilizat in orice fel de scop, de natura comerciala sau nu, fara nici un fel de limitari.
Cronometru cu Arduino
In acest tutorial vei descoperi cum se poate construi un cronometru simplu care poate masura perioada de timp cuprinsa intre 2 evenimente. Cronometrul nostru va utiliza un senzor de distanta Sharp ca declansator. Daca un obiect trece prin fata senzorului suficient de aproape, atunci cronometrul este declansat. Daca acelasi obiect trece din nou prin fata senzorului, atunci cronometrul este oprit. Timpul cronometrat este afisat in Monitorul Serial. Cu acest cronometru poti masura timpi de ordinul minutelor, secundelor sau chiar milisecundelor. Ca idee, poti folosi cronometrul pentru a masura timpii robotilor urmaritori de linie. ei avea nevoie de urmatoarele componente! " placa #rduino $ http!%%&&&.robofun.ro%arduino 'n senzor de distanta Sharp http!%%&&&.robofun.ro%senzori%infrarosu%senzor(sharp()2*+,2D-2*./**0 'n cablu senzor 1 fire $ http!%%&&&.robofun.ro%cablu(senzor(1(fire(-2(2(cm
http://www.robofun.ro/forum
Codul sursa.
#cum este momentul sa incarci s4etch$ul in placa #rduino. Copiaza codul sursa de mai 3os 5cop6%paste7 si deschide Monitorul Serial. Modul de functionare al cronometrului este simplu. ,laca #rduino citeste in mod constant valoarea senzorului de distanta. Daca valoarea s$a incadrat in pragul presetat din s4etch, atunci cronometrul s$a declansat. Cu alte cuvinte, daca senzorul a detectat 5sa presupunem7 un robot, atunci placa #rduino incepe cronometrarea. Daca acelasi robot trece din nou prin fata senzorului, atunci placa #rduino opreste cronometrarea si o afiseaza pe Monitorul Serial. Iata un exemplu!
http://www.robofun.ro/forum
unsigned long start, finished, elapsed; int IRpin = 0; boolean stareSenzor = false; oid setup!" # Serial$begin!%&00"; Serial$println!'(rono)etru'"; * oid displa+Result!" # float h, ), s, )s; unsigned long o er; elapsed = finished , start; h = int!elapsed - .&00000"; o er = elapsed / .&00000; ) = int!o er - &0000"; o er = o er / &0000; s = int!o er - 0000"; )s = o er / 0000; Serial$print!'1i)p brut2 '"; Serial$println!elapsed"; Serial$print!'1i)p s3urs2 '"; Serial$print!h, 0"; Serial$print!'h '"; Serial$print!), 0";
http://www.robofun.ro/forum
Serial$print!') '"; Serial$print!s, 0"; Serial$print!'s '"; Serial$print!)s, 0"; Serial$println!')s'"; Serial$println!"; * oid loop!" # int pragSenzor = .00; if !analogRead!IRpin" 4 pragSenzor 55 stareSenzor == false" # dela+!500"; stareSenzor = true; start = )illis!"; Serial$println!'Start$$$'"; * if !analogRead!IRpin" 4 pragSenzor 55 stareSenzor == true" # stareSenzor = false; finished = )illis!"; dela+!0000"; displa+Result!"; * *
http://www.robofun.ro/forum