Inhaltsverzeichnis:

4-Wege-Ampelsystem mit 5 Arduinos und 5 drahtlosen NRF24L01-Modulen - Gunook
4-Wege-Ampelsystem mit 5 Arduinos und 5 drahtlosen NRF24L01-Modulen - Gunook

Video: 4-Wege-Ampelsystem mit 5 Arduinos und 5 drahtlosen NRF24L01-Modulen - Gunook

Video: 4-Wege-Ampelsystem mit 5 Arduinos und 5 drahtlosen NRF24L01-Modulen - Gunook
Video: Arduino UNO Tutorial 2: Ampelsystem mit LEDs (tinkercad simulator) [Deutsch] 2024, November
Anonim
Image
Image
Ehrgeizig? Vielleicht!
Ehrgeizig? Vielleicht!

Vor einiger Zeit habe ich ein Instructable erstellt, das ein einzelnes Paar Ampeln auf einem Steckbrett detailliert beschreibt.

Ich habe auch ein weiteres Instructable erstellt, das das Grundgerüst für die Verwendung eines NRF24L01-Funkmoduls zeigt.

Das hat mich zum Nachdenken gebracht!

Es gibt viele Bastler auf der ganzen Welt, die Modellstädte und Eisenbahnen bauen und fast immer Ampeln mit irgendeiner Beschreibung haben.

Einige sind Arbeitsmodelle, andere dienen nur ästhetischen Zwecken.

Könnte ich ein funktionierendes Modell eines Vier-Wege-Ampelsystems erstellen und sie drahtlos verbinden?

Ich setzte mich hin und dachte über meine Liste möglicher Anforderungen nach. Was ein bisschen so ging.

Kontrollieren Sie 4 Verkehrsrichtungen, z. B. an einer Kreuzung.

Jede Richtung mit zwei Lichtern; und jedes Paar erhält seine Anweisungen drahtlos von einer Art Steuereinheit.

Sie können den Betriebsablauf der Leuchten definieren und ändern,

  • 1, 2, 3, 4 - im Uhrzeigersinn
  • 1, 3, 4, 2
  • 1, 4, 2, 3
  • 1, 4, 3, 2 – gegen den Uhrzeigersinn
  • 1, 2, 4, 3
  • 1, 3, 2, 4
  • 1 + 3, 2 + 4 – 2 ein 2 aus
  • 1 + 3, 2, 4
  • 1, 3, 2 + 4

Alle Sequenzen werden von einer einzigen Steuereinheit gesteuert, und die Empfangseinheiten schalten ausschließlich das Licht ein und aus.

Als ich sagte, mach ein Modell, meinte ich, mach ein echtes Modell, nichts Besonderes, aber etwas, das tatsächlich so aussehen würde wie das Original, möglicherweise, vielleicht isch.

Schritt 1: Ehrgeizig? Vielleicht

Anforderungen an die wichtigsten Teile:

Eine Steuereinheit und vier Lichtersätze = fünf Arduinos und fünf Funkmodule. AliExpress zur Rettung (wieder).

Acht Ampeln stehen. Ich habe eine schlechte Imitation eines 3D-Druckers, der tendenziell mehr Müll als brauchbare Produkte liefert, aber ich dachte, ich würde es trotzdem versuchen. Ich habe einige auf Thingiverse gefunden, www.thingiverse.com/thing:2157324

Dieses Modell sah für meinen Drucker am wenigsten komplex aus. Ich wollte acht, also versuchte ich immer noch mein Glück. Wie sich herausstellte, stellte ich fest, dass ich nach einigen fehlgeschlagenen Versuchen, wenn ich das Modell in eine bestimmte Richtung (von vorne nach hinten) ausrichtete, vernünftige Ergebnisse erzielte. Insgesamt habe ich dreizehn gedruckt und acht brauchbare erhalten.

Das war die Hauptteileliste sortiert. Die restlichen Teile hatte ich schon.

Die komplette Stückliste ist

  • 5 x Arduino UNOs
  • 5 x NRF24L01-Funkkarten
  • 5 x YL-105 (oder ähnliche) Breakout-Boards für die NRF24L0s
  • 8 x rote LEDs
  • 8 x gelbe LEDs (ich habe keine orangefarbenen LEDs)
  • 8 x grüne LEDs
  • 4 x RGB-LEDs
  • 28 x 220 Ohm Widerstände
  • Steckbretter / Leiterplatten??
  • 8 x Musterampel
  • 6 x 8 lange Stiftleisten (der sechste war für den Abstand auf der Steuerplatine, siehe Video)
  • Schrumpfschlauch
  • Überbrückungsdrähte
  • Stück Hartfaserplatte oder etwas Flaches
  • Andere Holzstücke ??
  • Farbe ??
  • Heißkleber
  • Zeit, Geduld und Alkohol nach Wahl

