Go Down

Topic: cambio de sensor de movimiento por ultrasonidos  (Read 310 times) previous topic - next topic

Josemy91

Jan 28, 2020, 09:34 pm Last Edit: Jan 28, 2020, 09:35 pm by Josemy91
hola chicos tengo este código para una secuencia en las escaleras funciona bien pero tengo problemas con la detección me detecta cuando paso cerca , asi que los quiero cambiar por ultrasonidos
Code: [Select]
int SensorLuz = A0;
int SensorAjusteLuz = A1;
int ValorSensorLuz;
int ValorAjusteLuz;
int tiempo;
int ValorAjusteVelocidad = A2;


int sensor1=10;
int sensor2=11;
int estado_sensor_1=0;
int estado_sensor_2=0;

int led1 = 0;
int led2 = 1;
int led3 = 2;
int led4 = 3;
int led5 = 4;
int led6 = 5;
int led7 = 6;
int led8 = 7;
int led9 = 8;

void setup()
{
  pinMode (led1,OUTPUT);
  pinMode (led2,OUTPUT);
  pinMode (led3,OUTPUT);
  pinMode (led4,OUTPUT);
  pinMode (led5,OUTPUT);
  pinMode (led6,OUTPUT);
  pinMode (led7,OUTPUT);
  pinMode (led8,OUTPUT);
  pinMode (led9,OUTPUT);
  pinMode (sensor1,INPUT);
  pinMode (sensor2,INPUT);
 
  digitalWrite (led1,LOW);
  digitalWrite (led2,LOW);
  digitalWrite (led3,LOW);
  digitalWrite (led4,LOW);
  digitalWrite (led5,LOW);
  digitalWrite (led6,LOW);
  digitalWrite (led7,LOW);
  digitalWrite (led8,LOW);
  digitalWrite (led9,LOW);
}

void loop()
{
  ValorSensorLuz = analogRead(SensorLuz); 
  ValorAjusteLuz = analogRead(SensorAjusteLuz);
 
  estado_sensor_1=digitalRead(sensor1);
  estado_sensor_2=digitalRead(sensor2); 
  tiempo = analogRead(ValorAjusteVelocidad);
  if (tiempo<250)
  {
    tiempo=250;
  }
 if (ValorAjusteLuz > ValorSensorLuz)
  {   
    if (estado_sensor_1==HIGH)
    {
      subir_escaleras();
    }
    delay(20);

    if (estado_sensor_2==HIGH)
    {
      bajar_escaleras();
    }
    delay(20);
  }
}


void subir_escaleras()
{
  digitalWrite (led1,HIGH);
  delay(tiempo);
  digitalWrite (led2,HIGH);
  delay(tiempo);
  digitalWrite (led3,HIGH);
  delay(tiempo);
  digitalWrite (led4,HIGH);
  delay(tiempo);
  digitalWrite (led5,HIGH);
  delay(tiempo);
  digitalWrite (led6,HIGH);
  delay(tiempo);
  digitalWrite (led7,HIGH);
  delay(tiempo);
  digitalWrite (led8,HIGH);
  delay(tiempo);
  digitalWrite (led9,HIGH);
 
  delay(5000);
 
  digitalWrite (led1,LOW);
  delay(tiempo); 
  digitalWrite (led2,LOW);
  delay(tiempo);
  digitalWrite (led3,LOW);
  delay(tiempo);
  digitalWrite (led4,LOW);
  delay(tiempo);
  digitalWrite (led5,LOW);
  delay(tiempo);
  digitalWrite (led6,LOW);
  delay(tiempo);
  digitalWrite (led7,LOW);
  delay(tiempo);
  digitalWrite (led8,LOW);
  delay(tiempo);
  digitalWrite (led9,LOW);

}

void bajar_escaleras()
{
  digitalWrite (led9,HIGH);
  delay(tiempo);
  digitalWrite (led8,HIGH);
  delay(tiempo);
  digitalWrite (led7,HIGH);
  delay(tiempo);
  digitalWrite (led6,HIGH);
  delay(tiempo);
  digitalWrite (led5,HIGH);
  delay(tiempo);
  digitalWrite (led4,HIGH);
  delay(tiempo);
  digitalWrite (led3,HIGH);
  delay(tiempo);
  digitalWrite (led2,HIGH);
  delay(tiempo);
  digitalWrite (led1,HIGH);
 
  delay(5000);
 
  digitalWrite (led9,LOW);
  delay(tiempo); 
  digitalWrite (led8,LOW);
  delay(tiempo); 
  digitalWrite (led7,LOW);
  delay(tiempo);
  digitalWrite (led6,LOW);
  delay(tiempo);
  digitalWrite (led5,LOW);
  delay(tiempo);
  digitalWrite (led4,LOW);
  delay(tiempo);
  digitalWrite (led3,LOW);
  delay(tiempo);
  digitalWrite (led2,LOW);
  delay(tiempo);
  digitalWrite (led1,LOW);
}
y este es el que intento hacer
Code: [Select]
int TRIG1 = A0;
int ECO1=10;
int DURACION;
int DISTANCIA1;
int DISTANCIA2;
int tiempo;
int ValorAjusteVelocidad = A2;
int TRIG2=11;
int ECO2=A1;


