» Electrónica » Arduino »¡Buscador de alcance en la plataforma Arduino!

¡El telémetro de la plataforma Arduino!


Buen dia a todos! En este artículo me gustaría contar cómo usar Arduino, un conjunto de LED y un sensor ultrasónico, puede ensamblar un dispositivo que determine la distancia desde el observador al objeto, en otras palabras, telémetro. Y entonces vamos!
Que necesitamos
Llano caja. Es deseable que sea de tamaño pequeño, ya que contendrá un solo microcontrolador.

Utilizando transductor ultrasónico HC-SR04 Podemos determinar la distancia.

Indicador de cuatro dígitos Necesitamos generar los valores obtenidos.

Set LEDs cualquier color (usé verde, ya que son más brillantes), resistencias a 220 ohmios alambres o puentes también protoboard





Para que los componentes de nuestro dispositivo estén bien sujetos, los soldaré.
Para esto necesitamos soldador, fundente, soldaduratambién tablero para soldar.

Y claro, sin Arduino no podemos hacer! (Puedes elegir cualquier microcontrolador, prefiero Arduino Leonardo o su equivalente Iskra Neo)

De las herramientas necesitamos un soldador, como dije anteriormente, Cuchillo y pinzas.

Ahora comencemos a ensamblar el dispositivo.
Paso # 1
Para comenzar, utilizando una placa de pruebas, armaremos un prototipo de nuestro futuro dispositivo. Se verá algo así ...

No te preocupes! ¡No hay nada terrible en este lío de cables!
El sensor HC-SR04 tiene cuatro contactos: más, menos (que pegamos en los 5V y GND del controlador), Trig y Echo (insertamos los pines arduino en 12 y 11, respectivamente)
El indicador de cuatro dígitos tiene 3 cables: alimentación, tierra y señal. Este último está conectado al Arduino de 9 pines.
Conectamos tres LED a 6, 5 y 4 contactos del controlador en serie con resistencias. No te olvides de la polaridad. La corriente fluye de una pierna más larga a una más corta.
Eso es todo, cuando ensamblamos nuestro dispositivo en una placa de pruebas, subimos el boceto (estará al final del artículo) y nos aseguramos de que todo funcione, siéntase libre de comenzar a soldar.
Paso número 2
Primero, suelde el sensor ultrasónico a la placa de pruebas. Utilicé una tabla pequeña de tamaño, ya que el número de elementos no supera los 7.

Después de eso, con la ayuda de pinzas, muerda las piernas (pido disculpas por la tautología), ¡haciéndolas más cortas para que no interfieran y se vean más bonitas!

Después de eso, suelde los cuatro cables contra los contactos del sensor.


Además, no te olvides de las pinzas!


Paso 3
El sensor está en su lugar, queda soldar los tres LED junto con las resistencias.


En el reverso, se ve así:

Paso 4
En el lado de la caja, corte un agujero redondo para la comida.

En la tapa, debe cortar una cavidad del tamaño (un poco más pequeño en longitud) de su placa de prueba, y también perforar agujeros para tornillos.


Ahora, si atornillamos un tablero vacío sin elementos (lo hice solo para demostración ...), obtenemos algo como lo siguiente:

Paso 5
Entonces, para hacerlo más conveniente, propongo conectar primero los cables al arduino, y solo luego atornillar la placa a la tapa de la caja. Además, no se olvide de nuestro indicador, que coloqué encima del diseño.

¡Todo en este dispositivo está terminado!
Solo queda descargar el siguiente bosquejo y disfruta el juguete!
#include
#include
Sonda NewPing (12.11, 400);
int a, j, b;
sin signo largo t = 0;
int masiv [] = {1,0,0,0,1,0,0,0,1};
configuración nula ()
{
 para (int i = 4; i & lt; 7; i ++)
 {
   pinMode (i, SALIDA);
 }
 displayClear (9);
 para (int i = 4; i & lt; 7; i ++)
 {
   digitalWrite (i, 0);
 }
  }
