Problème avec SRF05 ultrason

ARTAUD

New Member
Bonjour,

J'ai un problème avec le capteur ultrason SRF05.
Je l'utilise avec le trigger et l'echo séparés. J'envoie des impulsions avec un picaxe 14M.
La diode du capteur clignote (il reçoit bien les impulsions).
Je peux même visualiser une légère valeur moyenne au multimètre.
Mais j'ai l'imression de ne rien recevoir sur l'echo.

Voici mon code que j'ai essayé de modifier des dizaines de fois :

symbol x = w1

main:
label0:
pulsout 0, 2
pulsin 0,1,x
pause 50
if x = 0 then Switch on 1
endif
goto label0

Je précise que j'ai connecté une diode verte sur la sortie 0 qui reste en permanence allumée
Cela montre que x est toujours à 0 et que le picaxe ne reçoit rien sur son entrée 0.

Merci pour votre aide.
 

ARTAUD

New Member
J'avais remarqué mon erreur après. Mais cela ne fonctionne toujours pas.
Mon code maintenant est :
symbol x = w0

main:
label0:
wait 1
pulsout B.0, 2
pulsin C.0,1,x
pause 20
if x = 0 then Switch on 1
else
switch off 1
endif
goto label0
 

Jacques ROBERT

Senior Member
Et peut etre laisser le temps au "pulsout" de revenir avant d'envoyer le "pulsin" d'ou une pause entre les deux dont la durée dépend de l'éloignement de l'obstacle.
 

PieM

Senior Member
Et peut etre laisser le temps au "pulsout" de revenir avant d'envoyer le "pulsin" d'ou une pause entre les deux dont la durée dépend de l'éloignement de l'obstacle.
Surtout pas ! ça ne fonctionne pas comme ça.
le picaxe envoie une impulsion qui autorise le SRF à envoyer un train d'US pendant 0.2 µs . En fonction du délai de l'écho, le SRF renvoie vers le Picaxe une impulsion comprise entre 100µs et 25ms, proportionnelle à la distance.
Ce n'est pas le Picaxe qui écoute l'écho.
 

jojojo

Senior Member
Bon, retrouvé dans mes archives. (avec un SFR04, mais bon). Ca fonctionnait très bien.
Code:
Do			'boucle



Pulsout 1,2		'Burst 10µS à 8 Mhz

Pulsin 4,1,w3	'Lecture et transfer dans w3
w3=W3/255		'10=220cm--et passage de Integer à Byte (pour le serin du PBH3)
'debug	
				
Pause 22		'11 mS à 8Mhz



serout 2,T4800_8,(w3)

Loop			'repart
 

PieM

Senior Member
Ou là ! Ca me parait bien court.
A 40kHz la période est de 25 us.
Faute de frappe ?
Merci Papy ! oui c'est 0.2 ms ...

Jacques ROBERT said:
Mais alors à quoi sert le "pulsin"
Le pulsin sert à récupérer le créneau calculé et envoyé par le srf et qui est proportionnel à la distance.
Il faut comprendre que le Picaxe sous traite .. il ne sait pas quand les ultra-sons sont envoyés et quand ils sont reçus en écho.

Pour plus de détail : srf05tech.htm
 

PapyJP