int led1 = 0;
int led2 = 1;
int led3 = 2;
int led4 = 3;
int led5 = 4;
int led6 = 5;
int led7 = 6;
int led8 = 7;
int led9 = 8;

void setup()
{
  pinMode (led1,OUTPUT);
  pinMode (led2,OUTPUT);
  pinMode (led3,OUTPUT);
  pinMode (led4,OUTPUT);
  pinMode (led5,OUTPUT);
  pinMode (led6,OUTPUT);
  pinMode (led7,OUTPUT);
  pinMode (led8,OUTPUT);
  pinMode (led9,OUTPUT);
  pinMode (ECO1,INPUT);
  pinMode (ECO2,INPUT);
  pinMode (TRIG1,OUTPUT);
  pinMode (TRIG2,OUTPUT);
 
  digitalWrite (led1,LOW);
  digitalWrite (led2,LOW);
  digitalWrite (led3,LOW);
  digitalWrite (led4,LOW);
  digitalWrite (led5,LOW);
  digitalWrite (led6,LOW);
  digitalWrite (led7,LOW);
  digitalWrite (led8,LOW);
  digitalWrite (led9,LOW);
}

void loop()
{
 

  tiempo = analogRead(ValorAjusteVelocidad);
  if (tiempo<250)
  {
    tiempo=250;
  }
      digitalWrite(TRIG1, HIGH);    // generacion del pulso a enviar
  delay(1);       // al pin conectado al trigger
  digitalWrite(TRIG1, LOW);    // del sensor
 
  DURACION = pulseIn(ECO1, HIGH);  // con funcion pulseIn se espera un pulso
            // alto en Echo
  DISTANCIA1 = DURACION / 58.2; 
  if (DISTANCIA1 <= 50 && DISTANCIA1 >= 0){
      subir_escaleras();
    }
    delay(20);
   digitalWrite(TRIG2, HIGH);    // generacion del pulso a enviar
  delay(1);       // al pin conectado al trigger
  digitalWrite(TRIG2, LOW);    // del sensor
 
  DURACION = pulseIn(ECO2, HIGH);  // con funcion pulseIn se espera un pulso
            // alto en Echo
  DISTANCIA2 = DURACION / 58.2; 
 

    if (DISTANCIA2 <= 50 && DISTANCIA2 >= 0){   
   
      bajar_escaleras();
    }
    delay(20);
}



void subir_escaleras()
{
  digitalWrite (led1,HIGH);
  delay(tiempo);
  digitalWrite (led2,HIGH);
  delay(tiempo);
  digitalWrite (led3,HIGH);
  delay(tiempo);
  digitalWrite (led4,HIGH);
  delay(tiempo);
  digitalWrite (led5,HIGH);
  delay(tiempo);
  digitalWrite (led6,HIGH);
  delay(tiempo);
  digitalWrite (led7,HIGH);
  delay(tiempo);
  digitalWrite (led8,HIGH);
  delay(tiempo);
  digitalWrite (led9,HIGH);
 
  delay(5000);
 
  digitalWrite (led1,LOW);
  delay(tiempo); 
  digitalWrite (led2,LOW);
  delay(tiempo);
  digitalWrite (led3,LOW);
  delay(tiempo);
  digitalWrite (led4,LOW);
  delay(tiempo);
  digitalWrite (led5,LOW);
  delay(tiempo);
  digitalWrite (led6,LOW);
  delay(tiempo);
  digitalWrite (led7,LOW);
  delay(tiempo);
  digitalWrite (led8,LOW);
  delay(tiempo);
  digitalWrite (led9,LOW);

}

void bajar_escaleras()
{
  digitalWrite (led9,HIGH);
  delay(tiempo);
  digitalWrite (led8,HIGH);
  delay(tiempo);
  digitalWrite (led7,HIGH);
  delay(tiempo);
  digitalWrite (led6,HIGH);
  delay(tiempo);
  digitalWrite (led5,HIGH);
  delay(tiempo);
  digitalWrite (led4,HIGH);
  delay(tiempo);
  digitalWrite (led3,HIGH);
  delay(tiempo);
  digitalWrite (led2,HIGH);
  delay(tiempo);
  digitalWrite (led1,HIGH);
 
  delay(5000);
 
  digitalWrite (led9,LOW);
  delay(tiempo); 
  digitalWrite (led8,LOW);
  delay(tiempo); 
  digitalWrite (led7,LOW);
  delay(tiempo);
  digitalWrite (led6,LOW);
  delay(tiempo);
  digitalWrite (led5,LOW);
  delay(tiempo);
  digitalWrite (led4,LOW);
  delay(tiempo);
  digitalWrite (led3,LOW);
  delay(tiempo);
  digitalWrite (led2,LOW);
  delay(tiempo);
  digitalWrite (led1,LOW);
}
pero me da fallos y no lo consigo
gracias a todos

surbyte

Por favor presta atención  a estos dos hilos que tienes por encima del tuyo (Proyectos) .

Siempre que llegues a un foro, lo primero que debes hacer no es postear tu consulta, sino leer las normas de dicho foro.
El hilo será movido porque lo tuyo no es un proyecto tal como se explica en la imagen de abajo.



Go Up