» Elektronik » Arduino »Entfernungsmesser auf der Arduino-Plattform!

Der Entfernungsmesser auf der Arduino-Plattform!


Guten Tag an alle! In diesem Artikel möchte ich erklären, wie man es benutzt ArduinoMit einem Satz LEDs und einem Ultraschallsensor können Sie ein Gerät zusammenbauen, das die Entfernung vom Betrachter zum Objekt bestimmt, mit anderen Worten: Entfernungsmesser. Und so lass uns gehen!
Was brauchen wir:
Einfach Box. Es ist wünschenswert, klein zu sein, da es nur einen Mikrocontroller enthält.

Mit Hilfe Ultraschallwandler HC-SR04 wir können die Entfernung bestimmen.

Vierstellige Anzeige Wir müssen die erhaltenen Werte ausgeben.

Stellen Sie ein LEDs alle Farben (ich habe grün verwendet, da sie heller sind), Widerstände bei 220 Ohm Drähte oder auch Springer Steckbrett.





Damit die Komponenten unseres Gerätes sicher befestigt sind, werde ich sie löten.
Dafür brauchen wir Lötkolben, Flussmittel, Lot, und auch Steckbrett zum Löten.

Und natürlich ohne Arduino wir können nicht tun! (Sie können einen beliebigen Mikrocontroller auswählen, ich habe Arduino Leonardo oder das entsprechende Iskra Neo bevorzugt)

Von den Werkzeugen benötigen wir einen Lötkolben, wie ich oben sagte, Messer und Zangen.

Beginnen wir nun mit der Montage des Geräts.
Schritt 1
Zunächst werden wir mit einem Steckbrett einen Prototyp unseres zukünftigen Geräts zusammenbauen. Es wird ungefähr so ​​aussehen ..

Keine Sorge! Es gibt nichts Schreckliches in diesem Durcheinander von Drähten!
Der HC-SR04-Sensor hat vier Pins: Plus, Minus (die wir in die 5V und GND des Controllers stecken), Trig und Echo (wir stecken die Arduino-Pins in 12 bzw. 11).
Die vierstellige Anzeige besteht aus 3 Drähten: Stromversorgung, Masse und Signal. Letzterer ist mit dem 9-poligen Arduino verbunden.
Wir verbinden drei LEDs mit 6, 5 und 4 Kontakten des Controllers in Reihe mit Widerständen. Vergessen Sie nicht die Polarität. Der Strom fließt von einem längeren zu einem kürzeren Bein.
Das war alles, als wir unser Gerät auf einem Steckbrett zusammenbauten, die Skizze hochluden (sie befindet sich am Ende des Artikels) und sicherstellten, dass alles funktioniert. Sie können jederzeit mit dem Löten beginnen.
Schritt Nummer 2
Löten Sie zuerst den Ultraschallsensor an das Steckbrett. Ich habe ein kleines Steckbrett verwendet, da die Anzahl der Elemente 7 nicht überschreitet.

Danach mit Hilfe von Zangen die Beine abbeißen (ich entschuldige mich für die Tautologie) und sie kürzer machen, damit sie nicht stören und hübscher aussehen!

Löten Sie danach die vier Drähte gegen die Sensorkontakte.


Vergessen Sie auch nicht die Zangen!


Schritt 3
Der Sensor ist an Ort und Stelle, es bleibt, um die drei LEDs zusammen mit den Widerständen zu löten.


Auf der Rückseite sieht es so aus:

Schritt 4
Schneiden Sie an der Seite der Schachtel ein rundes Loch für Lebensmittel.

Auf dem Deckel müssen Sie einen Hohlraum auf die Größe (etwas kleiner) Ihres Steckbretts zuschneiden und Löcher für Schrauben bohren.


Wenn wir nun ein leeres Steckbrett ohne Elemente darauf schrauben (ich habe es nur zur Demonstration gemacht ..), erhalten wir ungefähr Folgendes:

Schritt 5
Um es bequemer zu machen, schlage ich vor, zuerst die Drähte mit dem Arduino zu verbinden und erst dann das Steckbrett mit dem Deckel der Box zu verschrauben. Vergessen Sie auch nicht unseren Indikator, den ich über dem Layout platziert habe.

Alles an dieser Gerätebaugruppe ist fertig!
Es bleibt nur der nächste Download Skizze und genieße das Spielzeug!
#include
#include
NewPing-Sonar (12.11, 400);
int a, j, b;
vorzeichenloses langes t = 0;
int masiv [] = {1,0,0,0,1,0,0,0,1};
void setup ()
{
 für (int i = 4; i & lt; 7; i ++)
 {
   pinMode (i, OUTPUT);
 }}
 displayClear (9);
 für (int i = 4; i & lt; 7; i ++)
 {
   digitalWrite (i, 0);
 }}
  }}
void loop ()
{
  j = 7;
  für (int i = 0; i100) Ton (2,70);
    digitalWrite (j, masiv [i]);
    während (millis () & lt; = t + b)
    {
    Verzögerung (50);
    a = sonar.ping_cm ();
    displayInt (9, a);
    b = a;
    }}
    t = Millis ();
    wenn (j == 4) j = 7;
    if (i == 8)
    {
     digitalWrite (4.1);
     während (millis () & lt; = (t + b) + (b * 2))
     {
    Verzögerung (50);
    a = sonar.ping_cm ();
    displayInt (9, a);
    b = a;
     }}
     digitalWrite (4.0);
     t = Millis ();
    }}
  }}



Ein paar Worte Programmcode. Dank ihm blinken unsere drei LEDs abwechselnd nacheinander und ihre Blinkgeschwindigkeit hängt von der Entfernung zum Objekt ab, die der Ultraschallsensor berechnet. Um die LEDs zum Blinken zu bringen, ist es nicht ganz logisch, die delay () - Funktion zu verwenden, da der Controller bei Verwendung einfriert und keine Berechnungen durchgeführt werden. Es gibt verschiedene Möglichkeiten, um dieses Problem zu lösen. Eine davon ist insbesondere die Verwendung der Funktion millis (), die ab dem Moment, in dem die Steuerung arbeitet, eine Zahl in Millisekunden zurückgibt. Und wie verzögern wir bedingte 100 Millisekunden? Zu diesem Zweck habe ich einen im Wesentlichen leeren Zyklus erstellt, dessen Ausgang erst nach diesen 100 Millisekunden erfolgt. Anschließend schaltet das Programm die LEDs ein / aus.

Nun das ist alles! Vielen Dank, dass Sie diesen Artikel bis zum Ende gelesen haben. Ich hoffe, Sie haben sie nicht nur gemocht, sondern auch ein neues Meer inspiriert Handwerk und Erfindungen!
6
5
5

Kommentar hinzufügen

    • lächelnlächeltxaxaokweiß nichtYahoonea
      ChefKratzerDummkopfjaja-jaaggressivGeheimnis
      Entschuldigungtanzendance2Tanz3VerzeihungHilfeGetränke
      hör aufFreundegutgut gutpfeifenOhnmachtZunge
      RauchklatschenCrayerklärenspöttischdon-t_mentionherunterladen
      Hitzeärgerlichlach1mdaTreffenMoskingnegativ
      not_iPopcornbestrafenlesenerschreckenAngstSuche
      verspottendankedasto_clueumnikakutstimme zu
      schlechtbeeeblack_eyeblum3errötenprahlenLangeweile
      zensiertAngenehmheitsecret2drohenSiegyusun_bespectacled
      shokrespektlolvorgezogenWillkommenKrutoyya_za
      ya_dobryiHelferne_huliganne_othodiFludVerbotschließen
7 Kommentare
Der Autor
Hallo)
Vielleicht haben Sie noch eine Skizze? Dabei stellt sich heraus, dass sogar das Zeichen "<" durch "& lt;" ersetzt wurde)
Hallo! Wenn ich Ihre Skizze lade, entstehen aus irgendeinem Grund eine Reihe von Syntaxfehlern. Natürlich spiele ich nicht sehr viel mit der Syntax, aber an einigen Stellen kann ich einfach nicht herausfinden, was behoben werden muss. Zum Beispiel in einem Stück:
für (int i = 0; i100) Ton (2,70);
digitalWrite (j, masiv [i]);
, was bedeutet der zusammengeführte i100? warum nicht erhöhen? Benötigen Sie geschweifte Klammern, damit die nächsten beiden Funktionen nach for zur selben Schleife gehören, oder irre ich mich? Und so schwört der Compiler im gesamten Code. Kann ich Sie irgendwie kontaktieren, den Code klären? Ich versuche, ein Kursprojekt basierend auf Ihrem Artikel zu erstellen.

Außerdem werden im Code an der Stelle, an der die Bibliotheken verbunden sind, ihre Namen nicht angegeben. Natürlich können Sie raten, aber diese Skizze ist immer noch nicht für sofortige Tests geeignet. Sie müssen darüber nachdenken.
Der Autor
Ja, vielleicht)
Das heißt, das vorletzte Foto (in dem 77) ist aufgrund einer parasitären Beleuchtung der oberen Segmente infolge einer fehlerhaften Bedienung der dynamischen Anzeige einfach nicht erfolgreich? Die sechs hat auch eine falsche Hintergrundbeleuchtung, obwohl nicht so offensichtlich.
Der Autor
Ivan, Messwerte 6 cm und 11 cm sind der Abstand vom Sensor zur Handfläche)
Bitte erklären Sie auf den letzten beiden Fotos, warum so ein seltsames Zeugnis vorliegt.

Wir empfehlen Ihnen zu lesen:

Gib es für das Smartphone ...