Schritt 2: Schreiben des Codes für die Steuereinheit

Dies war das Stück, das ich zuerst tun musste, nur für den Fall, dass ich es nicht wirklich schaffen würde, was ein Showstopper gewesen wäre.

Dies war mit Abstand der komplexeste Teil des Projekts, aber auch der interessanteste für mich.

Ich musste mich hinsetzen und alle möglichen Kombinationen von Lichtwechseln definieren und wie sie synchron zusammenarbeiten.

Wie jedes gute Design begann es auf dem Papier mit einer sehr langen Liste von Zahlen, und weil ich mehrere mögliche Bedienabläufe haben wollte, wurde die Liste noch länger.

Aber sobald ich glücklich war, dass ich alles hatte, was ich für erforderlich hielt, und nachdem ich eine Weile auf die Zahlenseiten gestarrt hatte, trat meine Zwangsstörung ein und ich begann Muster zu sehen.

Durch das Organisieren der Muster gelang es mir, die gesamte Sequenzierung in ein einzelnes dreidimensionales Array und zwei zweidimensionale Arrays zusammenzufassen.

Jetzt musste ich nur noch einen Weg finden, diese Arrays so zu manipulieren, dass die richtigen Sequenzierungs- und Lichtschritte erstellt werden.

Es hat eine Weile gedauert, aber ich habe es in weniger als fünfzig Zeilen Code geschafft, einschließlich Kommentaren usw.

Der Code dafür ist nichts für schwache Nerven, aber wenn Sie mehrdimensionale Arrays verstehen, sollte es nicht allzu schwer sein, ihm zu folgen. Oder eine Lernkurve für den Rest.

Der Punkt ist, dass ich glaube, es funktioniert und sollte sowieso nicht geändert werden müssen. Aber…………

Schritt 3: NRF24L01 Breakout Board Mod

NRF24L01 Breakout-Board-Mod
NRF24L01 Breakout-Board-Mod
NRF24L01 Breakout-Board-Mod
NRF24L01 Breakout-Board-Mod
NRF24L01 Breakout-Board-Mod
NRF24L01 Breakout-Board-Mod
NRF24L01 Breakout-Board-Mod
NRF24L01 Breakout-Board-Mod

Das Modul NRF24L01 und das Breakout-Board YL-105 sind leider nicht sehr Breadboard-freundlich.

Das Breakout-Board trägt zum Teil dazu bei, das Problem zu beheben und, was noch wichtiger ist, es 5V-tolerant zu machen, aber es ist immer noch nicht Breadboard-freundlich.

Also wurde ich ein bisschen erfinderisch.

In meiner Sammlung von "Zeug" habe ich eine Reihe von 6-poligen Stiftleisten mit langen Stiften. Die Art, die für die Herstellung von Arduino Shields erforderlich ist.

Ich habe eine davon genommen und die Stifte um 90 Grad gebogen.

Ich entfernte eine der Stromschienen von einem Steckbrett und steckte den Header in den Rand des Steckbretts.

Damit blieben die Power-Pins auf der Breakout-Platine. Sie sind jetzt im Weg.

Also habe ich sie entfernt und auf die andere Seite des Breakout-Boards gelegt, so dass sie jetzt aus der Rückseite des Boards herausragen.

Für die Zwecke dieses Instructable benötige ich fünf NRF24L01-Module, also habe ich sie entlang des Steckbretts montiert und dann die Stromschiene entlang aller Stromstifte auf der Breakout-Platine befestigt.

Es sah recht ordentlich aus, bis ich die Arduinos angeschlossen habe und es etwas voll wurde.

Plus, das ist das Wichtigste, sobald die Stromschiene angeschlossen war, würden alle Arduinos an dieselbe Quelle angeschlossen und das wollte ich vermeiden, also habe ich das meiste wieder auseinander genommen.

Ich werde das Board mit ein paar NRF24L01-Modulen für das Prototyping in Zukunft behalten, also keine komplette Zeitverschwendung.

Schritt 4: Ampeleinheiten

Ampeleinheiten
Ampeleinheiten
Ampeleinheiten
Ampeleinheiten
Ampeleinheiten
Ampeleinheiten

Ich fand einige kleine 170 Tie Point Steckbretter. Diese haben keine Stromschiene, so dass mein modifiziertes Breakout-Board noch passen würde. Allerdings leicht schräg wegen der Höhe des Breakout-Boards.

Ich habe die vier Ampelsteuerungen gleich gebaut, gleiche Kabelfarben, Positionierung usw. Sie sind jetzt wirklich eigenständig.

