AA_arduino-uno.jpg

© Medialinx AG

Denken und Fühlen

Arduino-Programmierung

15.04.2013
Der Arduino lockt mit Offenheit und Portabilität: Die Schaltung des Minirechners ist ebenso frei lizenziert wie die zugehörige Entwicklungsumgebung. Grund genug, sich näher mit der Programmierung zu beschäftigen.

Mit dem Slogan "Ein Arduino fühlt und steuert die physische Welt besser als ein Desktop-PC" bewirbt der Hersteller [1] seine preisgünstige Mikroprozessor-Plattform. Das Aufmacherbild zeigt die Basisvariante Arduino Uno, das 53 x 68 Millimeter große Einsteigermodell der Minicomputer-Serie. Es kostet nur etwa 30 Euro [2] und basiert auf einem programmierbaren ATmega328-Prozessor.

Sechs analoge Eingänge (0 bis 5 Volt) und vierzehn Ausgangs-Pins (bis zu 40 mA Leistung) für Verbraucher prädestinieren den SBC als Ersatz für den bei aktuellen PCs meist fehlenden programmierbaren Parallelport. Die mit 16 MHz getaktete CPU überwacht und steuert diese Schnittstellen zur Außenwelt. Im Betrieb nimmt der Arduino nur rund 50 mA Strom bei 7 bis 12 Volt auf [3].

Mit dem PC kommuniziert der Winzling via USB, was auch unter Linux reibungslos funktioniert. Dies gilt auch für die unter der GPL vertriebene Entwicklungsumgebung [4], die auf Knopfdruck C- oder C++-Code in den 32 KByte großen Flash-Speicher des Arduino hochlädt und startet.

Die Baupläne aller Arduino-Modelle stehen ebenfalls unter einer freien Lizenz [5]. Sie dürfen sich ihren Minicomputer also auch selbst zusammenlöten, wenn Sie die nötige Fingerfertigkeit für den Umgang mit winzigen Mikroprozessor-Pins mitbringen.

Einfach anklicken

Auch wenn viele mit C oder C++ etwas anderes verbinden: Neben dem günstigen Preis macht gerade die einfache Programmierung den Arduino für den Einstieg in die Mikroprozessor-Programmierung interessant. Von der üblichen Komplexität der Embedded-Programmierung ist hier nichts zu spüren: Ein Knopfdruck in der Arduino-IDE compiliert den Quellcode, lädt ihn auf den Minirechner hoch und startet ihn.

TIPP

Falls die IDE sich beklagt, dass sie den am USB-Port angeschlossenen Arduino nicht findet, kann das am Modem-Manager liegen, der versucht, das Gerät als Modem anzusprechen. Beenden Sie dann den Modem-Manager – oder warten Sie einfach ein halbe Minute, bis er aufgibt.

Tief gehendes C- oder gar C++-Know-how brauchen Sie für die Arduino-Programmierung nur sehr selten. Auch die beiden Beispielprogramme, die dieser Artikel vorstellt, kommen ohne manuelle Speicherverwaltung mit malloc() und C++-Klassen aus.

Das erste Schaltungs- und Programmierexempel lässt sechs helle LEDs im von der Shell aus frei programmierbaren Rhythmus blinken. Die Schaltung eignet sich auch gut, um Zustände auf einem über USB angeschlossenen Computer oder von Serverdiensten optisch darzustellen. Einmal programmiert, blinkt der Minicomputer ohne Verbindung zum PC weiter.

Im zweiten Beispiel lauscht der Arduino auf den über einen Taster eingegebenen Morsecode und vergleicht ihn mit einer Punkt-Strich-Zeichenfolge. Am Klingelknopf angeschlossen, könnte der Arduino damit den Türöffner steuern und nur solchen Besuchern Zugang gewähren, die einen (bis zu 100 Zeichen langen) geheimen Rhythmus läuten.

Mehr Licht

Ohne angeschlossene externe Bauteile kann der Arduino bloß mit einer winzigen LED in der Nähe des USB-Anschlusses blinken. Sie können ein simples Blink-Programm von der Arduino-Homepage [1] auf ihr Gerät laden, um es damit zu testen.

Zu mehr Leuchtkraft verhelfen dem Minicomputer in der Beispielschaltung sechs High-Power-LEDs (Abbildung 1). Bei dem eingesetzten Typ des Herstellers Luckylight verkraften Blau und Grün zwischen 2,8 und 4 Volt, lassen sich also ohne Vorwiderstand paarweise hintereinander direkt an die 7,5 Volt des spannungsstabilisierten Arduino-Schaltnetzteils anschließen. Anders die roten LEDs: Bei einer zulässigen Eingangsspannung zwischen 1,6 und 2,4 Volt würden sie ohne vorgeschalteten Widerstand zwar nicht sofort durchbrennen, aber nach kurzer Zeit ausfallen.

Abbildung 1: Eine einfache, 10 x 10 Zentimeter große Rasterplatine bietet genug Platz für unsere Schaltung. Diese besteht aus einem Taster, den über Power-Feldeffekt-Transistoren angesteuerten helle LEDs sowie den aufmontierten Arduino.

Der Vorwiderstand muss beim roten Kanal also gut 3 Volt verbraten. Beim einem Stromverbrauch der LED von 35 mA gilt es nach dem Ohmschen Gesetz grob 100 Ohm vorzuschalten. Das entspricht Pi mal Daumen einem etwas weniger als halb geöffneten 250-Ohm-Poti. Damit sich die Helligkeit aller Kanäle regeln lässt, schalten wir diesen Poti auch vor die grünen und blauen LEDs.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 7 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

Kommentare

Infos zur Publikation

LU 07/2015: Daten sichern

Digitale Ausgabe: Preis € 4,95
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

HINWEIS ZU PAYPAL: Die Zahlung ist auch ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!       

Tipp der Woche

Grammatikprüfung in LibreOffice nachrüsten
Grammatikprüfung in LibreOffice nachrüsten
Tim Schürmann, 24.04.2015 19:36, 0 Kommentare

LibreOffice kommt zwar mit einer deutschen Rechtschreibprüfung und einem guten Thesaurus, eine Grammatikprüfung fehlt jedoch. In ältere 32-Bit-Versionen ...

Aktuelle Fragen

Fernwartung oder wartung im haus
heide marie voigt, 29.06.2015 10:37, 2 Antworten
gerne hätte ich jemanden in Bremen nord, der mir weiter hilft - angebote bitte mit preis HMVoigt
Druckeranschluss DCP-195C
heide marie voigt, 29.06.2015 10:35, 1 Antworten
installiert ist linux ubuntu 15.04 offenbar auch der treiber für den Drucker DCP-195C. Die Konta...
keine arbeitsleiste beim einloggen
heide marie voigt, 27.06.2015 13:31, 0 Antworten
seit der neu-installierung von linux ubuntu 15.04 erscheint die arbeitsleiste rechts oben erst na...
raid platte an linux mint 17.1
andreas schug, 23.06.2015 19:44, 1 Antworten
folgende thematik NAS Iomega Storage Center wird auf einmal nicht mehr im netzwerk erkannt .....
SUSE 13.2 - Probleme mit kmail
kris kelvin, 03.06.2015 13:26, 2 Antworten
Hallo, nach dem Umstieg auf 13.1 hatte ich das Problem, daß kmail extrem langsam reagierte. Nun...