Senior Member
Mais alors à quoi sert le "pulsin"?
D'une façon générale, l' instruction pulsin broche,etat,variable permet de mesurer la durée d' une impulsion.
Par exemple pulsin C.0,1,w mesure la durée d' une impulsion au niveau 1 présente sur l' entrée C.0.
Le résultat est dans la variable w sachant que , à 4MHz, une unité vaut 10 us.
Dans le cas qui nous intéresse ( mesure de la distance d' un obstacle par ultrasons ) supposons que w = 500.
C' est le temps t = wx10 = 500x10 = 5000 us = 5 ms, nécessaire à un burst d' ultrasons pour parcourir la distance émetteur-obstacle et retour soit 2d.
On cherche d ( distance-obstacle)
On a t = 2d/v
La vitesse du son dans l' air est 340 m/s.
===> d= vt/2
Si t=5ms on trouve d = (340 x 0,005)/2 = 0,85 m = 85 cm
Voir pulsin, Manuel2 en Français, §2.96, page 155/261
 

Jacques ROBERT

Senior Member
Bonsoir PapyJP,
Tout ça je sais,j'ai beaucoup utilisé pulsin,ce que je ne comprends pas c'est son utilisation juste derrière un pulsout dans le programme proposé?
 

PapyJP

Senior Member
Le pulsout est le trigger du SFR05 ( impulsion positive niveau TTL ) .
Lorsqu'il le reçoit, le SFR envoie un burst d' us de 8 périodes soit pendant 200us ( 8 x 25us ).Voir #10
C' est le 't0' de la mesure.
A partir de là, on mesure le temps qui s'écoule jusqu' à l' arrivée de l' écho ( par pulsin ).
L incertitude sur la mesure est au max ( 340 x 0,0002 )/2 = 3,4 cm

===> une mesure ( pulsin ) après chaque pulsout

D'où la séquence d' ARTAUD en #1:

pulsout B.0, 2 ;' trigge ' le SFR05
pulsin C.0,1,x ;avec x=w0, mesure du temps jusqu' à l' écho
 
Last edited:

PieM

Senior Member
A partir de là, on mesure le temps qui s'écoule jusqu' à l' arrivée de l' écho ( par pulsin ).
Il y a confusion!
Relisez ce que j'ai écrit en #6 et en 10. Pulsin ne mesure pas directement la durée de retour de l'écho.
Sur le SRF05, l'echo est reçu par un AOP LMC6032 qui le transmet à un Pic(16F630), et lui même renvoie une impulsion calculée et mesurée précisément vers le Picaxe.
le t0 n'est pas donné par le picaxe; il ne fait que donner l'ordre au pic du SRF de démarrer sa séquence.
Si vous mettez une toute petite tempo entre pulsout et pulsin, ça ne changera pas la valeur reçue du pulsin.
Et pour avoir la valeur de la distance en cm, il faut diviser pulsin par 5.8

Ultra, surtout utilisé en flowchart, n'est utilisable qu'en mode 2 du SRF05.
 
Last edited:

Jacques ROBERT

Senior Member
Suite du précédent

Toutefois l'utilisation du SRF05 me parait un peu complexe,comparée aux modules de détection US de LV-MAXSONAR;on peut mesurer directement avec "pulsin"la longueur
de l'écho en appliquant un multiplicateur de 58µs/cm ou sur sortie analogique traduite par:Vcc:1300/cm ou encore une sortie série à 9600bauds (0VàVcc).Et tout ça pour
moins de 5€ de + que SRF05 et un encombrement mini :20*22*16,4mm.Voir GoTronic page 76.
 

PieM

Senior Member
Toutefois l'utilisation du SRF05 me parait un peu complexe,comparée aux modules de détection US de LV-MAXSONAR;on peut mesurer directement avec "pulsin"la longueur
de l'écho en appliquant un multiplicateur de 58µs/cm ou sur sortie analogique traduite par:Vcc:1300/cm ou encore une sortie série à 9600bauds (0VàVcc).Et tout ça pour
moins de 5€ de + que SRF05 et un encombrement mini :20*22*16,4mm.Voir GoTronic page 76.
Le LV-Maxsonar .. a un prix abordable, est plus récent
Mais il peut aussi fonctionner de la même façon en utilisant la broche RX en déclenchement. Par défaut il fonctionne en continu mais ce n'est pas toujours utile, voire même ce type de mesure ne peut pas être utilisée si plusieurs sonars sont utilisés sur un même appareil.
 

ARTAUD

New Member
Merci pour vos réponses.
J'ai trouvé le problème et pour cela il a fallu que je trouve un oscillo. La sortie echo du capteur connecté sur l'entrée du PICAXE se met à 0 si je le branche sur l'entrée 0. Sur l'entrée 1, cela fonctionne très bien. Pourquoi ? je ne sais pas.
 

PieM

Senior Member
Il n'y a aucun problème pour utiliser la sortie serial out en sortie normale. D'ailleurs le pulsout fonctionnait puisque le SRF recvait l'impulsion.
Le problème est le retour sur l'entrée 0 qui est C.0 qui ne fonctionne pas. Cette entrée est peut être HS! c'est facile à vérifier.
 

GM39

Senior Member
Effectivement l'entrée est sur c.0 et non b.0 (j'avais pensé à problème avec le câble de programmation resté branché).
 
Top