Paso 4: Paso 4
El código utilizado para esto sobre todo encontré en línea, pero tuve que retocarlo un poco para hacerla más estable. Hay algún valor de ajuste para asegurarse de que funciona para su necesidad y espacio.Busco "distancia = pulseTime" su valor por defecto es 58, pero jugaría con él entre 20 y 70 dependiendo de su espacio y qué tan confiable es el sensor de ultrasonidos.
CÓDIGO
const int numOfReadings = 1; número de lecturas a tomar / elementos de la matriz
int lecturas [numOfReadings]; almacena las lecturas de distancia en una matriz
arrayIndex int = 0; arrayIndex del elemento actual en la matriz
int total = 0; almacena el total acumulado
int averageDistance = 0; almacena el valor promedio
pines de configuración y variables para dispositivos de sonar DYP-ME007
echoPin int = 7; DYP-ME007 pin de echo (2 digitales)
int initPin = 8; DYP-ME007 pasador de gatillo (3 digital)
pulseTime larga sin signo = 0; almacena el pulso en Micro segundos
sin signo larga distancia = 0; variable para almacenar la distancia (cm)
pins/valores para LED
int LEDPin = 6; LED conectado a 6 PWMpin digital
int LEDValue = 0; almacena el valor de brillo de lo LED (0 = totalmente apagado, 255 = totalmente por)
Programa de instalación
void setup() {}
pinMode (LEDPin, salida); Juegos pin 6 como salida
pinMode (initPin, salida); configurar Inicio pin 8 como salida
pinMode (echoPin, entrada); configurar pin de echo 7 como entrada
crear matriz de bucle para iterar sobre cada elemento de la matriz
para (int thisReading = 0; thisReading < numOfReadings; thisReading ++) {}
lecturas [thisReading] = 0;
}
inicializar el puerto serie, permite ver la
Distancias que ping si conectado a la computadora
Serial.Begin(9600);
}
ejecutar
void loop() {}
digitalWrite (initPin, HIGH); enviar 10 pulsos de microsegundos
delayMicroseconds(0); esperar 10 microsegundos antes de apagar
digitalWrite (initPin, bajo); dejar de enviar el pulso
pulseTime = pulseIn (echoPin, HIGH); Busque un pulso de retorno, debe ser alta, el pulso va-de-alta-baja
distancia = pulseTime/58; Distancia = tiempo de pulso / 58 para convertir a cm.
total = total - lecturas [arrayIndex]; Reste la distancia pasada
lecturas [arrayIndex] = distancia; Añadir distancia a conjunto
total = total + lecturas [arrayIndex]; Añadir la lectura al total
arrayIndex arrayIndex = 1; ir al siguiente elemento de la matriz
Al final de la matriz (10 artículos) y luego comenzar de nuevo
Si (arrayIndex > = numOfReadings) {}
arrayIndex = 0;
}
averageDistance = total / numOfReadings; calcular la distancia promedio
Si la distancia es de menos de 255cm entonces cambiar el brillo del LED
Si (averageDistance < 255) {}
LEDValue = 255 - averageDistance; Esto significa que la más pequeña la distancia brighterthe LED.
}
analogWrite (LEDPin, LEDValue); Escribir el valor actual a los pines del LED
Serial.println (averageDistance, DEC); Imprima la distancia promedio para el depurador
Delay(500); espera 100 milisegundos antes de bucle otra vez
}