Programmation 3 vibreurs 3 émetteurs récepteurs ultrasons

a marqué ce sujet comme résolu.

Bonsoir, je souhaite écrire un programme dans lequel 3 vibreurs seraient associés à 3 capteurs émetteurs à ultrasons et lorsqu’une présence à moins de 1 mètre sera détectée, le vibreur associé vibrera. J’ai déjà écris un programme mais cela ne fonctionne pas. Pouvez vous m’aider svp

int trig = 9;

int echo = 8;

long lecture_echo;

long cm;

int V=11;

int trig1=2;

int echo1=3;

long lecture_echo1;

long cm1;

int V1=12;

int trig2=4;

int echo2 =5;

long lecture_echo2;

long cm2;

int V2=13;

void setup() { // put your setup code here, to run once:

pinMode(trig,OUTPUT);

digitalWrite(trig, LOW);

digitalWrite(trig,LOW);

pinMode(echo,INPUT);

pinMode(V,OUTPUT);

pinMode(trig1,OUTPUT);

digitalWrite(trig1, LOW);

digitalWrite(trig1,LOW);

pinMode(echo1,INPUT);

pinMode(V1,OUTPUT);

pinMode(trig2,OUTPUT);

digitalWrite(trig2, LOW);

digitalWrite(trig2,LOW);

pinMode(echo2,INPUT);

pinMode(V2,OUTPUT);

Serial.begin(9600); }

void loop() { // put your main code here, to run repeatedly:

digitalWrite(trig,HIGH);

delayMicroseconds(10);

digitalWrite(trig, LOW);

lecture_echo=pulseIn(echo,HIGH);

cm=lecture_echo/58;

Serial.print(« Distance: « );

Serial.println(cm);

delay(200);

digitalWrite(trig1,HIGH);

delayMicroseconds(10);

digitalWrite(trig1,LOW);

lecture_echo1=pulseIn(echo1,HIGH);

cm1=lecture_echo1/58;

Serial.println(cm1);

digitalWrite(trig2,HIGH);

delayMicroseconds(10);

digitalWrite(trig2,LOW);

lecture_echo2=pulseIn(echo2,HIGH);

cm2=lecture_echo2/58;

Serial.println(cm2);

if(cm<100){

digitalWrite(V,HIGH); }

else {

digitalWrite(V,LOW); }

if(cm1<100){

digitalWrite(V1,HIGH); }

else{

digitalWrite(V1,LOW); }

if(cm2<100){

digitalWrite(V2,HIGH);

}

else{

digitalWrite(V2,LOW); } }

+0 -1

Tu as un problème avec la présentation de ton code.

De plus, quelques explications supplémentaires auraient été le bien venu pour comprendre un peu le code.

+3 -0

Bonjour, je vous remercie de vos réponses, il est vrai que mon programme n’était pas très clair et manquait d’explications. Maintenant que c’est un peu plus clair, pouvez vous me dire pourquoi ce code ne marche pas?

int echo = 8; *///définition des branches du premier capteur émetteur ultrason

*int trig =9;

long lecture_echo;

long cm;

int V=11;

int trig1=2; * //définition des branches du second capteur émetteur ultrason

*int echo1=3;

long lecture_echo1;

long cm1;

int V1=12;

int trig2=4; *//définition des branches du troisième capteur émetteur ultrason

*int echo2 =5;

long lecture_echo2;

long cm2;

int V2=13;

void setup() {

pinMode(trig,OUTPUT); * //trig est la sortie

*digitalWrite(trig, LOW);

pinMode(echo,INPUT); * //echo est l’entrée

pinMode(V,OUTPUT); //le premier vibreur est une sortie

pinMode(trig1,OUTPUT); //de même avec le second vibreur

*digitalWrite(trig1,LOW);

pinMode(echo1,INPUT);

pinMode(V1,OUTPUT);

pinMode(trig2,OUTPUT); *//de même avec le troisième vibreur

*digitalWrite(trig2,LOW);

pinMode(echo2,INPUT);

pinMode(V2,OUTPUT);

Serial.begin(9600); }

void loop() {

digitalWrite(trig,HIGH);

delayMicroseconds(10);

digitalWrite(trig, LOW);

lecture_echo=pulseIn(echo,HIGH); *//lis la durée de l’echo

*cm=lecture_echo/58;

Serial.print("Distance: ");

Serial.println(cm);

delay(200);

digitalWrite(trig1,HIGH);

delayMicroseconds(10);

digitalWrite(trig1,LOW);

lecture_echo1=pulseIn(echo1,HIGH);

cm1=lecture_echo1/58;

Serial.println(cm1);

digitalWrite(trig2,HIGH);

delayMicroseconds(10);

digitalWrite(trig2,LOW);

lecture_echo2=pulseIn(echo2,HIGH);

cm2=lecture_echo2/58;

Serial.println(cm2);

if(cm<100){ * //si un obstacle à moins de un mètre le premier vibreur vibre * digitalWrite(V,HIGH); } else {

digitalWrite(V,LOW); }

if(cm1<100){ * //si un obstacle à moins de un mètre le second vibreur vibre

*digitalWrite(V1,HIGH); }

else{

digitalWrite(V1,LOW); }

if(cm2<100){ * //si un obstacle à moins de un mètre le troisième vibreur vibre

*digitalWrite(V2,HIGH); }

else{

digitalWrite(V2,LOW); }

}

Salut, en fait, ce que je trouve pas clair, c’est la description du problème ! Genre les vibreurs et émetteurs d’ultrason, pour ma part je sais pas comment ça fonctionne et surtout comment c’est pris en charge dans le code !

Je suis pas sûr de pouvoir t’aider à résoudre ton problème de code, mais pour la présentation, il faudrait que tu indentes ton code et que tu l’entoures de ``` (Alt Gr + 7), pour le rendre présentable, et pour qu’au lieu de ressembler à ça :

int nombre = 23

if (nombre == 23)

{

println("Nombre vaut vingt-trois");

}

ton code ressemble à ça :

1
2
3
4
5
int nombre = 23
if (nombre == 23)
{ 
    println("Nombre vaut vingt-trois"); // admirez cette coloration syntaxique de qualité
}

Voilà je pense que plus de personnes liront le code s’il est lisible, et si tu présentes mieux ton problème ;) (n’hésites pas à éditer tes posts)

source : toujours cet article

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte