martes, 3 de mayo de 2016

SENSOR DE ULTRASONIDOS HC-SR04.

INDICACIÓN DE LA DISTANCIA EN EL MONITOR SERIE CON UN SENSOR HC-SR04.

int trigger=7;
int echo=6;
long time=0;
long dist=0;

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

void loop(){
digitalWrite(trigger, LOW);
delay(5);
digitalWrite(trigger, HIGH);
delay(10);
digitalWrite(trigger, LOW);
time = pulseIn(echo, HIGH);
dist = (time/2) / 29.1;
if ( dist >= 500 || dist <= 0){
Serial.println("No measurement");
}
else{
Serial.print(dist);
Serial.println(" cm");
}
delay(1000);
}


INDICACIÓN DE LA DISTANCIA MEDIANTE 4 DIODOS LED Y UN SENSOR HC-SR04.

#define echoPin 6
#define trigPin 7

float maximumRange = 20;
float minimumRange = 0;
long duration, distance, contador;
float aux;

void setup() {
 Serial.begin (9600);
 pinMode(trigPin, OUTPUT);
 pinMode(echoPin, INPUT);
 pinMode(9, OUTPUT);
 pinMode(10, OUTPUT);
 pinMode(11, OUTPUT);
 pinMode(12, OUTPUT);
}

void loop() {
 digitalWrite(trigPin, LOW);
 delayMicroseconds(2);
 digitalWrite(trigPin, HIGH);
 delayMicroseconds(10);
 digitalWrite(trigPin, LOW);
 duration = pulseIn(echoPin, HIGH);
 distance = duration/58.2;
 Serial.println(distance);
 if (distance > maximumRange){
  Serial.println("OUT_OF_RANGE");
    for (int i = 9; i <= 12;i++){
    digitalWrite(i,HIGH);
    }
    delay(150);
    for (int i = 9; i <= 12;i++){
    digitalWrite(i,LOW);
    }
    delay(150);
 }
 else {
  aux = (1.0/maximumRange)*4.0*distance;
  contador = aux;
  contador = contador + 9;
  for (int i = 9; i <= contador; i++)
    digitalWrite(i,HIGH);
  for (int i = 12; i > contador; i--)
    digitalWrite(i,LOW);
 }
 delay(50);
}


INDICACIÓN DE LA DISTANCIA MEDIANTE UNA AGUJA ACOPLADA A UN SERVOMOTOR Y UN SENSOR HC-SR04.

#include <Servo.h>
#define echoPin 6
#define trigPin 7

float maximumRange = 20;
float minimumRange = 0;
long duration, distance;
int dec=0;
Servo servo1;

void setup() {
 Serial.begin (9600);
 pinMode(trigPin, OUTPUT);
 pinMode(echoPin, INPUT);
 servo1.attach(3);
}

void loop() {
 digitalWrite(trigPin, LOW);
 delayMicroseconds(2);
 digitalWrite(trigPin, HIGH);
 delayMicroseconds(10);
 digitalWrite(trigPin, LOW);
 duration = pulseIn(echoPin, HIGH);
 distance = duration/58.2;
 Serial.println(distance);
 if (distance > maximumRange ){
 Serial.println("maxRange");
 }
 else {
 dec= distance*5;
 servo1.write(dec);
 delay(30);
 }
}

No hay comentarios:

Publicar un comentario