bucle vacío ()
{
  j = 7;
  para (int i = 0; i100) tono (2,70);
    digitalWrite (j, masiv [i]);
    while (millis () & lt; = t + b)
    {
    retraso (50);
    a = sonar.ping_cm ();
    displayInt (9, a);
    b = a;
    }
    t = millis ();
    si (j == 4) j = 7;
    si (i == 8)
    {
     digitalWrite (4.1);
     while (millis () & lt; = (t + b) + (b * 2))
     {
    retraso (50);
    a = sonar.ping_cm ();
    displayInt (9, a);
    b = a;
     }
     digitalWrite (4.0);
     t = millis ();
    }
  }



Unas pocas palabras código de programa. Gracias a él, nuestros tres LED parpadearán alternativamente uno tras otro, y la velocidad de su parpadeo dependerá de la distancia al objeto, que se calcula mediante el sensor ultrasónico. Pero para que los LED parpadeen, no es del todo lógico usar la función delay (), ya que cuando se usa, el controlador se congela y no se realizan cálculos. Hay varias formas de resolver este problema. En particular, uno de ellos es el uso de la función millis (), que devuelve un número en milisegundos desde el momento en que funciona el controlador. ¿Y cómo retrasamos unos 100 milisegundos condicionales? Para hacer esto, creé un ciclo esencialmente vacío, cuya salida será solo después de estos 100 milisegundos, y luego el programa procederá a encender / apagar los LED.

Bueno eso es todo! Gracias por leer este artículo hasta el final. Espero que no solo te haya gustado, sino que también hayas inspirado un nuevo mar manualidades e inventos!
6
5
5

Agrega un comentario

    • sonriesonrisasxaxaokno sabesyahoonea
      jeferascarsetontosisi-siagresivosecreto
      lo sientobailardance2dance3perdónayudabebidas
      pararamigosbuenobuenosilbatodesmayarselengua
      fumaraplaudirllorardeclararburlóndon-t_mentiondescargar
      calorfuriosorisa1mdareuniónMoskingnegativo
      not_ipalomitas de maizcastigarleerasustarasustabuscar
      burlagraciasestoto_clueumnikagudode acuerdo
      malbeeeojo negroblum3ruborpresumiraburrimiento
      censuradocortesíasecreto2amenazarvictoriaYusun_bespectacled
      shokrespektjajajaPrevedbienvenidokrutoyya_za
      ya_dobryiayudantene_huliganne_othodigolpearprohibircerrar
7 comentarios
El autor
Hola)
¿Quizás todavía tienes un boceto funcionando? En esto, resulta que incluso el signo "<" fue reemplazado por "& lt;")
Hola Cuando cargo su boceto, produce un montón de errores de sintaxis por alguna razón. Por supuesto, no estoy jugando con la sintaxis, pero en algunos lugares no puedo entender lo que hay que arreglar. Por ejemplo, en una pieza:
para (int i = 0; i100) tono (2,70);
digitalWrite (j, masiv [i]);
, ¿qué significa el i100 fusionado? ¿Por qué no incrementar? ¿Necesita llaves para que las siguientes dos funciones pertenezcan al mismo bucle o me equivoco? Y así, el compilador jura todo el código. ¿Puedo contactarlo de alguna manera para aclarar el código? Estoy tratando de hacer un proyecto de curso basado en tu artículo.

Además, en el código en el lugar donde están conectadas las bibliotecas, sus nombres no están indicados. Por supuesto, puedes adivinar, pero aún así este boceto no es muy adecuado para pruebas instantáneas, tienes que pensarlo)
El autor
Si es posible)
Es decir, la penúltima foto (en la que 77) simplemente no tiene éxito debido a alguna iluminación parásita de los segmentos superiores como resultado del funcionamiento incorrecto de la pantalla dinámica. El seis también tiene una luz de fondo espuria, aunque no es tan obvio.
El autor
Ivan, las lecturas de 6 cm y 11 cm son la distancia desde el sensor hasta la palma)
Por favor explique por qué un testimonio tan extraño en las últimas dos fotografías.

Le recomendamos que lea:

Pásalo por el teléfono inteligente ...