Je crois bien l'avoir fait avec l'arduino branché et je viens de penser : cela est mauvais non?? Je vais remettre mon pont diviseur de tension avec deux résistances 10kOmhs comme convenu en début.
Essaye sans la arduino de brancher pour voir ce que ça donne. En générale une arduino n'aime pas trop des tensions superieur à 5V ... Après les pattes sont peut être 7V tolérante je ne sais pas ... Je n'ai pas de arduino, je travail avec des pics =) En tout cas c'est quand même le genre de truc que j'éviterais ...
Si si, j'ai bien compris cette partie : ce qui m'intéresse c'est le déphasage entre le signal d'émission et celui de récepteur. Mais je croyais que je devais avoir un signal centré autour de 0V car un pin digital ne lit que les niveaux hauts et bas non ? Dois-je mettre plutôt sur un PIN Analog qui "comprendra le créneau" ?
De même, j'en profite pour t'interroger car j'ai fait le point en programmation et je crois que tout n'est pas très très claire (embêtant pour poser toutes les variables...
/>/> )
En effet, j'envoies des 7 pulses de 300Hz sur le PIN d'entrée relié au NE555 qui lui émet une onde de 40kHz à mon émetteur ultrason. Mais quand on fixe à 300Hz, cela signifie que l'onde pourra détecter environ jusqu'à 50cm c'est bien ça? Mais si j'ai un objet situé à 20cm, le temps que j'envoie mes 7 pulses, j'aurai déjà un signal en retour.
Je me trompe? Tu vois ce que je veux dire? Je crois que je fais une confusion pour le coup ahah!
lire tes question me fait comprendre que je n'ai pas du être assez claire ... Car visiblement il y a certains détailles dont il me semble que tu passes à côté...
tu reçoit un signal créneau, déjà ce créneau il faudrait que tu te débrouilles pour qu'il soit compris composé de temps bas à 0V et de temps haut à 5V ( ou au moins supérieur à 3.3V a peu près, il faut se référer à la datasheet de la arduino pour voir au dessus de quel tension un signal est considéré comme un 1 logique) .
Ton signal reçut est donc composé de 0 et de 1. Par conséquent une pin digitale peut parfaitement comprendre ce signal ! pas besoin de pattes analogique qui de toute façon ne comprendrait pas mieux le signal ...
Maintenant vient l'analyse des signaux :
Premier signal envoyé par ta arduino:
ta arduino envoit un 1 logique de durée t1 suivit d'un zéro logique de durée t2
le 1 logique pendant t1 permet d'activer l'envoit d'un certain nombre n de 1 logique à 40Khz via le NE555.
Le 0 logique pendant t2 est un temps qu'il faut mettre à profit pour écouter l'echo de tes salves.
Il faut choisir t1 en fonction de la plus courte distance que tu veux mesurer et t2 en fonction de la plus longue distance que tu veux mesurer.
Je te laisse faire les calculs

( J'attends la démarche complète ce coup ci

)
le signal retour va être sous forme de créneau, il faut mesurer le temps entre le début de l'envoit et le premier 1 logique reçut et ou le temps entre la fin de l'envoit et le dernier 1 logique reçu ... Il peut aussi être intéressant de compter le nombre de 1 logique et verifier qu'on en a bien n.
Je vais voir ça avec mon prof de sciences industrielles demain (même s'il m'avait dit que ce serait trop dur de rendre mon robot stable en ligne droite..)
Mais n'existe pas un moyen sans capteur? Deux PWM de l'arduino gère les vitesses de deux moteurs. Je peux pas créer quelque chose en programmant?
Alors oui il n'est pas si aisé que cela de rendre un robot stable en ligne droite cependant c'est loin d'être impossible en plus il y a certaines astuces qui permettent de simplifier la tâche ...
Par contre : non il n'existe aucun moyen de faire un asservissement sans boucle de retour ! c'est le principe même de l'asservissement : regarder ce qu'on fait pour agir de manière à faire ce qu'on veut !
Faire quelque chose juste en programmant c'est faire de la boucle ouverte ! et le seule moteur potentiel pour faire de la boucle ouverte sans souci c'est le moteur pas à pas.
Donc tu es obligé d'avoir au moins un capteur quelconque ! mais ça tombe bien tu en fais un : le capteur de distance à ultrason ^^ c'est pour ça que je te suggérait de regarder mon TIPE... car en fait j'asservis en vitesse les deux roues de mon robot avec un unique capteur par contre c'est un capteur exterioceptif ( donc qui dépend de l'environement extérieur ) Ce qui fait que mon robot à des propriétés assez intéressante : il suit la trajectoire décrite par l'objet qu'il longe et reste du coup à distance constante de cet objet ! Bon par contre moi j'ai fais tout le "programme " de mon robot uniquement avec des aop ^^ et donc en tout analogique ( pas de carte programmable ^^ ) Cela aussi était un aspect intéressant ! Mais toi tu peux reprendre le principe en le faisant avec la arduino =)
Si tu as plus de questions sur mon TIPE n'hésite pas !
Par contre si cette méthode ne te plait pas il va falloir que tu mettes des codeurs au moins incrémentaux simple sur tes roues... ( Par contre encore mieux, mettre un capteur incrémentale avec quadrature des phase

mais bon à ton niveau c'est pas encore nécessaire ^^ ) et il va falloir que tu t'en serve pour mesure la vitesse de ton robot et à partir de cette mesure, en la comparant à ta consigne tu pourra adapter l'ordre ( sous forme de PWM ) que tu envois à tes moteurs !
J'ai l'impression de me répéter mais M-E-R-C-I !
/>/>
De rien
PS : Je dois mettre la facture à quelle nom pour le consulting ?

x)