Go Down

Topic: Mi Codigo no mueve el servomotor al usar un sensor ultrasonico (Read 64 times) previous topic - next topic

Joaco2799

lo que pasa es que hice que el sensor ultrasonico haga que mueva el servomotor cuando algo esta en 20 centimetros pero cuando puse el pie a 20 centimetros no hace mover el servomotor aparte que en el monitor serie dice que el objeto esta a 20 centimetros

pd: uso visualino despues copio el codigo y lo pongo en el ide de arduino

aqui esta el codigo

Code: [Select]
#include <Servo.h>

Servo servos[13];

/***   Global variables   ***/

/***   Function declaration   ***/
//bqBAT
long TP_init(int trigger_pin, int echo_pin);
long Distance(int trigger_pin, int echo_pin);

void setup()
{


  pinMode( 6 , INPUT );

  pinMode( 5 , OUTPUT );

  Serial.begin(9600);

  servos[9].attach(9);

}


void loop()
{
    Serial.println(Distance(5,6));
    if ("Distance" == 20) {
      servos[9].write(0);
      delay(500);
      servos[9].write(180);
      delay(500);
      servos[9].write(90);
      delay(500);
     }

}

/***   Function definition   ***/
//bqBAT
long TP_init(int trigger_pin, int echo_pin)
{
  digitalWrite(trigger_pin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigger_pin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigger_pin, LOW);
  long microseconds = pulseIn(echo_pin ,HIGH);
  return microseconds;
}
long Distance(int trigger_pin, int echo_pin)
{
  long microseconds = TP_init(trigger_pin, echo_pin);
  long distance;
  distance = microseconds/29/2;
  if (distance == 0){
    distance = 999;
  }
  return distance;
}

_jose_

Estas comparando un string (una cadena de caracteres entre comillas)  con un numero:
Code: [Select]
if ("Distance" == 20) {

Recoge el valor en una variable para hacer la comparacion:
Code: [Select]
long dist = Distance(5,6);
Serial.println(dist);
if(dist == 20) {
   // resto de codigo


Go Up