Aufbau-Anleitungen für die c't-Beispielprogramme
- Allgemeines zum Steckbrett
- Hallo Arduino -- die erste Testschaltung aus dem c't-Artikel
- Zu Diensten -- die Servo-Testschaltung aus dem c't-Artikel
- Beschleunigen -- der 3D-Spiele-Controller aus dem c't-Artikel
- Showtime -- der 3D-Spiele-Controller im Einsatz
Siehe auch: Volltext des c't-Artikels zu Arduino in Ausgabe 16/09
Allgemeines zum Steckbrett
Steckbretter (englisch breadboard) gibt es in verschiedenen Ausführungen, Längen und Lochzahlen zu kaufen. Prinzipiell funktionieren sie allerdings alle auf ähnliche Weise:
- Jeweils die oberen und die unteren beiden Lochreihen sind längs miteinander verbunden; sie werden üblicherweise mit der Versorgungsspannung (+) und Masse (-) beschaltet. Bei manchen Ausführungen sind die Leisten bereits mit den entsprechenden Symbolen gekennzeichnet und farbigen Linien gekennzeichnet. Die obere und die untere Plus-Leiste koppelt man mit einer Drahtbrücke aneinander, ebenso schließt man die obere und die untere Minus-Leiste aneinander an.
- Die inneren Reihen sind hingegen untereinander quer verbunden, also in horizontaler Richtung, wenn das Steckbrett wie auf unseren Aufbauplänen unten ausgerichtet ist. Die waagerechte Längskerbe in der Mitte trennt wiederum die obere und die untere Hälfte. Bausteine mit zwei Reihen Anschlusspins wie das Arduino-Nano-Board oder der Beschleunigungssensor auf der von Segor vertriebenen Platine müssen stets so platziert werden, dass ihre Stiftleisten die zentrale Längskerbe getrennt sind -- andernfalls verbindet man je zwei Pins auf der einen und der anderen Seite.
- Die unsichtbare Verschaltung des Steckbretts erlaubt, von unseren Bestückungsplänen in Details abzuweichen, etwa, wenn man keine genau passende Drahtbrücke zur Hand hat und eine vorhandene nicht verbiegen will: Benachbarte Löcher einer verbundenen Lochleiste funktionieren genauso gut wie die auf dem Plan angegebenen. Auf diese Weise lassen sich die Schaltungen in gewissem Rahmen auch komprimieren, um auf kürzere Steckbretter zu passen, oder auf größeren Grundplatten lockerer stecken.
- Für alle unsere Beispielschaltungen haben wir das Steckbrett so ausgerichtet, dass bei den Längsstreifen die rot markierte Plus-Leiste oben und die blaue Minusleiste unten sitzt. Die Zahlen der Spalten beginnen dann auf der linken Seite.
- Fürs schnellere Zusammenstecken gibt es Sets mit fertig gebogenen Drahtbrücken zu kaufen, die in der Regel passende Verbindungen für oft benötigte Standard-Lochabstände enthalten. Solchen fertigen Drahtbrücken sind oft der Länge nach unterschiedlich gefärbt, während in den Schaltplänen die Farben der Kabel deren Funktion kodieren (rot: Plus, schwarz: Minus, orange: Verbindungen zwischen Controller und Bauteilen). Daher kommt es zwischen Plan und Foto häufig zu Farbabweichungen bei der Kabelage.
Hallo Arduino
Beim ersten Beispielprogramm button.pde bringt das Arduino-Board eine Leuchtdiode zum Leuchten; drückt man auf einen Taster, erlischt sie. Je nachdem, welches Arduino-Board Sie verwenden, sieht die Schaltung etwas anders aus -- beim Arduino Duemilanove beispielsweise so:
Auf einem kurzen Steckbrett und mit dem Arduino Nano sieht die Schaltung wie folgt aus:
Vom Prinzip her unterscheiden sich beide Schaltungen allerdings nicht:
- Die schwarze Drahtbrücke verbindet den Massepin (GND) mit der untersten Lochleiste, die rote beschaltet die Reihe darüber mit 5 Volt.
- Die orangenen Leitungen verbinden die Pins 13 (Duemilanove) beziehungsweise D13 (Nano) und 2 (beziehungsweise D2) mit der LED und dem Taster.
- Achtung: Beim Ardunino Nano sind die Anschlüsse jeweils über dem Pin beschriftet.
- Bei der Leuchtdiode (LED) ist auf die richtige Polung zu achten, da eine Diode den Strom nur in einer Richtung durchlässt und in Gegenrichtung sperrt. Deshalb unterscheidet man bei den Anschlüssen einer Diode die Anode und die Kathode. Der Strom fließt per Definition von Plus nach Minus (technische Stromrichtung); die Diode lässt ihn nur durch, wenn er an der Anode hinein- und an der Kathode hinausfließt.
Je nach Bauform markiert ein längeres Beinchen oder ein Knick darin die Anode (wie im Schaltplan gezeigt); sie muss hier mit Pin 13 verbunden werden.
Achtung: Eine Leuchtdiode ist nicht mit einer Glühbirne zu verwechseln! Während letztere einen nennenswerten Widerstand mitbringt und selbst als Verbraucher wirkt, verursacht eine ohne weiteren Schutzwiderstand in Durchlassrichtung zwischen 5 Volt und Masse geschaltete Leuchtdiode einen Kurzschluss!
- Im Schaltplan sind die Widerstände mit vier Ringen codiert:
- braun-schwarz-rot--gold = 1000 Ohm (1 kOhm) bei 5 Prozent Toleranz
- braun-schwarz-orange--gold = 10.000 Ohm (10 kOhm) bei 5 Prozent Toleranz
- Möglicherweise sind Ihre Widerstände aber mit fünf Ringen codiert, in diesem Fall entsprechen:
- 1000 Ohm (1 kOhm) = braun-schwarz-schwarz-braun--braun (Toleranz hier 1 Prozent)
- 10.000 Ohm (10 kOhm) = braun-schwarz-schwarz-rot--braun (Toleranz hier 1 Prozent)
Bevor Sie das Arduino-Board mit dem USB-Kabel unter Strom setzen und das Programm hineinladen, überprüfen Sie nochmals die korrekte Platzierung aller Bauteile. Zu dieser Schaltung gehört unser Programm button.pde.
Zu Diensten
Beim zweiten Beispielprogramm servo.pde sollen Steuerbefehle für ein Servo von der PC-Tastatur entgegengenommen werden.
Der Aufbau ist simpel: Verbinden Sie einfach die Steuerleitung des Servo mit Pin 9 des Boards und beschalten Sie die anderen beiden mit 0 und 5 Volt. Achtung: Die Hersteller kodieren die Kabel ihrer Servos unterschiedlich, bei falschem Anschluss stirbt möglicherweise der Servo. Ziehen Sie daher unbedingt die Dokumentation Ihres Servos oder die Herstellerwebseite zu Rate! Alternativ findet man auch Quellen im Netz.
Beim Anschluss des Servo auf dem Steckbrett helfen kurze Stiftleisten, aber man kann auch kurze Drahtbrücken zur Hilfe nehmen, wie auf dem Foto gezeigt.
Bevor Sie das Arduino-Board mit dem USB-Kabel unter Strom setzen und das Programm hineinladen, überprüfen Sie nochmals die korrekte Platzierung aller Bauteile. Zu dieser Schaltung gehört unser Programm servo.pde.
Beschleunigen
Als drittes Beispiel stellt der c't-Artikel den 3D-Spiele-Controller auf Basis des Beschleunigungssensors ADXL330 vor. Je nachdem, welches Arduino-Board und auch welchen Sensor Sie verwenden, sieht die Schaltung etwas anders aus.
Hier zunächst der Schaltplan für den Arduino Nano Version 2.X und den Beschleunigungssensor auf einer Platine mit Stiftleisten, wie er bei Segor zu bekommen ist. Achtung: Der Schaltplan muss bei Verwendung eines Arduino Nano Version 3.0 etwas geändert werden, da hier die Pins A0 bis A7 in der umgekehrten Reihenfolge am Controllerboard angeordnet sind. Bitte beachten Sie hierfür die Beschriftungen des Arduino.
Zu beachten:
- Der Beschleunigungssensor muss unbedingt richtig herum auf das Steckbrett gesetzt werden. Eine Ecke des quadratischen Gehäuses ist mit einem winzigen Punkt markiert (der auch auf dem Schaltplan angedeutet ist). Dieser Punkt muss zum Arduino-Board hin ausgerichtet sein.
- Die schwarze Drahtbrücke verbindet den Massepin (GND) mit der untersten Lochleiste, die rote beschaltet die Reihe darüber mit 3,3 Volt, der Versorgungsspannung des Sensors.
- Die schwarze und die rote Drahtbrücke ganz links koppeln die oberen und die unteren Längsleisten aneinander, so dass der Sensor von oben mit den beiden roten Drahtbrücken mit Spannung versorgt werden kann.
- Die orangenen Leitungen verbinden die Output-Pins des Sensors mit den Eingängen A0, A1 und A2; bei Verwendung eines Arduino Nano 3.0 weicht deren Position vom oben gezeigten Schaltplan ab.
- Der Taster entspricht der Tasterschaltung aus dem ersten Beispiel.
- Wer die Schaltung entschlossen enger steckt, bringt sie eventuell auch auf einem kurzen Steckbrett unter; wer leichter an den Taster kommen will, kann ihn auch noch weiter nach rechts versetzen.
- Für eine dauerhafte Installation ist es empfehlenswert, die Drahtbrücken auf die optimale Länge zu kürzen.
Bevor Sie das Arduino-Board mit dem USB-Kabel unter Strom setzen und das Programm hineinladen, überprüfen Sie nochmals die korrekte Platzierung aller Bauteile. Zu dieser Schaltung gehört unser Programm controller.pde.
Der Spielecontroller lässt sich natürlich auch mit ähnlichen Bauteilen umsetzen. Hier beispielsweise der alternative Schaltplan für einen Arduino Duemilanove, bei dem der Sensor auf einer kleinen Platine (breakout board) mit Stiftleiste sitzt und direkt auf die Analog-Buchsenleiste des Boards gesteckt wird. Solche Module gibt es etwa bei der Firma Sparkfun:
In diesem Fall werden allerdings ein paar Änderungen am Code notwendig:
- Als Eingänge für die Sensorwerte dienen nicht mehr die Analog-Eingänge 0 bis 2, sondern 1 bis 3.
- Für die Spannungsversorgung und die Erdung müssen Pin 4 und 5 als Output-Pins deklariert und mit LOW (Pin 4) und HIGH (Pin 5) belegt werden. Zwar ist der ADXL330 nur für 3,3 Volt Betriebsspannung ausgelegt und wird dann mit 5 Volt betrieben. Allerdings gibt das Datenblatt des Sensors als absolutes Maximum für die Versogungsspannung 7 Volt an; insofern dürfte fürs Herumspielen und Ausprobieren die etwas zu hohe Spannung aus dem Arduino-Board kein Problem sein. Im Dauerbetrieb sollte man den Sensor allerdings mit der Nennspannung betreiben, etwa, indem man ihn statt aufs Board aufs Steckbrett stöpselt und die Verbindungen zwischen Buchsenleiste und Sensor mit Kabelbrücken herstellt.
Showtime
Als kleines Spiel zum Ausprobieren des Controllers gibt es unseren LunarLander zum Download, ein kleines Processing-Spiel in Retro-Grafik, bei dem man eine Mondlandefähre sicher auf den Boden bringen muss.
- Installieren Sie zunächst Processing.
- Laden Sie sich dann den LunarLander sowie das Hilfsprogramm ADXLgraph herunter, packen beide ZIP-Archive aus und verschieben den Inhalt in Ihr Sketchbook-Verzeichnis.
- Schließen Sie den wie oben beschrieben aufgebauten Controller an das USB-Kabel an und starten Sie zunächst ADXLgraph. Nach kurzer Zeit sollten auf dem Bildschirm drei Kurven erscheinen, die den Sensor-Output in X-, Y- und Z-Richtung nachzeichnen.
- Legen Sie das Steckbrett mit dem Controller auf eine waagerechte Oberfläche und warten Sie, bis sich die als Zahlen angegebenen Durchschnittswerte stabilisiert haben. Notieren Sie sich diese Werte und beenden Sie dann das Processing-Programm.
- Öffnen Sie das Programm LunarLander.pde in Processing und tragen Sie die drei notierten Zahlen als individuelle Werte Ihres Sensors für X_AV, Y_AV und Z_AV ein.
- Setzen Sie im Code serialAvailable auf true, um den Controller scharf zu schalten.
- Falls Sie den Sensor auf einer anderen Platine als der von Segor erworben haben, korrigieren Sie den Drehwinkel des Sensors in der X-Y-Ebene, der im Code in der Konstante XY_ANG im Bogenmaß angegeben ist -- beim Sparkfun-Modul beträgt der Winkel beispielsweise 0.
- Starten Sie anschließend LunarLander und nehmen Sie das Steckbrett in beide Hände, so dass das USB-Kabel nach links zeigt. Ziel ist die sichere Landung der Mondfähre auf einer der wenigen waagerechten Flächen der zerklüfteten Landschaft. Die Lage der Landefähre steuern Sie über den Beschleunigungssensor, indem Sie das Steckbrett sanft nach rechts oder links kippen. Mit dem Taster zünden Sie die Hauptrakete, die den Sinkflug bremst.
- Falls Sie gar nicht so weit kommen, weil die Kommunikation zwischen Board und Processing-Programm nicht klappt, müssen Sie die Zeile
port = new Serial(this, Serial.list()[0], 9600);
anpassen, denn diese wählt stets den ersten verfügbaren Port des Rechners für die Kommunikation.
Hinweis: Alle Grafiken auf dieser Seite wurden mit Fritzing erstellt, einem kostenlosen Werkzeug, das einerseits dem Entwurf und der grafischen Darstellung von Schaltungen auf dem Steckbrett dient, andererseits aber auch die Entwicklung von passenden Platinenlayouts unterstützen soll, wenn aus dem Experiment oder Prototyp ein in Serie hergestelltes Produkt werden soll.
Diese Seite ist schreibgeschützt. Änderungsvorschläge bitte per Mail an pek@….
Attachments
- arduino01.png (79.8 kB) - added by pek 3 years ago.
- arduino03.png (113.0 kB) - added by pek 3 years ago.
- nano01.png (77.1 kB) - added by pek 3 years ago.
- nano03.png (59.7 kB) - added by pek 3 years ago.
- servo.jpg (79.2 kB) - added by pek 3 years ago.
- arduino03.jpg (79.2 kB) - added by pek 3 years ago.





