Les comento, mi problema es el siguiente, encontre en la red una especie de sensor ping ))) (parallax) pero para hacer casero, lo hice, todo bien, el tema es qeu ahora no tengo la mas remota idea de como leer bien los datos, ya que los leo pero ni un dato cercano a lo que deberia ser. Es mas, viene un source code con esto que encontre, pero es orientado a PIc, y trate de adaptarlo manualmete para hacerlo funcionar con el arduino pero no pasa nada...
Agradeceria muchisimo si alguien me puede ayudar... les dejo el link de la pagina de donde saque este invento y el codigo que estoy utilizando yo para hacerlo funcionar...
URL:
Mi Codigo:
#define PULSELEN 250
#define time 25
const int pinLed = 13;
const int pwm = 6;
const int pulsePin = 5;
int pulse = 0;
void setup() {
Serial.begin(9600);
pinMode(pwm, OUTPUT);
pinMode(pinLed, OUTPUT);
}
void loop()
{
long inches, cm;
int prom;
func_pwm(); //LLamo al funcion PWM.
prom = func_lectura(); // Llamo a la funcion LECTURA.
prom= (prom *34 * 2)/250;
Serial.println("");
Serial.print("promedio bien");
Serial.print(prom);
Serial.println("");
Serial.println();
delay(100);
}
void func_pwm(){ //PWM que se encarga de generar un tren de pulsos de 250us con 40Khz de frecuencia.
int av=0;
do{
digitalWrite(pwm, LOW);
delayMicroseconds(time);
digitalWrite(pwm, HIGH);
delayMicroseconds(time);
digitalWrite(pwm, LOW);
delayMicroseconds(1);
av++;
}while(av!=PULSELEN);
}
long func_lectura(){
int i, aux=0, buffer[10];
for(i=0;i<10;i++){
buffer[i]= analogRead(pulsePin);
aux = aux + buffer[i];
}
Serial.print("Valor almacenado en el Buffer5: ");
Serial.print(buffer[5]);
Serial.println("");
aux = (aux / 10);
delay(1000);
Serial.print (" Promedio ");
Serial.print(aux);
Serial.println("");
return aux * 5;
}
Salu2!