Jump to content
ELFORUM - Forumul electronistilor

Senzor distanta HC-SR04


PKP98

Recommended Posts

Salut!

Astazi m-am jucat cu un modul sr04 si cu un atmega16 .Am scris acest cod :

#define F_CPU 1000000UL

#include <avr/io.h>
#include <util/delay.h>
#include "Lcd_2x16_164.h"

#define triger  PINA1
#define echo   PINA0

int main(void)
{
     DDRA|=1<<triger;
	 DDRA&=~(1<<echo);
	 PORTA&=~(1<<triger);
	 init_lcd();
	 uint16_t pulse()
	 {
		 uint16_t result;
	   PORTA|=1<<triger;
	   _delay_us(15);
	   PORTA&=~(1<<triger);
	   
	   while ((PINA & (1<<echo))==0);
	   TCCR1A=0X00;
	   TCCR1B=(1<<CS10);	
	   TCNT1=0;
	   while ((PINA & (1<<echo))==1);
	   result=TCNT1;
	   
	   return result;
	 
	 }
   
   setcursor(0,0);
   sendmessage("  HC-SR04 ");
   _delay_ms(1000);
   clearlcd();
   int distance;
    while (1) 
    {
		distance=pulse();
		distance=distance/2;
		distance=distance*0.0355;
		setcursor(0,0);
		sendnumber(distance,10);
		sendmessage("   ");
		_delay_ms(500);
    }
}

Functioneaza perfect,am masurat distante de pana la 3m cu erori sub 1cm.Problema este ca am mai citit ceva pe net si am vazut ca altii luau in calcul si niste erori pe care le mai are acest modul SR04.Merita sa le iau in calcul?

Astept orice ideie pentru imbunatatirea codului.

Multumesc!

 

Link to comment
  • Replies 3
  • Created
  • Last Reply

Top Posters In This Topic

  • PKP98

    2

  • one

    1

  • binox

    1

Top Posters In This Topic

Am facut si eu cateva teste cu acest modul si masuratorile sunt surprinzator de bune, considerand pretul.

Nu m-am documentat pe internet caci nu am avut nevoie de acest senzor pana acum, dar iti impartasesc opinia mea:

 

In primul rand, sa tinem cont ca aceste module costa aproape nimic deci pentru constructia lor s-au facut niste compromisuri. Daca aceste module se vand la 1€ pe ebay, atunci costurile de productie trebuie sa fie la un sfert maxim.

Probabil ca in microcontrollerul de pe placa este implementata o anumita calibrare caci cu dispersia valorilor componentelor pasive sigur modulele ar avea erori importante.

Imbunatatirea acestui modul ar avea 2 variante: una ar fi software, masurand durata impulsului la distanta minima si apoi la distanta maxima si ajustarea formulei de calcul, alta ar fi hardware, cu un procesor mai precis in locul celui original.

Parerea mea este ca precizia acestui modul nu se va imbunatati semnificativ caci metoda in sine este limitata - metoda sonarului.

 

Eu am la serviciu un masurator cu laser care are o precizie de ordinul a 1mm pentru distante de pana la 50m, de la 5cm.

Exista dispozitive de masura cu laser care detecteaza abateri de ordinul fractiunilor de micron.

Candva am cumparat un aparat de masura asemanator cu ultasunete (caci costa mai putin) si am fost atat de dezamagit incat l-am dat imediat. Precizia acestuia din urma era in cm si nu mm, iar distanta maxima masurata era mult mai mica (vreo 15m, minim 50cm).

 

Deci daca la 3m ai o eroare de 1cm, zic eu ca e bine, aceste module sunt pentru constructia de roboti care evita obstacole, unde nu este nevoie de precizie mare.

Edited by one
Link to comment

Da,aveti dreptate,la constructia de roboti este parfum,am facut deja unul si sunt extrem de multumit de felul cum functioneaza.

Multumesc mult!

Link to comment

Ca sa se elimine erorile se mai pot face niste filtrari software de genul: se fac mai multe masuratori se elimina extremele si se face o medie din ce ramane.

Totusi eu n-am reusit sa elimin in totalitate erorile. Din cand in cand dadeau declansari false, probabil de la ecouri cand se miscau obiecte in zona de lucru a senzorului.

In aplicatia mea i-am inlocuit pana la urma cu senzori IR cu care am obtinut rezultate mai bune. (in aplicatia mea precizia nu e f importanta, mai mult ma intereseaza sa nu dea declansari false si sa fie silentiosi, cei cu ultrasunete ii puteam auzi noaptea...)

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.Terms of Use si Guidelines