Wie erstelle ich eine Arduino-basierte Ampelsteuerung?
Ampeln sind Signalgeräte, mit denen der Verkehrsfluss an Straßenkreuzungen, Fußgängerüberwegen und anderen Orten gesteuert wird. Es ist eine Kombination aus drei Lichtfarben: Rot, Gelb und Grün. Das rote Licht weist die Leute an, anzuhalten, das gelbe sagt, sie sollen sich fertig machen oder den Motor starten, wenn er ausgeschaltet ist, und das grüne Licht zeigt an, dass Sie frei sind, weiterzumachen.
In diesem Projekt werden wir ein 4-Wege-Verkehrssignalsystem unter Verwendung eines Mikrocontrollers herstellen. Wir werden ein brennen C-Code auf der Arduino Uno-Karte, um anzugeben, wie die LEDs ein- und ausgeschaltet werden sollen, damit der perfekte Zeitpunkt für das Umschalten im Signalisierungsprozess erreicht werden kann. Zu Testzwecken werden 4 Kombinationen von 4 LEDs verwendet und auf dem Steckbrett platziert.
Wie erstelle ich ein 4-Wege-Verkehrssignal mit Seeeduino v4.2?
Verkehrssignale sind das Wichtigste, was auf den Straßen installiert wird, um einen reibungslosen und gleichmäßigen Verkehrsfluss zu gewährleisten und das Unfallrisiko zu minimieren. Wir können dieses Projekt auf einem kleinen Steckbrett machen. Lassen Sie uns einige Informationen über dieses Projekt sammeln und mit der Arbeit beginnen.
Schritt 1: Sammeln der Komponenten
Der beste Ansatz, um ein Projekt zu starten, besteht darin, zu Beginn eine Liste der vollständigen Komponenten zu erstellen und eine kurze Untersuchung jeder Komponente durchzuführen. Dies hilft uns, die Unannehmlichkeiten in der Mitte des Projekts zu vermeiden. Eine vollständige Liste aller in diesem Projekt verwendeten Komponenten finden Sie unten.
Schritt 2: Studieren der Komponenten
Nachdem wir nun die Zusammenfassung unseres Projekts kennen und auch eine vollständige Liste aller Komponenten haben, lassen Sie uns einen Schritt voraus gehen und eine kurze Untersuchung der Komponenten durchführen, die wir verwenden werden.
Seeeduino v4.2ist eines der besten Arduino-kompatiblen Boards der Welt, das auf dem Mikrocontroller Atmega 328 MCU basiert. weil es einfach zu bedienen, stabiler und besser aussieht als viele andere Boards. Es basiert auf dem Arduino Bootloader. Es verfügt über einen ATMEGA16U2 als UART-zu-USB-Wandler, von dem es als FTDI-Chip verwendet werden kann. Die Verbindung zum Computer erfolgt über ein Micro-USB-Kabel, das im Allgemeinen als Android-Kabel bezeichnet wird. Eine DC-Buchse kann auch zur Stromversorgung der Karte verwendet werden. Die Eingangsleistung muss zwischen 7V und 15V liegen.
EIN Steckbrettist ein lötfreies Gerät. Es wird verwendet, um temporäre Prototypen elektronischer Schaltungen und Designs herzustellen und zu testen. Die meisten elektronischen Komponenten werden einfach durch Einstecken ihrer Stifte in das Steckbrett mit einem Steckbrett verbunden. Ein Metallstreifen wird in die Löcher des Steckbretts gelegt und die Löcher werden auf eine bestimmte Weise verbunden. Die Anschlüsse der Löcher sind in der folgenden Abbildung dargestellt:
Schritt 3: Arbeitsprinzip
Lassen Sie uns eine kurze Einführung in das Arbeitsprinzip des 4-Wege-Verkehrssignalprojekts geben. Da dies eine 4-Wege-LED ist, benötigen wir zwölf LEDs und vier Kombinationen von drei LEDs. Der Code ist so geschrieben, dass, wenn eine Kombination grünes Licht anzeigt, alle anderen Kombinationen rotes Licht anzeigen. Wenn sich ein Signal von grün nach gelb oder von rot nach gelb ändert, zeigt eine andere Kombination der LEDs auch eine Transaktion von rot nach gelb bzw. von gelb nach rot an.
Dies alles erfolgt mit einer Zeitverzögerung zwischen dem Übergang der Signale. Beispielsweise bleibt eine LED fast fünfzehn Sekunden lang grün, eine LED fast zwei Sekunden lang gelb. Die Dauer der roten LED hängt von der Dauer der grünen LED ab. Wenn eine LED fünfzehn Sekunden lang grün leuchtet, leuchten alle anderen roten LEDs fünfzehn Sekunden lang.
Schritt 4: Erstellen der Schaltung
Nachdem wir nun die Hauptfunktion der Komponenten kennen, lassen Sie uns fortfahren und mit dem Zusammenbau der Komponenten beginnen, um die Schaltung herzustellen. Führen Sie die folgenden Schritte aus, um alle Komponenten im Steckbrett korrekt anzuschließen.
- Nehmen Sie zunächst alle LEDs und schließen Sie sie in der richtigen Reihenfolge rot, gelb und grün an das Steckbrett an.
- Stellen Sie eine gemeinsame Verbindung der Erdung aller LEDs her. Es ist besser, einen 220-Ohm-Widerstand an den Pluspol der LED anzuschließen.
- Verbinden Sie nun die Verbindungsdrähte entsprechend.
- Verbinden Sie nun die LEDs mit dem Arduino, wie im folgenden Schaltplan gezeigt. LED-1, LED-2 bis LED-12 werden an Pin1, Pin2 bis Pin12 der Arduino Uno-Karte angeschlossen.
- Laden Sie den Code in das Arduino Uno hoch und versorgen Sie ihn mit einem Laptop oder dem AC / DC-Adapter.
- Die Schaltung sieht wie folgt aus:
Schritt 5: Erste Schritte mit Arduino
Wenn Sie mit Arduino IDE noch nicht vertraut sind, machen Sie sich keine Sorgen, denn unten sehen Sie klare Schritte zum Brennen von Code auf der Mikrocontroller-Karte mit Arduino IDE. Sie können die neueste Version von Arduino IDE hier herunterladen und die folgenden Schritte ausführen:
1). Wenn die Arduino-Karte an Ihren PC angeschlossen ist, öffnen Sie "Systemsteuerung" und klicken Sie auf "Hardware und Sound". Klicken Sie dann auf "Geräte und Drucker". Suchen Sie den Namen des Ports, an den Ihre Arduino-Karte angeschlossen ist. In meinem Fall ist es "COM14", aber es kann auf Ihrem PC anders sein.
2). Öffnen Sie nun die Arduino IDE. Stellen Sie unter Tools die Arduino-Karte auf ein Arduino / Genuino UNO.
3). Stellen Sie im selben Tool-Menü die Portnummer ein, die Sie in der Systemsteuerung gesehen haben.
4). Laden Sie den unten angehängten Code herunter und kopieren Sie ihn in Ihre IDE. Um den Code hochzuladen, klicken Sie auf die Schaltfläche zum Hochladen.
Sie können den Code herunterladen, indem Sie hier klicken.
Schritt 6: Code
Der Code ist gut kommentiert und selbsterklärend, dennoch wird ein Teil des Codes im Folgenden kurz erläutert.
1. Zu Beginn werden alle Pins benannt, die später mit Arduino verbunden werden.
int led1 = 1; // rotes Licht 1 int led2 = 2; // gelbes Licht 1 int led3 = 3; // grünes Licht 1 int led4 = 4; // rotes Licht 2 int led5 = 5; // gelbes Licht 2 int led6 = 6; // grünes Licht 2 int led7 = 7; // rotes Licht 3 int led8 = 8; // gelbes Licht 3 int led9 = 9; // grünes Licht 3 int led10 = 10; // rotes Licht 4 int led11 = 11; // gelbes Licht 4 int led12 = 12; // grünes Licht 4
2. void setup ()ist eine Funktion, in der wir alle Pins der Arduino-Karte als INPUT oder OUTPUT deklarieren. In dieser Funktion wird auch die Baudrate eingestellt. Die Baudrate ist die Kommunikationsgeschwindigkeit in Bit pro Sekunde, mit der die Mikrocontroller-Karte mit den externen Geräten kommuniziert. Diese Funktion wird nur einmal ausgeführt, wenn die Freigabetaste der Mikrocontroller-Karte gedrückt wird.
void setup () {Serial.begin (9600;) // Die Baudrate ist auf 9600 pinMode (led1, OUTPUT) eingestellt; // Alle an LEDs angeschlossenen Pins werden als OUTPUT pinMode (led2, OUTPUT) gesetzt; pinMode (led3, OUTPUT); pinMode (led4, OUTPUT); pinMode (led5, OUTPUT); pinMode (led6, OUTPUT); pinMode (led7, OUTPUT); pinMode (led8, OUTPUT); pinMode (led9, OUTPUT); pinMode (led10, OUTPUT); pinMode (led11, OUTPUT); pinMode (led12, OUTPUT); }}
3. void loop ist eine Funktion, die wiederholt in einer Schleife ausgeführt wird. In dieser Funktion codieren wir den gesamten Vorgang, mit dem der Mikrocontroller die externen LEDs steuert. Ein kleiner Teil des Codes ist unten angegeben. Hier leuchtet das grüne Licht der ersten Seite und alle anderen Seiten leuchten rot. Diese Lichter bleiben 15 Sekunden lang in diesem Zustand. Nach 15 Sekunden leuchtet das gelbe Licht der ersten und zweiten Seite auf den beiden anderen Seiten auf und das rote Licht bleibt eingeschaltet. Nach einer Verzögerung von zwei Sekunden leuchtet die erste Seite rot und die zweite Seite grün. Dies geschieht so lange, bis alle vier Seiten ihre grünen Lichter eingeschaltet haben, und dann wiederholt sich die Schleife.
digitalWrite (led1, LOW); // Rotes Licht der ersten Seite ist aus digitalWrite (led2, LOW); // gelbes Licht f erste Seite ist aus digitalWrite (led3, HIGH); // Grünes Licht der ersten Seite ist auf digitalWrite (led4, HIGH); // Rotes Licht der zweiten Seite leuchtet auf digitalWrite (led5, LOW); // gelbes Licht der zweiten Seite ist aus digitalWrite (led6, LOW); // grünes Licht der zweiten Seite ist aus digitalWrite (led7, HIGH); // Rotes Licht der dritten Seite leuchtet auf digitalWrite (led8, LOW); // gelbes Licht der dritten Seite ist aus digitalWrite (led9, LOW); // grünes Licht der dritten Seite ist aus digitalWrite (led10, HIGH); // rotes Licht der vierten Seite ist auf digitalWrite (led11, LOW); // gelbes Licht der vierten Seite ist aus digitalWrite (led12, LOW); // grünes Licht der vierten Seite ist aus Verzögerung (15000); // Aufgrund einer Verzögerung von 15 Sekunden bleiben das grüne Licht der ersten Seite und die roten Lichter der anderen drei Seiten 15 Sekunden lang eingeschaltet. digitalWrite (led1, LOW); // rotes Licht der ersten Seite ist aus digitalWrite (led2, HIGH); // Gelbes Licht der ersten Seite leuchtet auf digitalWrite (led3, LOW); // grünes Licht der ersten Seite ist aus digitalWrite (led4, LOW); // rotes Licht der zweiten Seite ist aus digitalWrite (led5, HIGH); // Gelbes Licht der zweiten Seite leuchtet auf digitalWrite (led6, LOW); // grünes Licht der zweiten Seite ist aus digitalWrite (led7, HIGH); // Rotes Licht der dritten Seite leuchtet auf digitalWrite (led8, LOW); // gelbes Licht der dritten Seite ist aus digitalWrite (led9, LOW); // grünes Licht der dritten Seite ist aus digitalWrite (led10, HIGH); // rotes Licht der vierten Seite ist auf digitalWrite (led11, LOW); // gelbes Licht der vierten Seite ist aus digitalWrite (led12, LOW); // grünes Licht der vierten Seite ist aus Verzögerung (2000); // Aufgrund einer Verzögerung von 2 Sekunden bleibt das gelbe Licht der ersten und zweiten Seite eingeschaltet
Dies war also die gesamte Prozedur, um ein 4-Wege-Verkehrssignal zu erstellen. Jetzt können Sie es genießen, es für Ihr Lernen oder ein Schulprojekt zu machen.