Ultrasonic Sensor/es

From Pinguino
Jump to: navigation, search
Language: English  • español


/*
 Author:  Edermar Dominguez <Edermar_12[_at_]hotmail.com>
 Date: 31 Jan 2013
 Description: Ultrasonic sensor HC-SR04. Works only for 8 bit Pinguinos!
*/


#include <pulse.c>

// Sensor ultrasonido
unsigned long pulso; // necesitamos una variable para medir el pulso
float distancia;     // otra para calcular la distancia
int trig = 3 ;       // y otra para el pin trig "pin que envia la señal"
int echo= 4;         //pin echo "pin que recibe la señal"

setup() {
	pinMode (echo,INPUT);    // Declaramos pin echo de entrada
	pinMode (trig,OUTPUT);   //Declaramos pin trig de salida
}

void medirDistancia() {
	//Desactivamos el pin trig por 2 microsegundos "LOW"
	digitalWrite(trig, LOW);
	delayMicroseconds(2);
	
	// lo activamos por 15 microsegundos "HIGH"
	digitalWrite(trig, HIGH);
	
	// mandamos señal por el pin trig durante 15 microsegundos (MINIMO 10MS)
	delayMicroseconds(15);
	// lo desactivamos nuevamente para tomar la medida con el pien echo
	digitalWrite(trig, LOW);
	
	// medimos el pulso de salida del sensor
	pulso = pulseIn(echo, HIGH, 3000);
	
	distancia = (float)(((pulso/1000.0)*26.12)/2); // Hacemos la transformacion a CM segun la formula	

	// IMPRIMIMOS POR CDC , para ver los datos en pantalla
	CDC.printf("distancia = %f cm\r\n",distancia);
	
	// esperamos un segundo antes de hacer una nueva medida
	delay(1000);
}

void loop() {
	//Invocamos el metodo y listo
	medirDistancia();
	delay(20);
}

Este codigo esta echo originalmente para el sensor ultrasonido hc-sr04 que originalmente viene con 4 pines (positivo,negativo,trig y echo) aunque lo probe en sensores que solo tenian 3 pines y funcionaba solo que al terminar de mandar el puso cambiabamos el pin trig ya no era de salida sino de entrada y listo.

Cualquier duda pueden contactarme al correo Edermar_12[_at_]hotmail.com