Home - Rasfoiesc.com
Educatie Sanatate Inginerie Business Familie Hobby Legal
Doar rabdarea si perseverenta in invatare aduce rezultate bune.stiinta, numere naturale, teoreme, multimi, calcule, ecuatii, sisteme




Biologie Chimie Didactica Fizica Geografie Informatica
Istorie Literatura Matematica Psihologie

Fizica


Index » educatie » Fizica
» Aparat de masurat distante cu ultrasunete


Aparat de masurat distante cu ultrasunete


Aparat de masurat distante cu ultrasunete

Introducere

Dispozitivul masoara distante de pana la 140 centimetri si le afiseaza pe un afisaj cu LED-uri.

Aparate de masurat distante cu ultrasunete exista deja in mediul industrial, unde o distanta maxima masurata de cativa metri este suficienta pentru eficienta.

Se foloseste principiul SONAR. Transmitatorul trimite o unda de ultrasunete la frecventa de 40kHz spre obiectul tinta. Unda se va reflecta si va ajunge inapoi la receptor. Procesorul calculeaza cat timp ii ia undei sa parcurga distanta pana la obiect si inapoi. Cunoscand viteza sunetului, 340.29 m/s, si stiind timpul de parcurgere, aflam dublul distantei pana la obiect, pe care o impartim la doi. Am calculat ca un milimetru este parcurs in 2,93 us, deci un centimetru va fi parcurs in 29,3 us, aproximat la 30us. Se iau 10 masuratori dupa care se face o medie care se afiseaza pe un display cu LED-uri.



Posibilitati de imbunatatire: in lipsa de resurse materiale si de timp, raza de actiune a dispozitivului este relativ mica, insa poate fi marita pana la cativa metri. De asemenea, pentru o masuratoare mai exacta, se pot lua mai multe masuratori, multiplu de 10. Se poate lua in considerare si cosmetizarea dispozitivului (includerea intr-o carcasa).

Detaliere functionalitati

Aparatul este alimentat de doua baterii de 9 volti in serie. Cu ajutorul unui regulator de voltaj, se obtine o tensiune de 5 volti pentru alimentarea inclusiv a microcontrollerului. Acesta efectueaza operatiile urmatoare: la fiecare ~48ms (TIMER0) lanseaza un impuls catre transmitator, care trimite o unda de ultrasunete catre obiectul tinta. TIMER1 masoara timpul necesar intoarcerii undei la receptor. Atunci cand receptorul primeste unda inapoi, un contor, incrementat la fiecare 30us, reprezinta tocmai distanta dus intors in centimetri. Aceasta distanta se adauga la o suma din care va rezulta media a 10 masuratori.

Partea a doua

Piese folosite:

  • Doua baterii de 9 volti in serie
  • Regulator de voltaj LM317
  • Buton on-off
  • Pereche transmitator-receptor UST40T/R 40kHz
  • Invertor 74HC04N
  • Trigger Schmitt 74HC14N
  • Comparator LM311
  • Cristal 16MHz
  • Microcontroller AT89C51
  • Doua celule afisaj pe LED-uri pe cate doua caractere fiecare

Circuitul de putere:

Receptorul

Transmitatorul:

Microcontrollerul:

. 4K Bytes de memorie flash In-System Reprogrammable

. Anduranta: 1,000 cicluri de Scriere/Citire

. 0 Hz to 24 MHz

. Trei nivele Program Memory Lock

. 128 x 8-bit Internal RAM

. 32 linii intrare iesire programabile

. Doua 16-bit Timere

. Sase surse de intrerupere

. Canal serial programabil

. Low-power Idle si Power-down Modes

Transmitator-receptor

UST40T si UST40R

LM311: high speed voltage comparator

LM317 (regulator de voltaj):

74HC14N Trigger Schmitt (invertor):

74HC04N invertor

Display:

Listing soft:

INCLUDE 8051.mc

ORG 00h

JMP BEGIN