Für die Steuereinheit habe ich das NRF24L01-Modul auf eine Platine mit den RGB-LEDs gesteckt. Ich habe RGB verwendet, weil ich, obwohl ich nicht alle Lichter sehen musste, nur das Rot und das Grün, weniger Platz beanspruchen.

Die LEDs wurden normal mit dem Arduino verbunden und ein bisschen Code hinzugefügt, um den roten oder grünen Status jeder Ampel anzuzeigen.

Ich versuchte, mit meinen Verdrahtungsfarben konsistent zu sein, damit ich leicht sehen konnte, ob ich auf einem der Boards etwas anderes gemacht hatte.

Ich habe einige kurze Dupont-Kabelsätze, und da die Kabel zusammengeklebt sind, war dieser Teil ziemlich einfach.

NRF24L01:

  • CE Orange zu Arduino Pin 10 (im Code definiert)
  • CSN Yellow zu Arduino Pin 9 (im Code definiert)
  • SCK Grün zu Arduino Pin 13 (obligatorisch)
  • MOSI Blue zu Arduino Pin 11 (obligatorisch)
  • MISO Lila zu Arduino Pin 12 (obligatorisch)
  • Vcc Rot bis 5V. Wenn Sie die Breakout-Boards nicht verwenden, muss diese 3,3 V betragen.
  • GND Braun zu Arduino GND

Leuchteinheiten und Arduino-Pins zu LEDs:

  • Rot für rote LED
  • Orange für die gelbe LED (ich habe keine orangefarbenen LEDs)
  • Grün für die grüne LED
  • Schwarz für GND

Meine einzige Abweichung davon war, als ich das Control Arduino an die RGB-LEDs anschloss. Ich habe weiße und graue Drähte verwendet, weil mir die roten ausgegangen waren.

Schritt 5: Ampeln und Tests

Image
Image
Ampeln und Tests
Ampeln und Tests
Ampeln und Tests
Ampeln und Tests

Damit ist der Code abgeschlossen und jedes eigenständige Steuerelement ist ebenfalls abgeschlossen. Jetzt brauche ich nur noch die Ampel.

Wie bereits erwähnt, habe ich auf Thingiverse ein unkompliziertes Modell gefunden und es geschafft, acht zu drucken, die nicht schlecht aussahen.

Ich habe die LEDs mit ihrem erforderlichen 200-Ohm-Widerstand und einem Link- und Massekabel ausgestattet.

Schrumpfschlauch die Leitungen und Heißkleber alles an Ort und Stelle.

Ich beschloss, sie schwarz zu malen, nachdem alle LEDs montiert waren. Schlechte Idee, das hätte ich vorher machen sollen.

Ich habe alles für einen Test verkabelt, bevor ich weitermache.

Schritt 6: Die Kreuzung

Die Kreuzungen
Die Kreuzungen
Die Kreuzungen
Die Kreuzungen
Die Kreuzungen
Die Kreuzungen
Die Kreuzungen
Die Kreuzungen

Ich beschloss, sie alle auf einem Brett zu montieren, also musste ich jetzt eine Art Kreuzungs-Lookalike erstellen.

Ich lebe in Großbritannien, also fahren wir hier auf der falschen Straßenseite, und deshalb habe ich meine Kreuzung so Großbritannien-freundlich gestaltet, wie es meine schlechten künstlerischen Fähigkeiten zuließen.

Das war ganz einfach, nur zeitaufwendig; und ich bin mir sicher, dass es keine Kreuzungen gibt, die tatsächlich so aussehen, aber meine haben keine Schlaglöcher.

Ich wollte meine Arduinos nicht dauerhaft diesem Projekt opfern, also ging ich einen Kompromiss ein, indem ich jeden mit 10 mm Abstandshaltern bestückte und die Abstandshalter auf die Basis der Platine heiß geklebt habe.

Was ich jedoch getan habe, ist das Mini-Steckbrett an der Seite des Arduino heiß zu kleben.

Erstens hielt es das NRF24L01 und das Breakout-Board von der Basis der Kreuzung, und zweitens benutze ich sowieso selten ein Arduino ohne ein Steckbrett, also werden sie immer noch so nützlich sein.

Schritt 7: Alles fertig

Alles erledigt
Alles erledigt
Alles erledigt
Alles erledigt

Alle Codedateien sind enthalten.

Ich habe den Code hier nicht durchlaufen, da dieses Instructable ohne es lang genug ist.

Ich hoffe, dass dies ein nützliches Instructable war, auch wenn es nur zeigt, wie man eine Reihe anderer Arduino-Boards drahtlos mit dem sehr preisgünstigen NRF24L01 steuert.

Wenn Sie Fragen haben, zögern Sie bitte nicht, einen Kommentar abzugeben, und ich werde mein Bestes tun, um Ihnen zu helfen.

Empfohlen: