Inhaltsverzeichnis:

Lichtfolgender und vermeidender Roboter basierend auf Arduino - Gunook
Lichtfolgender und vermeidender Roboter basierend auf Arduino - Gunook

Video: Lichtfolgender und vermeidender Roboter basierend auf Arduino - Gunook

Video: Lichtfolgender und vermeidender Roboter basierend auf Arduino - Gunook
Video: Fantasy-Karten zeichnen - Teil 2: Berge, Küsten, Wälder, Städte 🎲 Cast of Characters 2024, November
Anonim
Lichtfolgender und vermeidender Roboter basierend auf Arduino
Lichtfolgender und vermeidender Roboter basierend auf Arduino

Dies ist ein einfaches Projekt, das dem Licht folgt oder es vermeidet.

Ich habe diese Simulation in Proteus 8.6 pro gemacht. Erforderliche Komponenten:-1) Arduino uno.

2) 3 LDR.

3) 2 Gleichstrom-Getriebemotoren.4) Ein Servo.5) Drei 1k-Widerstände.6) Eine H-Brücke l290D7) Ein Ein- und Ausschalter [zum Ändern des Programmzustands]

8) 9v und 5v Batterie

Schritt 1: Ardunio-Code

Arduino-Code wurde ein wenig modifiziert Datum 23. Februar 2016]

Dieser Code ist stark kommentiert, ich möchte es nicht erklären, aber wenn Sie Hilfe benötigen, können Sie mich unter ([email protected]) kontaktieren.

Hinweis:-Ich verwende in diesem Programm zwei Bedingungen: 1. für Licht, 2. eine für Lichtvermeidung.

Soweit diese Bedingungen erfüllt sind, wird der Roboter dem Licht folgen oder es vermeiden. [Dies ist der Mindestwert von LDR, den ich wähle. Bei normalem Licht beträgt der Bereich 80 bis 95, aber mit zunehmender Intensität werden mehr und mehr Spannungen induziert, da es nach dem Prinzip des Spannungsteilers int a = 400 arbeitet; // Toleranzwert]

Schritt 2: Proteus-Dateien

Für Arduino Library Download von diesem Link

Schritt 3: So funktioniert Ihre H-Brücke

So funktioniert Ihre H-Brücke
So funktioniert Ihre H-Brücke
So funktioniert Ihre H-Brücke
So funktioniert Ihre H-Brücke

Die L293NE/SN754410 ist eine sehr einfache H-Brücke. Es hat zwei Brücken, eine auf der linken Seite des Chips und eine auf der rechten Seite, und kann 2 Motoren steuern. Es kann bis zu 1 Ampere Strom treiben und zwischen 4,5 V und 36 V betrieben werden. Der kleine Gleichstrommotor, den Sie in diesem Labor verwenden, kann sicher mit einer niedrigen Spannung betrieben werden, sodass diese H-Brücke einwandfrei funktioniert. Die H-Brücke hat die folgenden Pins und Funktionen: Pin 1 (1, 2EN) aktiviert und deaktiviert unseren Motor, egal ob er HIGH oder LOW istPin 2 (1A) ist ein Logikpin für unseren Motor (Eingang ist entweder HIGH oder LOW)Pin 3 (1Y) ist für eine der MotorklemmenPin 4-5 sind für MassePin 6 (2Y) ist für die andere MotorklemmePin 7 (2A) ist ein Logik-Pin für unseren Motor (Eingang ist entweder HIGH oder LOW)Pin 8 (VCC2.)) ist die Stromversorgung für unseren Motor, dies sollte der Nennspannung Ihres Motors entsprechenPin 9-11 sind nicht angeschlossen, da Sie nur einen Motor in diesem Labor verwendenPin 12-13 sind für MassePin 14-15 sind nicht angeschlossenPin 16 (VCC1) ist an 5V angeschlossen. Oben ist ein Diagramm der H-Brücke und welche Pins in unserem Beispiel was tun. Im Diagramm enthalten ist eine Wahrheitstabelle, die angibt, wie der Motor gemäß dem Zustand der Logikpins (die von unserem Arduino eingestellt werden) funktioniert.

In diesem Projekt wird der Enable-Pin mit einem digitalen Pin an Ihrem Arduino verbunden, sodass Sie ihn entweder HIGH oder LOW senden und den Motor ein- oder ausschalten können. Die Motorlogik-Pins sind auch mit bestimmten digitalen Pins auf Ihrem Arduino verbunden, sodass Sie HIGH und LOW senden können, damit sich der Motor in eine Richtung dreht, oder LOW und HIGH, um ihn in die andere Richtung zu drehen. Die Motorversorgungsspannung wird an die Spannungsquelle für den Motor angeschlossen, bei der es sich in der Regel um eine externe Stromversorgung handelt. Wenn Ihr Motor mit 5V und weniger als 500mA betrieben werden kann, können Sie den 5V-Ausgang des Arduino verwenden. Die meisten Motoren benötigen eine höhere Spannung und Stromaufnahme, daher benötigen Sie eine externe Stromversorgung.

Verbinden Sie den Motor mit der H-Brücke Verbinden Sie den Motor mit der H-Brücke wie oben im 2. Bild gezeigt.

Wenn Sie ein externes Netzteil für den Arduino verwenden, können Sie den Vin-Pin verwenden.

Schritt 4: So funktioniert LDR

Das erste, was möglicherweise einer weiteren Erklärung bedarf, ist die Verwendung der lichtabhängigen Widerstände. Lichtabhängige Widerstände (oder LDRs) sind Widerstände, deren Wert sich je nach Umgebungslicht ändert, aber wie können wir den Widerstand mit Arduino erkennen? Nun, Sie können nicht wirklich, aber Sie können Spannungspegel mit den analogen Pins erkennen, die (im Grundbetrieb) zwischen 0-5 V messen können. Jetzt fragen Sie sich vielleicht: "Wie wandeln wir Widerstandswerte in Spannungsänderungen um?", es ist einfach, wir machen einen Spannungsteiler. Ein Spannungsteiler nimmt eine Spannung auf und gibt dann einen Bruchteil dieser Spannung proportional zur Eingangsspannung und dem Verhältnis der beiden Werte der verwendeten Widerstände aus. Die Gleichung dafür lautet:

Ausgangsspannung = Eingangsspannung * (R2 / (R1 + R2)) Dabei ist R1 der Wert des ersten Widerstands und R2 der Wert des zweiten.

Nun stellt sich noch die Frage „Aber welche Widerstandswerte hat der LDR?“, gute Frage. Je weniger Umgebungslicht, desto höher der Widerstand, mehr Umgebungslicht bedeutet einen geringeren Widerstand. Nun, für die einzelnen LDRs, die ich verwendet habe, lag der Widerstandsbereich zwischen 200 und 10 Kiloohm, aber dies ändert sich für verschiedene. Schauen Sie also nach, wo Sie sie gekauft haben, und versuchen Sie, ein Datenblatt oder ähnliches zu finden Fall R1 ist eigentlich unser LDR, also bringen wir diese Gleichung zurück und machen etwas Mathe-Magie (mathematische elektrische Magie). Jetzt müssen wir zuerst diese Kilo-Ohm-Werte in Ohm umwandeln: 200 Kilo-Ohm = 200.000 Ohm 10 Kiloohm = 10, 000 Ohm Um die Ausgangsspannung zu ermitteln, wenn wir uns in Pechschwarz befinden, geben wir die folgenden Zahlen ein: 5 * (10000 / (200000 + 10000)) Der Eingang beträgt 5 V, da wir dies erhalten vom Arduino. Das Obige ergibt 0,24 V (abgerundet). Jetzt finden wir die Ausgangsspannung in Spitzenhelligkeit, indem wir die folgenden Zahlen verwenden: 5 * (10000 / (10000 + 10000)) Und das ergibt genau 2,5 V. Dies sind also die Spannungswerte, die wir in die analogen Pins des Arduino eingeben werden, aber dies sind nicht die Werte, die im Programm angezeigt werden. "Aber warum?" Sie können fragen. Der Arduino verwendet einen Analog-Digital-Chip, der die analoge Spannung in nutzbare digitale Daten umwandelt. Im Gegensatz zu den digitalen Pins auf dem Arduino, die nur einen HIGH- oder LOW-Zustand von 0 und 5 V lesen können, können die analogen Pins von 0-5 V lesen und dies in einen Zahlenbereich von 0-1023 umwandeln. Jetzt mit etwas mehr Mathematik-E-Magie. Wir können tatsächlich berechnen, welche Werte das Arduino tatsächlich liest.

Da dies eine lineare Funktion ist, können wir die folgende Formel verwenden: Y = mX + C Wo; Y = Digitaler WertWo; m = Steigung, (Anstieg / Lauf), (Digitalwert / Analogwert)Wo; C = Y-AchsenabschnittDer Y-Achsenabschnitt ist 0, das ergibt: Y = mXm = 1023 / 5 = 204,6 Daher: Digitalwert = 204,6 * Analogwert Also in Pechschwarz ist der Digitalwert: 204,6 * 0,24 Was ungefähr 49 ergibt in Spitzenhelligkeit wird es sein: 204,6 * 2,5 Was ungefähr 511 ergibt. Jetzt können wir mit zwei davon auf zwei analogen Pins zwei Integer-Variablen erstellen, um ihre Werte zu speichern zwei und Vergleichsoperatoren durchführen, um zu sehen, welche den niedrigsten Wert hat. den Roboter in diese Richtung drehen.

Empfohlen: