Practica Final


 Sensor Ultrasónico
Practica Final.. :)



#include <Servo.h>

const int trigger = 12;
const int echo = 11;
float dist, res;
Servo sd;
Servo si;

int led1 = 7;
int led2 = 6;
int led3 = 5;
int led4 = 4;

void bargraph (int led1, int led2, int led3, int led4)// Función bargraph
{
  digitalWrite (7,led1);
  digitalWrite (6,led2);
  digitalWrite (5,led3);
  digitalWrite (4,led4);
}

void setup(){
  Serial.begin(9600);
  pinMode(trigger, OUTPUT);
  pinMode(echo, INPUT);
}

void loop(){

  digitalWrite(trigger, LOW);
  delayMicroseconds(5);
  digitalWrite(trigger, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigger, LOW);

  //Adquirimos los datos y convertimos la media a cm
  dist = pulseIn(echo, HIGH); //Este resultado esta en microsegundos
  //Cuando la lectura del pin sea HIGH medira el tiempo que transcurre hasta que sea LOW en useg

  dist = dist/58; //Se hace la conversion a centimetros
  //Si queremos convertir a pulgadas se divide entre 148

  Serial.print("Distancia = "); //Imprimimos en la terminal un texto "Distancia = "
  Serial.print(dist); //Imprimimos en la terminal el valor de la distancia
  Serial.print("cm"); //Imprimimos en la terminal un texto "cm"
  Serial.write(10); //Enviamos en codigo ascii de "Nueva linea - salto de linea"

  if(dist >= 30){
    sd.attach(9);
    si.attach(10);
  
    sd.write(90);
    si.write(180);
  
    bargraph(0,1,1,0);
  }
 else if(dist <= 30){
    sd.attach(9);
    si.attach(10);
  
    sd.write(180);
    si.write(90);
  
    bargraph(1,0,0,1);
  }
 else{
    sd.detach();
   si.detach();
 }
}





1 comentario:

  1. semaforo inteligente

    #include
    float dist;
    const int trigger = 12;
    const int echo = 11;
    Servo sd;
    Servo si;

    void setup() {
    // put your setup code here, to run once:
    Serial.begin(9600);
    pinMode(trigger, OUTPUT);
    pinMode(echo, INPUT);
    pinMode(9, OUTPUT);//Verde
    pinMode(8, OUTPUT);//Amarillo
    pinMode(7, OUTPUT);//Rojo
    }

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

    digitalWrite(trigger, LOW);
    delayMicroseconds(5);
    digitalWrite(trigger, HIGH);
    delayMicroseconds(10);
    digitalWrite(trigger, LOW);

    dist = pulseIn(echo, HIGH);
    dist = dist/58;

    Serial.print("Distancia=");
    Serial.print(dist);
    Serial.print("cm");
    Serial.write(10);

    if(dist >= 31){//Distancia de 50 o mas centimetros prende foco verde
    digitalWrite(9, HIGH);
    digitalWrite(8, LOW);
    digitalWrite(7, LOW);

    sd.attach(3);
    si.attach(4);
    sd.write(90);
    si.write(90);
    }

    else if(dist >= 11 and dist <=30){//Distancia de entre 11 y 30 centimetros
    digitalWrite(9, LOW);
    digitalWrite(8, HIGH);
    digitalWrite(7, LOW);

    sd.attach(3);
    si.attach(4);
    sd.write(90);
    si.write(90);
    delay(300);
    sd.detach();
    si.detach();
    delay(100);
    sd.attach(3);
    si.attach(4);
    sd.write(90);
    si.write(90);
    delay(200);
    sd.detach();
    si.detach();
    delay(100);
    sd.attach(3);
    si.attach(4);
    sd.write(90);
    si.write(90);
    delay(100);
    sd.detach();
    si.detach();
    delay(100);
    sd.attach(3);
    si.attach(4);
    sd.write(90);
    si.write(90);
    delay(50);
    sd.detach();
    si.detach();
    delay(50);
    sd.attach(3);
    si.attach(4);
    sd.write(90);
    si.write(90);
    sd.detach();
    si.detach();
    delay(1000);
    }
    else if(dist <=10){//Distancia de 10 o menos
    digitalWrite(9, LOW);
    digitalWrite(8, LOW);
    digitalWrite(7, HIGH);

    sd.detach();
    si.detach();
    }

    }

    ResponderEliminar