mbzz77 Postat Martie 8, 2016 Partajează Postat Martie 8, 2016 Salutare Sunt curios daca cineva a incercat sa foloseasca TIMER1 pentru masurarea lungimii unui impuls, folosind functia Gate control, disponibila in PIC16F887. Aceasta functie ar fi foarte utila in cazul unui senzor pentru masurarea distantei cu ultrasunete (HC-SR04). Eu am incercat cateva teste si am constatat, simuland in Real Pic Simulator, ca TIMER1 numara indiferent daca Gate este activata sau nu. Am gasit pe forumul Flowcode un program pentru HC-SR04, dar ei nu folosesc Gate control si astfel eroarea de masurare este ceva mai mare pentru ca intervin cateva cicluri masina necesare programului sa execute anumite instructiuni. (https://www.matrixtsl.com/mmforums/viewtopic.php?f=26&t=10694&hilit=tmr1+pulse) Link spre comentariu
Elison Postat Martie 9, 2016 Partajează Postat Martie 9, 2016 Pentru masurarea distantei cu HC-SR04 nu se determina lungimea unui impuls,se masoara durata de intoarcere a undei ultrasonice din momentul in care s-a dat un trigger.In simularea facuta de tine, ce sursa era setata pentru gate, din cele posibile(timer 1 gate pin,timer 0 overflow, comparator outputs) ? Bitul TMR1GE(timer 1 gate enable) din registrul de control al timerului 1, era 1?Poarta era in mod toogle sau single puls? Link spre comentariu
aureliu67 Postat Martie 9, 2016 Partajează Postat Martie 9, 2016 Sunt si eu interesat de realizarea acestui proiect insa la simulare imi da eroare din cauza ca nu stiu cum sa foloseste butonul ECHO. La simulare cand il apas nu face nimic. Link spre comentariu
Elison Postat Martie 9, 2016 Partajează Postat Martie 9, 2016 @aureliu67, in simularea din flowcode nu functioneaza pentru ca timer 1 nu poate sa contorizeze la viteza reala, in plus nici tu nu poti sa actionezi butonul cateva milisecunde.Viteza undei ultrasonice este egala cu aproximativ 340 m/s si este influentata de temperatura.Acel buton este pus ca sa simuleze faptul ca s-a detectat ecoul undei emise in momentul cand s-a dat trigger de 10 us.Daca vrei o simulare mai apropiata de realitate, o poti face in Proteus.Pe pinul de echo legi iesirea unui generator de semnal cu fregventa de ordinul sutelor de Hz si semnal dreptunghiular cu amplitudinea de 5V. Link spre comentariu
mbzz77 Postat Martie 9, 2016 Partajează Postat Martie 9, 2016 Pentru masurarea distantei cu HC-SR04 nu se determina lungimea unui impuls,se masoara durata de intoarcere a undei ultrasonice din momentul in care s-a dat un trigger.In simularea facuta de tine, ce sursa era setata pentru gate, din cele posibile(timer 1 gate pin,timer 0 overflow, comparator outputs) ? Bitul TMR1GE(timer 1 gate enable) din registrul de control al timerului 1, era 1?Poarta era in mod toogle sau single puls? Din ce am inteles eu se masoara durata impulsului pe pinul Echo, care este proportionala cu distanta. Iata un extras din datasheet: If a 10μs width trigger pulse is sent to the signal pin, the Ultrasonic module will output eight 40kHz ultrasonic signal and detect the echo back. The measured distance is proportional to the echo pulse width and can be calculated by the formula above. If no obstacle is detected, the output pin will give a 38ms high level signal. In fine.... pana ne decidem ce masuram sa vedem cum masuram. Ca sursa am selectat T1G pin, T1GSS (Timer1 Gate Source Select bit din registrul CM2CON1 ) = 1 . Indiferent cum am setat bitul TMR1GE, Timer 1 inceremnta. Pic 16F887 nu are modul togle sau single pulse. Link spre comentariu
aureliu67 Postat Martie 9, 2016 Partajează Postat Martie 9, 2016 (editat) Logic ar fi sa masoare timpul intre lansarea semnalului si receptionarea ecoului lui . 10μs este durata impulsului de generare a semnalului sonor (este mereu acelasi) care este lansat spre obstacole pentru a masura timpul de intoarcere a ecoului inapoi. Distanta se calculeaza impartind timpul obtinut la 2 (dus-intors) si inmultind rezultatul cu viteza sunetului. Astfel vad eu lucrurile, poate gresesc Editat Martie 9, 2016 de aureliu67 Link spre comentariu
Liviu M Postat Martie 9, 2016 Partajează Postat Martie 9, 2016 In data-sheet sunt chiar si poze, ne ajuta sa gresim mai putin... Link spre comentariu
mbzz77 Postat Martie 9, 2016 Partajează Postat Martie 9, 2016 Corect... exista si poze. Proaspat extrasa din datasheet. Ups... acum am reusit sa atasez si poza. Eu sunt de parere ca mai bine gandim cum masuram un impuls folosind TIMER1 si functia Gate control cu PIC16f887. Acesta este primul pas, dupa care vedem ce masuram. Aplicatiile pot fi multe, nu doar senzor cu ultrasunete. Link spre comentariu
bebeus Postat Martie 19, 2016 Partajează Postat Martie 19, 2016 Buna ziua! Saptamana asta m-am tot "jucat" cu Flowcode ca sa-mi fac un termometru pentru masina. Am fost foarte incantat de rezultatele rapide pa care le-am obtinut in simulari, dar cand am facut montajul pe breadboard ... dezamagire totala!! Am atasat o arhiva in care se afla cam tot cea am lucrat eu pana acum. Imi poate spune cineva unde este hiba?? Multumesc! Termo.rar Link spre comentariu
bobinatorul Postat Martie 19, 2016 Partajează Postat Martie 19, 2016 Nu stiu daca proteus tine cont de watchdog dar la mine apare ca e activat. Link spre comentariu
djvas Postat Martie 19, 2016 Partajează Postat Martie 19, 2016 Mai exact ce probleme ai ? Link spre comentariu
bebeus Postat Martie 19, 2016 Partajează Postat Martie 19, 2016 Ar putea fi asta o problema? Ce-am facut in flowcode e OK? Nu de alta, dar e primul program pe care il fac si ma gandesc ca ar fi unele probleme in setari sau altceva! Mai exact ce probleme ai ? Imi apare doar partea de introducere si atat pe display. Link spre comentariu
djvas Postat Martie 19, 2016 Partajează Postat Martie 19, 2016 (editat) La cat este setat oscilatorul intern ? In proteus ..dublu click pe 16f690 si la "procesor clock frequency" ce valoare ai ? Schimba la 32 Khz si vezi daca se comporta ca in realitate. Incearca sa compileze fara watch dog timer si vezi daca merge asha. Editat Martie 19, 2016 de djvas Link spre comentariu
bebeus Postat Martie 19, 2016 Partajează Postat Martie 19, 2016 OK! Mersi pentru sfaturi. O sa fac modificarile si o sa postez si rezultatele. Link spre comentariu
mikella Postat Martie 19, 2016 Partajează Postat Martie 19, 2016 (editat) Daca era de la oscilator nu mai pornea programul deloc, vedeai pe ecran doar patratele. Dezactiveaza WDT ca iti reseteaza picul si de asta apare doar partea de introducere. Ruleaza programul pana la un punct dupa care face reset si o ia de la capat. LE: Cred ca oscilatorul trebuie INTERNAL NO CLOCK OUT. Editat Martie 19, 2016 de mikella Link spre comentariu
Postări Recomandate
Creează un cont sau autentifică-te pentru a adăuga comentariu
Trebuie să fi un membru pentru a putea lăsa un comentariu.
Creează un cont
Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!
Înregistrează un nou contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum