Buenas tardes amantes hecho en casa! Hoy montaremos un telémetro simple en Arduino Pro Mini. El dispositivo es capaz de medir una distancia de 2 a 400 cm. El error de este dispositivo alcanza solo +/- 1-5 cm, dependiendo de la distancia medida.
Herramientas y materiales
-Arduino Pro mini
Sensor HC-04
- Indicador en tm1637
-Alambre (tengo - MGTF 0.12)
-Programador
-Casa de plástico
-Batería li-on
-Pequeño interruptor
- Tablero de carga en TP4056
Superpegamento
-Soldador
-Solder
Colofonia
Taladro, taladro, etc.
Paso uno. Esquema:
Según el esquema, todo es simple, sin adiciones.
Paso 2. Preparación del caso:
Primero probamos el sensor y perforamos dos agujeros para 15 mm.
Luego, taladre un agujero de 3-3.5 mm para el conector micro-usb.
Seleccionamos un taladro para el diámetro del interruptor y taladro.
En la tapa hacemos una "ventana" para el indicador de siete segmentos (en la foto sin procesar), y terminamos todas las irregularidades con un archivo.
Paso Tres. Firmware:
En el boceto, las variables que se pueden ajustar por usted mismo están resaltadas. Todo el código está comentado.
#include // bibliotecas para trabajar
#include
// ------------- Para configurar --------------------------------- --------------------------------
bool largo = 0; // 0 - mide la longitud del sensor
// 1: mide la longitud desde la pared de la carcasa, que es opuesta al sensor
unsigned int corpus = 10; // distancia del sensor a la pared de la caja opuesta (en centímetros)
#define CLK 2 // pines para conectar
#define DIO 3
#definir TRIG 4
#define ECHO 5
// ------------------------------------------------ ----------------------------------------------
impulso sin signo int = 0; // variables para el cálculo
unsigned int sm = 0;
GyverTM1637 disp (CLK, DIO);
configuración nula () {
pinMode (TRIG, OUTPUT); // establecer como salida
pinMode (ECHO, INPUT); // establecer como entrada
brillo luminoso (7); // brillo 0-7
punto disp (0); // apaga el colon
disp.clear (); // borra el indicador
}
bucle vacío () {
digitalWrite (TRIG, HIGH); // suministra 5 voltios
delayMicroseconds (10); // demora 10 microsegundos
digitalWrite (TRIG, LOW); // servir 0
impulso = pulseIn (ECHO, ALTO); // mide la longitud del pulso
sm = impulso / 58; // convertir a centímetros
if (Long == 1) {// comprueba la configuración
sm = sm + corpus;
}
if (sm <= 2) {// cero valores falsos
sm = 1;
}
si (sm> = 405) {
sm = 1;
}
int entero = sm / 10;
int decimal = sm% 10;
decimal = decimal * 10;
disp.displayClock (entero, decimal); // salida al indicador
retraso (300); // retraso 0.3 seg. entre salida de valor
}
A continuación, conecte el programador y flash MK.
Paso cuatro: Asamblea:
Dado que el dispositivo funciona con batería, no necesitamos carga adicional. Por lo tanto, en la placa Arduino, soldamos los LED y el botón de reinicio (para reducir el tamaño).
Pegue la batería al cuerpo con superpegamento. Pegamos la placa de carga en la batería, instalamos el interruptor y soldamos todo de acuerdo con el esquema.
Pegamos el sensor a la caja y soldamos todo de acuerdo con el esquema. Al principio, hubo una idea de pegar la placa en una cinta de doble cara, pero luego se decidió pegarla en el superpegamento. El indicador se puede atornillar o pegar.
Paso 5. Prueba:
Nota: el cuarto segmento siempre mostrará 0. Esto es para garantizar que el último segmento no esté vacío. Resulta que si la lectura es 270, esto significa que la distancia es de 27 cm.
Para estar seguro, el testimonio se puede verificar con la regla.