Jump to content
ELFORUM - Forumul electronistilor
PKP98

Senzor distanta HC-SR04

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
Share on other sites

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
Share on other sites

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
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • 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