4.12.2016
Das Entwicklungsboard Arduino UNO basiert auf dem Microcontroller ATmega328. Zusammen mit der Software Arduino ermöglicht es selbst Programmieranfängern Microcontroller-Projekte der Steuer- und Regelungstechnik zu realisieren. Dieser Artikel liefert einen Einstieg für den absoluten Anfänger von der Hard- und Software-Beschaffung bis zum ersten Programm, das eine Leuchtdiode blinken lässt.
Was brauche ich? Im Prinzip brauchen wir nur das Entwicklungsboard Arduino UNO R3, welches meistens mit einem USB-Kabel geliefert wird, ein Rechner mit USB-Schnittstelle und die kostenlose Arduino-Software Arduino IDE aus dem Internet. Das Entwicklerboard Arduino UNO R3 habe ich mir inklusive USB-Kabel und Versandkosten für etwa 5 Euro in der Bucht direkt aus China besorgt. Teuer ist der Einstieg also wirklich nicht.
Ein zusätzliches Steckernetzteil für ein paar Euro ist kein Muss, aber hilfreich. Und schon können wir loslegen. Unter https://de.wikipedia.org/wiki/Arduino_(Plattform) gibt es Hintergrund-Infos zum Arduino-Projekt. Für den Arduino gibt es jede Menge Sensoren, LCD-Anzeigen und weiteres Zubehör, welches man ebenfalls in der Bucht findet. Für die Programmierung stehen zahlreiche vorgefertigte Bibliotheken (Libraries) zur Verfügung, welche die Ansteuerung dieser externen Hardware-Module einfach gestalten. Es sei noch zu erwähnen, dass in der “Bucht” Kits mit einem Sortiment verschiedener Sensoren angeboten werden. Es gibt sehr viel steckbares Zubehör, wodurch ein Löten entfällt.
Arduino ursprünglich für Künstler geschaffen: Wohlgemerkt wurde Arduino nicht für Programmierer geschaffen. Wer wirklich das Programmieren lernen möchte, sollte sich besser mit C beschäftigen. Ursprünglich wurde Arduino für Künstler entwickelt, welche mit einem Microcontroller ihre Installationen steuern möchten. Letzten Endes heiligt jedoch der Zweck die Mittel.
Zahlreiche fertige Arduino-Projekte im Internet: Viele Leser interessieren sich einfach nur dafür, wie vorhandene Programme in den Microcontroller gelangen, um fertig programmierte Projekte zu realisieren, wie sie z.B. unter http://www.vwlowen.co.uk/arduino/index.htm oder http://circuitdigest.com/arduino-projects beschrieben sind. Mein Artikel soll dabei helfen die Anfängerhürden zu überwinden, denn für einen Anfänger ist nichts selbstverständlich. Weiter unten im Text ab 8. befinden sich noch mehr Links zu Arduino-Projekten.
Viele Webseiten dokumentieren die Verdrahtungen mit Hilfe von bildhaften Darstellungen unter Verwendung des Programms Fritzing. Der Vorteil keine Schaltbilder und Schaltsymbole mehr lesen können zu müssen, hat seinen Preis, denn nur ein Schaltbild bietet die notwendige unmissverständliche Klarheit und damit das Verständnis, wie die Elektronik überhaupt funktioniert. Es besteht die Gefahr, dass der Arduino nach einer Anleitung mit einem ebenfalls verdrahteten Steckbrett verbunden wird, ohne zu verstehen, was man da eigentlich macht.
Schritt-für-Schritt-Anleitung von der Beschaffung der Hard- und Software bis zum Brennen des ersten Programms
1. Das Entwicklerboard Arduino UNO R3: Es ist unter https://www.arduino.cc/en/Main/ArduinoBoardUno vorgestellt. Zwischen den Bezeichnungen Arduino und Genuino gibt es keine Unterschiede. Die unterschiedlichen Bezeichnungen haben juristische Ursachen. Die Belegung der Pins des Boards und des Microcontrollers sind unter
http://forum.arduino.cc/index.php?topic=146315.0 und
https://www.robomart.com/arduino-uno-online-india
beschrieben. Wir wählen eine Variante des Board, dessen Microcontroller steckbar ist und nicht die SMD-Ausführung. Den Unterschied erkennt man auf den Bildern der Anbieter.
Die SMD-Version des Arduino UNO R3 aus chinesischer Produktion habe ich für etwa 3 Euro einschließlich Versandkosten entdeckt. Wir können bei diesem günstigen Preis das Entwicklerboard als Baugruppe betrachten, um sie in selbst gebauten Geräten einzusetzen. Zudem liefert dieses Board wie seine steckbare Version ebenfalls noch stabilisierte 5 Volt und 3,3 Volt. Diese Funktionen auf einer Lochrasterplatte nachzubauen, würde die Materialkosten von 3 Euro wahrscheinlich überschreiten.
Der Arduino UNO R3 ist über ein USB-Kabel mit dem Rechner verbunden, um den ATmega328 programmieren zu können oder um die Firmware aufspielen zu können. Wenn eine gelbe Leuchtdiode auf dem noch ungenutzten Board schnell blinkt oder nur durchgehend leuchtet, ist das normal. Mit Beschaffungskosten um die 5 Euro ist der Weg frei in die Arduino-Welt. Im Bild zu sehen ist die steckbare Variante des Arduino UNO R3.
Ein altes Notebook mit Windows XP dient mir für den Einstieg. Die Entwickler-Software Arduino gibt es für verschiedene Betriebssysteme.
Den Arduino UNO R3 gibt es in verschiedenen Versionen. In der hier verwendeten Version ist der Microcontroller steckbar im DiL-Gehäuse ausgeführt. Wir können den ATmega328 auf dem Arduino programmieren, die Firmware auf ihn brennen und den ATmega nach dem Ausbau in einer anderen Schaltung verwenden.
Die Rückseite des Boards. Es steht zwar “Made in Italy”drauf, in Wirklichkeit ist es in China hergestellt.
Den steckbaren ATmega328 können wir auch einzeln kaufen. Es ist dann darauf zu achten, dass er ab Kauf bereits mit einem Arduino-Bootloader versehen ist. Diese Microcontroller gibt es ebenfalls in der Bucht. Vorsicht beim Heraushebeln mit dem Schraubenzieher, damit die Beinchen nicht abbrechen.
Das verwendete USB-Kabel mit zwei verschiedenen Steckern, links Typ A, rechts Typ B.
2. Beschaffung der kostenlosen Arduino-Software: Sie befindet sich auf https://www.arduino.cc/en/Main/Software. Die Windows-Version holen wir per Mausklick auf den Schriftzug “Windows Installer”. Es öffnet sich eine neue Seite, auf der dort auf “Just Download” zu klicken ist, um den Download einzuleiten.
3. Installation der Arduino-Software (gestestet mit Win XP SP3): Unter Windows geht die Installation auf dem üblichen Weg. Allerdings ist es ganz wichtig, dass bereits während der Installation das Entwicklerboard mit dem Windows-Rechner über den USB-Anschluss verbunden ist, weil nämlich dann der USB-Treiber gleich automatisch mitinstalliert wird. Die automatische Suche nach dem richtigen USB-Treiber kann einige Minuten in Anspruch nehmen.
Bei Windows 8 bitte hier die Beschreibung https://code-bude.net/2012/11/18/arduino-treiber-unter-windows-8-installieren/ beachten, damit Windows 8 die unsignierten Treiber akzeptiert.
Sollten aus irgendwelchen Gründen der notwendige USB-Treiber nicht installiert worden sein, lässt er sich mit der folgenden Anleitung https://www.arduino.cc/en/Guide/UnoDriversWindowsXP nachträglich installieren. Die Treiber befinden sich in einem der Unterordner des bereits installierten Arduino-Programms.
4. Manuelle Konfiguration der Arduino-Software: Im Prinzip muss nach der Installation nur der Com-Port einmalig auf Com3 eingestellt werden. die nachfolgenden Bilder erklären den Vorgang.
Das Arduino-Programm direkt nach der Installation.
Auswahl des richtigen Entwickler-Boards, hier Arduino/Genuino Uno.
COM3 stellt meistens die USB-Schnittstelle dar. Wir müssen sie beim ersten Mal von Hand auswählen.
Über “Boardinformationen holen” können wir testen, ob die Arduino-Software das Arduino-Board erkannt hat.
Das Board wurde von der Software erkannt. Hurra! Nun sind wir für das Programmieren bereit.
5. Brennen der ersten Firmware auf den ATmega: Dem Arduino-Programm sind Scripte (genannt Sketch) mitgeliefert. Wir nehmen das Programm “Blink”, das eine Leuchtdiode auf dem Board blinken lässt. Später können wir die ON- und OFF-Zeiten des Blinkens im Script verändern und das veränderte Programm abspeichern.
Wir holen uns das Demo-Programm “Blink”.
Der Quellcode von “Blink” erscheint im Programmfenster. Um dieses Programm auf den Microcontroller des Boards zu brennen, müssen wir nur oben im Fenster auf den Kreis klicken, in welchem sich ein nach rechts zeigender Pfeil befindet. Also einfach dort klicken, wohin der rote Pfeil zeigt. Klicken wir auf den Kreis mit dem Häkchen, testet das Programm nur, ob sich der Sketch kompilieren lässt, ohne dass ein Brennen des Sketches auf den Microcontroller stattfindet.
Der Kreis, auf dem wir geklickt haben, nimmt nun eine gelbe Farbe an, während das Listing (Sketch) kompiliert wird. Anschließend wird das kompilierte Programm automatisch auf den Microcontroller gebrannt. Die beiden Vorgänge dauern insgesamt einige Sekunden bis Minuten.
“Hochladen abgeschlossen” bedeutet, dass sich die Firmware nun auf dem Microcontroller befindet. Wir haben unser erstes Programm auf den ATmega gebrannt! Und dazu waren nur wenige Mausklicks notwendig.
Da sich diese Firmware auf dem Microcontroller befindet, blinkt die gelbe Leuchtdiode auf dem Board jetzt langsamer. Eine Sekunde aus, eine Sekunde an.
Dass sich die Firmware jetzt tatsächlich auf dem ATmega befindet, können wir beweisen, in dem wir die USB-Verbinung zum Rechner trennen und das Board mit einem externen Netzteil betreiben.
Der Arduino blinkt jetzt isoliert vom Rechner vor sich hin. Als Stromversorgung dient ein 9 bis 12 Volt Steckernetzteil.
Das Steckernetzteil, ebenfalls für ein paar Euro in der “chinesischen Bucht” besorgt.
Die Daten des Steckernetzteils. In Wirklichkeit lieferte es 12 statt 9 Volt DC. Es ist aber trotzdem tauglich. 7 bis 12 Volt sind empfehlenswert. 6 bis 20 Volt sind die absoluten Grenzen der Versorgungsspannung des Boards.
Der Stecker des Netzteils ist ein 2,1 mm-Stecker. Der positive Anschluss muss innen (in der Mitte) sitzen.
6. Ändern der Software, erneutes Brennen und anschließendes Abspeichern: Die Firmware können wir abändern, damit die LED schneller oder langsamer blinkt. Mit dieser neuen Firmware können wir die alte auf dem Microcontroller immer wieder überschreiben. Jede einzelne Version lässt sich abspeichern. Dadurch können wir jeden Entwicklungsschritt unmittelbar testen. Dies macht die Programmierung einfach.
Hier habe ich die Leuchtdauer (ON, HIGH) von ursprünglich 1000 ms auf 333 ms geändert. Nach der Änderung des Scripts einfach wieder auf das Pfeilsymbol im Kreis klicken, um das Kompilieren und das Brennen einzuleiten. Die alte Firmware wird dann überschrieben. Wir merken das sofort, wenn die Leuchtdiode nur noch kurz aufblitzt. 333 ms an und 1000 ms aus.
Das Script (der Quellcode) der geänderten Firmware können wir unter einem anderen Namen abspeichern. Somit haben wir unser erstes eigenes Script geschaffen.
Anschluss einer externen LED mit einem 470-Ohm-Vorwiderstand zwischen Masse (GND) und dem Anschluss 13 des Boards. Die Kathode der LED muss der Masse am nächsten liegen. Die Kathode einer LED ist durch eine kurzes Beinchen und eine Abflachung des Gehäuses gekennzeichnet. Hier kommt ein Steckbrett für den Aufbau zum Einsatz.
Anschluss des Tastkopfes eines Oszilloskops an den Anschluss 13 des Boards und Masse (GND).
Die Spannung springt zwischen 0 und 5 Volt hin- und her. Die An- und Auszeit dauert hier jeweils 10 ms, weil ich diese Zeiten einprogrammiert habe. Der Arduino dient jetzt also als Rechteckgenerator, mit dem sich Oszilloskope abgleichen lassen.
6a. Arduino Bibliotheken hinzufügen: Viele Programme benötigen Bibliotheken, die meist bei Github im Zip-Format abgelegt sind. Bibliotheken werden im Quellcode mit #include eingebunden, z.B.
#include <Adafruit_GFX.h>
Nicht alle Bibliothekens sind in der Arduino IDE mitgeliefert. Wie diese fremden Bibliotheken als Zip-Dateien einzubinden sind, ist z.B. unter http://www.arduinoclub.de/2016/04/09/arduino-ide-bibliotheken-hinzufuegen/ beschrieben und denkbar einfach. Wo genau die Bibliotheken herunterzuladen sind, ist in den jeweiligen Projektbeschreibungen erklärt. Viele Bibliotheken sind – wie bereits erwähnt – dem Arduino-Programm bereits beigefügt.
Bibliotheken (Libraries) enthalten Programm-Abschnitte (Routinen), die immer wieder benötigt werden, um z.B. bestimmte Displays, Drehgeber, Stellmotoren, Schnittstellen, WLAN-Module und so weiter anzusteuern. Bibliotheken vereinfachen die Programmierung und verhindern, dass das Rad immer wieder neu erfunden werden muss.
Download einer Bibliothek: Auf Github auf “Clone or Download” gehen und dann “Download ZIP”.
Die Bibliothek in der ZIP-Datei lassen und wie im Bild zu sehen ist, einbinden.
6b. Quellcode von einer Webseite in das Arduino-Programm kopieren: Das geht wie bei einem Textverarbeitungsprogramm mit Copy und Paste. Das Listing mit “Copy” aus der Webseite herauskopieren, im Arduino-Programm mit “Datei” > “Neu” eine neue Seite öffnen, das Listing mit “Paste” einfügen und das die Seite mit “Datei” > “Speichern unter …” abspeichern.
7. Den ATmega ohne sein Board laufen lassen: Den mit dem Sketch “Blink” oder einem anderen Sketch geflashten (gebrannten) ATmega328P können wir vorsichtig aus der Fassung entfernen und in eine externe Schaltung einbauen, wie sie unter https://wattsworth.wordpress.com/2014/08/31/breadboarding-the-arduino-uno/ beschrieben ist.
8. Viele weitere Beispiele: Im Internet sind zahlreiche weitere Programm-Beispiele beschrieben, z.B auf der sehr umfangreichen Seite http://popovic.info/html/arduino/arduinoUno_1.html, die viele Anregungen und ausführlich beschriebene Experimente enthält. Für den Einsteiger geschrieben ist die Seite http://funduino.de/anleitungen, welche die ersten Schritte mit vielen einfachen Beispielen begleitet.
8.a Projekte, die mit Arduino und dem ATmega 328 realisiert worden sind: Zum Beispiel DDS-Generator, Ladegeräte, FM-Radio, MP3-Player, Wetterstation, 2, 4 GHz Spectrum Analyzer, Labor-Netzgerät. Nachfolgend Portale mit vielen Projekten:
– http://www.vwlowen.co.uk/arduino/index.htm
– http://www.electronicshub.org/arduino-project-ideas/
– http://circuitdigest.com/arduino-projects
– https://www.hackster.io/arduino/projects
–
9. Einführung in die Arduino-Programmiersprache:
– http://www.ov-meschede.de/workshop/Arduino%20Programmierhandbuch.pdf
– http://hems.de/fileadmin/_migrated/content_uploads/Arduino_Tutorial.pdf
–
Anschluss eines 10-kOhm-Potis zwischen GND und 5 Volt, Schleifer am analogen Eingang A0.
Ein DDS-Generator für Sinus und Rechteck von 1 Hz bis 40 MHz. Der verwendete ATmega328 wurde mit Arduino programmiert.
10. Austauschen des Microcontrollers: Den alten Microcontroller müssen wir vorsichtig abwechselnd von beiden Seiten mit einem Schraubenzieher aus seiner Fassung heraushebeln. Beim neuen Microcontroller haben die gegenüberliegenden Pins meistens einen etwas zu großen Abstand, den wir anpassen können, in dem wir die linke oder rechte Reihe der Pins vorsichtig gegen die Tischoberfläche drücken, bis der Abstand für die Fassung passend ist. Wir machen uns das Leben einfacher und kaufen am besten Microcontroller, die bereits mit einem Arduino-Bootloader versehen sind. Beim Hantieren mit dem Microcontroller ist für einen elektrostatischen Schutz zu sorgen.
Ein neuer ATMega 328P-PU. Der Lieferant hat ihn bereits mit einem Arduino-Bootloader versehen.
Wie im Text beschrieben, ist der Microcontroller abwechselnd beidseitig vorsichtig herauszuhebeln, damit die Beinchen nicht abbrechen.