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

title_2014_09

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

Schnell Multi-Boot-Medien mit MultiCD erstellen
Schnell Multi-Boot-Medien mit MultiCD erstellen
Tim Schürmann, 24.06.2014 12:40, 0 Kommentare

Wer mehrere nützliche Live-Systeme auf eine DVD brennen möchte, kommt mit den Startmedienerstellern der Distributionen nicht besonders weit: Diese ...

Aktuelle Fragen

Windows 8 startet nur mit externer Festplatte
Anne La, 10.09.2014 17:25, 4 Antworten
Hallo Leute, also, ich bin auf folgendes Problem gestoßen: Ich habe Ubuntu 14.04 auf meiner...
Videoüberwachung mit Zoneminder
Heinz Becker, 10.08.2014 17:57, 0 Antworten
Hallo, ich habe den ZONEMINDER erfolgreich installiert. Das Bild erscheint jedoch nicht,...
internes Wlan und USB-Wlan-Srick
Gerhard Blobner, 04.08.2014 15:20, 2 Antworten
Hallo Linux-Forum: ich bin ein neuer Linux-User (ca. 25 Jahre Windows) und bin von WIN 8 auf Mint...
Server antwortet mit falschem Namen
oin notna, 21.07.2014 19:13, 1 Antworten
Hallo liebe Community, Ich habe mit Apache einen Server aufgesetzt. Soweit, so gut. Im Heimnet...
o2 surfstick software für ubuntu?
daniel soltek, 15.07.2014 18:27, 1 Antworten
hallo zusammen, habe mir einen o2 surfstick huawei bestellt und gerade festgestellt, das der nic...