Module de détection ultrason

guitoon41

New Member
Bonjour, j'ai acheté un module de detection ultrason (US HC-SR04). En testant le module depuis une plaque d'essai j'ai un problème celui-ci s'arrête tous seul quand je l'oriente...

J'ai branché le "trg" sur la pin C.1, l'écho sur la pin C.2.

Voici mon code :

Code:
main:

	pulsout 1, 2
	pulsin 2, 1, w1
	
	pause 20
	
	w1 = w1 * 10 / 58	
	
	debug
	
	goto main
ça fonctionne bien j'entend même un légé "tac tac tac tac ....." qui sort du module mais dès que j'oriente un peux ma plaque d'essai pour changer de distance le module arrête de fonctionner comme si le pulsout ne fonctionné plus... et j'ai la valeur 0 dans w1 qui s'affiche dans le debug...
Je suis obligé de soit relancer l'alimentation soit retirer le module et le remètre pour que ça refonctionne. J'ai remarqué que le module s'arrêté dès que je l'orienté vers des distance de plus de 2 mètres... J'ai aussi commenté la ligne "w1 = w1 * 10 / 58" pour qu'elle ne soit plus prise en compte mais toujours pareil...

Je ne comprend pas d'ou viens le probleme...

Merci d'avance.

Edit: j'utilise en 08m2+
 

BESQUEUT

Senior Member
W1 ne peut pas dépasser 65535
Si pulsin fourni un valeur supérieure à 6553,
alors w1*10 est plus grand que 65535 et il y a "overflow"
Par exemple :
6554 * 10 => 65540 -65536 = 4
Une fois divisé par 58, ça fait zéro...
Toutefois si le phénomène se produit aussi en mettant un commentaire sur la ligne, il y a un autre problème.
La connectique est-elle fiable ? Photo et/ou schéma du montage...

En outre debug est très peu rapide. Préférez
sertxd("W1=",#w1,13,10)
La pause me semble inutile, le sertxd et encore plus la commande debug en tenant largement lieu...
 

guitoon41

New Member
Merci pour ta réponse.

Dans le cas ou le calcule est correcte :
"""
Il n'y peux pas avoir "overflow" puisque le module détecte jusqu'a 4 mètres et "w1" m'indique les centimètres... donc max 400".
"""

Maintenant je viens de découvrir que quand je leve légerment ma plaque d'essaie d'1 ctm le debug m'affiche 0.
Si je la repose sur la table ça m'indique une valeur donc je ne suis pas obligé de couper et rallumer l'alimentation comme j'avais mentionné.

Je pense que le calcule que j'ai indiqué est faux. Voici la datasheet du module :
http://www.micropik.com/PDF/HCSR04.pdf

D'après se qui est donnée le calcule serait :
w1 = w1 / 58.

Mais évidement c'est pas ça, ça m'indique n'importe quoi.

w1 = w1 * 10 / 58
pareil.

Pour le sertxd("W1=",#w1,13,10), j'ai jamais réussi à afficher un texte avec la fonction sertxd, j'utilise "PICAXE Programming Editor".
 

BESQUEUT

Senior Member
Maintenant je viens de découvrir que quand je leve légerment ma plaque d'essaie d'1 ctm le debug m'affiche 0.
Si je la repose sur la table ça m'indique une valeur donc je ne suis pas obligé de couper et rallumer l'alimentation comme j'avais mentionné.
Je subodore un faux contact quelque part.
Que se passe-t-il si vous ne touchez pas au montage mais déplacez un objet (planche ou gros livre) devant le détecteur ?
D'après se qui est donnée le calcule serait :
w1 = w1 / 58.
Merci de ne faire aucun calcul et de donner les valeurs de w1 brut pour différentes distances,
Mais évidement c'est pas ça, ça m'indique n'importe quoi.Pour le sertxd("W1=",#w1,13,10), j'ai jamais réussi à afficher un texte avec la fonction sertxd, j'utilise "PICAXE Programming Editor".
On est bien d'accord : vous avez ouvert le terminal série et réglé à la bonne vitesse ?
 
Last edited:
Top