Aller au contenu


Ichmer

Inscrit(e) (le) 18 janv. 2017
Déconnecté Dernière activité janv. 28 2017 03:39
-----

Messages que j'ai postés

Dans le sujet : Code pour controler un servo a l'aide d'un sonar

25 janvier 2017 - 09:48

Merci beaucoup pour avoir passer du temps a m'aider malgré le novice que je suis :ignat_02:


Dans le sujet : Code pour controler un servo a l'aide d'un sonar

25 janvier 2017 - 09:34

Merci beaucoup pour l'aide cependant esque l'unique sortie du capteur sur circuit.io et le fait qu'on utilise dans le code la même voie pour le trig et pour l'echo et grave ?

 

Cordialement, Hugo.


Dans le sujet : Code pour controler un servo a l'aide d'un sonar

25 janvier 2017 - 09:27

J'ai donc ceci, comment faire pour dire que 90° est la position initial ? Si mon cm est compris dans [100;120] comment lui dire de revenir en position initial ?

EDIT: je vais essayer avec un if.

#include <Servo.h> 
int trig = 11;
int echo = 11;
long lecture_echo;
long cm;
int pos = 0;
Servo myservo;
void setup()
{
  pinMode(trig, OUTPUT);
  digitalWrite(trig, LOW);
  pinMode(echo, INPUT);
  Serial.begin(9600);
  myservo.attach(9);
}

void loop()
{
  digitalWrite(trig, HIGH);
  delayMicroseconds(10);
  digitalWrite(trig, LOW);
  lecture_echo = pulseIn(echo, HIGH);
  cm = lecture_echo / 58;
  delay(1000);
  for(cm = 0; cm < 100; pos += 15)   
    {                                  
      myservo.write(pos);              
     delay(15);                       
    } 
  for(cm = 120; pos < 500; pos += 15)  
    {                                  
      myservo.write(pos);              
     delay(15);  
    }
  }


Dans le sujet : Code pour controler un servo a l'aide d'un sonar

25 janvier 2017 - 09:07

Excusez moi pour les balises, je crois avoir compris l'erreur, est-ce mieux ? Je voudrai dire, "si cm est compris dans l'intervalle [0;100[ la position du servo tourne de +15°. Comment faire pour que le servo soit de base a 90° ?

#include <Servo.h> 
int trig = 11;
int echo = 11;
long lecture_echo;
long cm;
int pos = 0;
Servo myservo;

void setup()
{
  pinMode(trig, OUTPUT);
  digitalWrite(trig, LOW);
  pinMode(echo, INPUT);
  Serial.begin(9600);
  myservo.attach(9);
}

void loop()
{
  digitalWrite(trig, HIGH);
  delayMicroseconds(10);
  digitalWrite(trig, LOW);
  lecture_echo = pulseIn(echo, HIGH);
  cm = lecture_echo / 58;
  delay(1000);
 
 for(cm = 0; cm < 100; pos = +15)   
    {                                  
      myservo.write(pos);              
     delay(15);                       
    } 
  for(cm = 100; cm <= 120; pos = +0)     
    {                                
    myservo.write(pos);              
    delay(15);                       
    } 
  for(cm = 120; pos < 500; pos = -15)  
    {                                  
      myservo.write(pos);              
     delay(15);  
    }
  }
}

Dans le sujet : Code pour controler un servo a l'aide d'un sonar

25 janvier 2017 - 07:39

Bonsoir, alors j'ai regarder quelques tutos, les codes du capteur a ultrason et du servo et j'ai bidouiller ce code :

#include <Servo.h>
int trig = 11;
int echo = 11;
long lecture_echo;
long cm;
int pos = 0;
Servo myservo;
void setup()
{
  pinMode(trig, OUTPUT);
  digitalWrite(trig, LOW);
  pinMode(echo, INPUT);
  Serial.begin(9600);
  myservo.attach(9);
}

void loop()
{
  digitalWrite(trig, HIGH);
  delayMicroseconds(10);
  digitalWrite(trig, LOW);
  lecture_echo = pulseIn(echo, HIGH);
  cm = lecture_echo / 58;
  delay(1000);
  if (cm < 100){
    for(pos = 90; pos < 75; pos += 1)   
    {                                  
      myservo.write(pos);              
     delay(15);                       
    }
  }
  if (cm > 120){
    for(pos = 90; pos > 105; pos-=1)     
    {                                
    myservo.write(pos);              
    delay(15);                       
    }
  }
  else (cm > 100 && cm < 120);{
      for(pos = 90; pos < 90; pos = 0)  
    {                                  
      myservo.write(pos);              
     delay(15);  
    }
  }
}

L'IDE Arduino compile bien le code cependant sur circuit.io le capteur a ultra son ne possède pas 2 entrée ( trig et echo ) mais seulement un "SIG" j'ai donc mit les 2 entrée dessus. Après ça j’ai essayer mon code avec ce montage sur circuit.io mais le servo se bloque a 90° lorsque je met le "point" de l'ultra son a plus de 120cm rien ne se passe et a moins de 100cm aussi, pourquoi mon code ne fonctionne pas ?

 

Screen de mon montage sur circuit.io:

http://image.noelshack.com/fichiers/2017/04/1485369417-ggggg.jpg

 

Merci pour l'aide, cordialement, Hugo.