ORG 03h ; INT0

JMP PULS

ORG 0Bh ; TIMER0

JMP TMR0

ORG 1Bh ; TIMER1

JMP TMR1

ORG 33h

BEGIN:

; activare/configurare sistem intreruperi

MOV TMOD, #00010001b

MOV IP, #00000001b

SETB IT0 ; prindere apasare B0 pe tranzitie din 1 in 0

MOV IE, #10000011b ; activam intreruperile pentru timer 0

SETB TR0; pornim ceas 0

; cifrele fara punct pentru afisare

MOV 10H, #11010111b ; cifra 0

MOV 11H, #00010100b ; cifra 1

MOV 12H, #11001101b ; cifra 2

MOV 13H, #01011011b ; cifra 3

MOV 14H, #00011110b ; cifra 4

MOV 15H, #01011011b ; cifra 5

MOV 16H, #11001111b ; cifra 6

MOV 17H, #00010101b ; cifra 7

MOV 18H, #11011111b ; cifra 8

MOV 19H, #01011111b ; cifra 9

; initializari

MOV P0, #0

MOV P1, #0

MOV P2, #0

MOV R1, #0

MOV R2, #0

MOV R3, #0



MOV R3, #0

MOV R4, #0

MOV R5, #0

MOV R6, #0

MOV R7, #0

LOOP:

CALL AFIS ; apelare afisare

JMP LOOP

TMR0:

MOV R7, #0

SETB P1.0 ; transmitem impulsul catre transmiter

MOV TH1, #11111111b ; configuram timer 1 sa masoare de la 65496 la 65536 => 40 cicli ceas

MOV TL1, #11011000b

SETB TR1 ; start timer 1

MOV IE, #10001011b ; activam intreruperile pentru timer 0, 1 si linie externa

RETI

TMR1:

INC R7 ; numara distanta in multiplu de 30 microsec => in centimetri (pentru ca unda parcurge un cm in 30us)

CJNE R7, #0, NUME

INC R6

CJNE R6, #21, NUME

MOV R6,#10

NUME:

MOV TH1, #11111111b ; configuram timer 1 sa masoare de la 65496 la 65536 => 40 cicli ceas

MOV TL1, #11011000b

RETI

PULS: ; prindere impuls

CLR TR1

SETB P3.2

INC R5

CJNE R5, #10, RETURN

MOV A,R6

CLR C

RRC A

MOV R6,A

RRC A

MOV A,R7

MOV R7,A

MOV R5,#0

MOV A, R7

MOV B, #10

DIV AB

MOV R7, A

MOV A, R6

MOV B,#6

MUL AB

MOV B, #10

DIV AB

ADD A, R7

MOV R7, A

MOV A, R6

MOV B,#25

MUL AB

MOV R6, A

MOV A,R7

MOV B,#10

DIV AB

MOV R1,B

MOV B,#10

DIV AB

MOV R2,B

MOV B,#10

DIV AB

MOV R3,B

MOV A,R6

MOV B,#10

DIV AB

MOV R6,A

MOV A,R1

ADD A,B

MOV B,#10

DIV AB

MOV R1,B

ADD A,R6

MOV B,#10

DIV AB

MOV R6,A

MOV A,R2

ADD A,B

MOV B,#10

DIV AB

MOV R2,B

ADD A,R6

MOV R3,A

MOV R6,#0

MOV R7,#0

RETURN:

RETI

AFIS: ; afisare

MOV A, #10h

ADD A, R1

MOV R0, A

SETB P2.7

MOV P0, @R0 ; caracter 0

MOV A, #10h

ADD A, R2

MOV R0, A

CLR P2.7

SETB P2.6

MOV P0, @R0 ; caracter 1

MOV A, #10h

ADD A, R3

MOV R0, A

CLR P2.6

SETB P2.5

MOV P0, @R0 ; caracter 2

CLR P2.5

RET







Politica de confidentialitate





Copyright © 2024 - Toate drepturile rezervate