Arduino programmieren in der Sprache C++

Größe: px
Ab Seite anzeigen:

Download "Arduino programmieren in der Sprache C++"

Transkript

1 Hochschule für Telekommunikation Leipzig Dipl.-Ing. Jens Grätzer Arduino programmieren in der Sprache C++ Skript zur Action Vorlesung am 11. Januar 2018 an der HfTL 1 Vorwort Ein Programmierer wird in seinem Leben mehrere Programmiersprachen lernen. Mit welcher Sprache soll er beginnen? Dafür bietet sich einerseits Python an, oder andererseits die Sprachen C bzw. C++. Sowohl Python als auch C bzw. C++ sind einfach. Man kann diese Sprachen schnell anwenden. Python- Programme kann man beispielsweise auf einem Raspberry Pi sinnvoll einsetzen. In diesem Tutorial aber wenden wir uns der Sprache C bzw. C++ zu. Es wird gezeigt, wie man damit einfache Programme für den Mikrocontroller Arduino UNO herstellt. Diese Projekte werden verwirklicht: Blinklicht Lauflicht Widerstandsmessgerät (Ohmmeter) Spannungsmessgerät (Voltmeter) Magischer Antwortgenerator Ladung und Entladung eines Kondensators plotten Anschließend wird besprochen, wie man auf einem PC in der Sprache C programmieren kann. 2 Was ist ein Mikrocontroller? Beginnen wir mit der Frage, was ein Computer ist. Computer sind Geräte, mit denen man digitale Daten verarbeiten kann. Digitale Daten sind solche Daten, deren kleinster Teil ein Bit ist. Ein einzelnes Bit speichert die denkbar kleinste Information, nämlich den Unterschied ja oder nein, oder manchmal sagt man auch 1 oder 0 oder HIGH oder LOW. Acht einzelne Bits nennt man ein Byte. Computer haben eine wichtige Eigenschaft: Computer sind programmierbar. Die Datenverarbeitung im Computer ist deshalb nicht alleine von dem Gerät (der Hardware) abhängig. Sondern jemand hat Software programmiert, die dann auf dem Computer läuft. Die Software bestimmt im Detail, wie die digitalen Daten verarbeitet werden. Arduino_01_Arduino programmieren in der Sprache C.docx Dipl.-Ing. Jens Grätzer

2 Man kann bekanntlich sehr viele Informationen digitalisieren, nämlich Zahlen, Texte, Bilder, Audio, Video und mehr. Alle diese verschiedenen Arten von Information kann man daher auch auf einem Computer verarbeiten. Was ist nun ein Mikrocontroller? Ein Mikrocontroller ist ein sehr kleiner Computer im Gehäuse eines Schaltkreises. Das bedeutet, dass auch in einem Mikrocontroller digitale Daten verarbeitet werden. Und auch ein Mikrocontroller muss programmiert werden. In dem Schaltkreis befinden sich alle Grundbausteine eines Computers, nämlich ein Prozessor, der Programmspeicher und Arbeitsspeicher (RAM) und Baugruppen zum Anschluss äußerer Geräte. Bild: Der Mikrocontroller ATmega328 Mikrocontroller trifft man heute vor allem in drei Bereichen an: Embedded Systems Damit sind Mikrocontroller gemeint, die in Geräten eingebaut sind und dort Steueraufgaben erledigen. Man kann sich hier am besten ein Auto vorstellen, in dem es viele Embedded Systems gibt. Es gibt einen Mikrocontroller für die Steuerung des Motors, und einen zur Steuerung der Scheibenwischer, usw. Robotik Roboter sind schon einige Jahrzehnte ein wichtiges Thema. Sie werden in der Industrie eingesetzt, wo sie an Fließbändern monotone Arbeiten verrichten. Internet of Things (IoT) Das IoT ist ein relativ neuer Trend. Dazu gehören die Begriffe Hausautomatisation (Smart Home), Smart Factory und Smart City. Man kann sagen, dass damit Embedded Systems gemeint sind, die mit dem Internet verbunden sind und darüber kommunizieren. Den Begriff Smart Home haben Sie ganz bestimmt schon gehört. Sie stellen sich darunter vor, dass es in einer solchen Wohnung eine Heizung gibt, die man mit dem Smartphone programmieren kann, eine sprachgesteuerte HiFi-Anlage, eine intelligente Alarmanlage als Schutz gegen Einbrecher und auch einen Stromzähler, der seine Daten automatisch über das Internet an den Energieversorger meldet. Das Ganze funktioniert, weil viele Gegenstände im Smart Home Mikrocontroller-Baugruppen enthalten, die untereinander und mit Servern im Internet kommunizieren. Kommunikationsfreudige Mikrocontroller erlauben es aber auch, die Produktionsabläufe in Firmen noch effektiver zu gestalten. Dann spricht man von Smart Factory. Und bei Smart City denkt man an Lösungen im städtischen Bereich, wenn beispielsweise Autos untereinander kommunizieren und Papierkörbe automatisch melden, wann sie geleert werden müssen. Seite 2 von 31

3 3 Warum Arduino? Wie schwer ist es nun, einen Mikrocontroller in einer eigenen smarten Projekt-Idee einzusetzen? Das ist nicht sehr schwer, weil es heute preiswerte Mikrocontroller-Baugruppen gibt, die man ohne großen Aufwand selbst programmieren kann. Die bekannteste dieser Mikrocontroller-Baugruppen ist der Arduino. Ein Arduino ist eine kleine Leiterplatte. Die Leiterplatte trägt den Mikrocontroller-Schaltkreis und andere Bauelemente. Sie hat auch Steckverbinder, an die man Schalter, LED, Sensoren, Displays usw. anschließen kann. Und es gibt auch einen USB-Anschluss. Damit kann man sie mit dem Rechner verbinden, auf dem man die Software für den Mikrocontroller programmiert. Die fertige Software wird über das USB-Kabel auf den Mikrocontroller übertragen. Dank der Steckverbinder kann man einfache experimentelle Schaltungen ganz ohne Lötkolben aufbauen. Häufig wird dafür zusätzlich ein kleines Steckbrett verwendet, das sogenannte Breadboard. Dort kann man einzelne Bauteile wie Widerstände und LED zusammenstellen und dann mit Drähten mit dem Arduino verbinden. Es sei noch erwähnt, dass es verschiedene Bauformen des Arduino gibt. Die Baugruppen unterscheiden sich in der Größe der Leiterplatte und der Leistungsfähigkeit des Mikrocontroller-Schaltkreises. In dieser Anleitung benutzen wir den Arduino UNO. Er ist wirklich sehr verbreitet und ist mit rund 20 EUR auch noch preisgünstig. Im Internet findet man viele Bauanleitungen für Projekte mit dem Arduino. Beispielsweise hier: funduino.de Und es gibt auch fertige Bausätze. Bild: Bausatz für ein Modell-Auto, das von einem Arduino UNO gesteuert wird, von Elegoo 4 Warum C? Die meisten Mikrocontroller werden in der Sprache C oder C++ programmiert. Man kann sagen, dass sich diese Sprachen in diesem Bereich durchgesetzt haben. Die Sprache C++ ist eine Weiterentwicklung der Sprache C. Man kann in C++ auch objektorientierte Programme schreiben, was mit C noch nicht möglich ist. Sonst unterscheiden sich die beiden Sprachen kaum. Man nennt beide Sprachen manchmal in einem Atemzug und spricht von C/C++. Seite 3 von 31

4 Die Programme in diesem Tutorial sind sehr einfach. Sie benutzen noch keine objektorientierte Programmierung. 5 Grundlagen Teil 1: Programmierung in der Sprache C/C++ In dieser Anleitung soll gezeigt werden, wie man einen Arduino UNO (das ist der einfachste der Mikrocontroller der Arduino-Reihe) programmiert und in einem praktischen Projekt verwendet. Zu Beginn soll erklärt werden, was Computer-Programme sind, und wie man mit der Sprache C (bzw. C++ ohne Objektorientierung) programmiert. 5.1 Programmstrukturen Was also ist ein Computer-Programm? Ein Programm ist zunächst ein Text, den ein Programmierer aufgeschrieben hat. Der Text enthält die Anweisungen, die dem Computer vorgeben, was er tun soll. Wie schreibt man etwas so auf, dass es von einem technischen Gerät (von einem Mikrocontroller oder einem Computer) dann automatisch ausgeführt werden kann? Im einfachsten Fall ist so ein Programm also eine einfache Folge von Anweisungen, genau wie ein Kochrezept. Eine Folge von Anweisungen nennt man auch Sequenz. Die Sequenz ist eine grundlegende Programmstruktur. Aber nicht jedes Programm ist so einfach. Manche Programmideen kann man nur verwirklichen, wenn es im Programm eine Möglichkeit zur Verzweigung des Programmablaufs gibt. Der Programmierer hat alternative Programmsequenzen programmiert. Zur Programmlaufzeit wird ein Kriterium geprüft und damit entschieden, welche der Teilsequenzen der Computer danach abarbeitet. Die Verzweigung ist nach der Sequenz die zweite grundlegende Programmstruktur. Bei vielen Programmideen müssen bestimmte Anweisungen mehrfach wiederholt werden. Diese Sequenz muss der Programmierer dann aber nicht mehrfach aufschreiben. Sondern er schreibt sie einmal innerhalb einer Schleife auf. Die Schleife ist die dritte grundlegende Programmstruktur. Die genannten grundlegenden Programmstrukturen findet man in allen prozeduralen Programmiersprachen: Einfache Aufeinanderfolge von Anweisungen (Sequenz) Verzweigung Schleife 5.2 Einfache Aufeinanderfolge von Anweisungen (Sequenz) Nehmen wir an, wir haben eine Aufgabe für ein sehr einfaches Programm. Die Aufgabe ist: Addiere zwei Zahlen und gibt das Ergebnis aus. Dieses Programm lässt sich in einer kleinen Sequenz von Anweisungen verwirklichen. Jedes Programm kann man zunächst auf einem Stück Papier zeichnen, beispielsweise als Struktogramm. Das Struktogramm des einfachen Programms sieht beispielsweise so aus: Seite 4 von 31

5 Bild: Struktogramm eines sehr einfachen Programmes einfach eine Folge von Anweisungen Jede Anweisung ist in einem Kästchen gezeichnet. Die Fußabdrücke gehören natürlich nicht zum Struktogramm dazu. Sie sind hier nur ein Hinweis dafür, dass die einzelnen Programmschritte einfach nacheinander ausgeführt werden. 5.3 Verzweigung Eine andere Programmier-Aufgabe lautet: Es soll eine ganze vorzeichenlose Zahl eingeben werden. Das Programm soll die Eingabe prüfen und dann ausgeben, ob die Zahl einstellig oder mehrstellig ist. Dieses Programm muss eine Verzweigung enthalten. Das Struktogramm für dieses Programm sieht also so aus: Bild: Struktogramm eines Programmes mit einer Verzweigung Man erkennt im Struktogramm, dass im Programm die Frage Zahl < 10? gestellt wird. Die Antwort kann Ja oder Nein (True oder False) sein. Davon hängt der weitere Weg die Programmausführung ab. So hängt es also vom Wert der eingegeben Zahl ab, ob das Programm dann am Ende einstellig oder mehrstellig auf dem Bildschirm ausgibt. 5.4 Schleifen im Programm Nehmen wir an, wir wollen ein Programm schreiben, das die ersten zehn Zahlen der Fünferreihe auf dem Bildschirm ausgibt. Dieses Programm realisiert man mit einer Schleife. Es gibt zwei Ideen zur Lösung der Aufgabe. Die erste ist: Beginne bei der Zahl 0 und addiere 10 mal eine 5. Alle Zwischenergebnisse werden ausgegeben. Die zweite Idee ist: Beginne bei 1, erhöhe diese Zahl 10 Mal um den Wert 1. Gib jedes Mal das Fünffache dieser Zahl aus. Im folgenden Struktogramm ist die zweite Idee umgesetzt. Man sieht die Zahl i, die in einer Schleife (hier mit for benannt) mit der Basis 5 multipliziert und dann ausgegeben wird. Dann wird i um eins erhöht das erledigt das i++ und der Schleifen-Anweisung. Die Schleife wiederholt diesen Vorgang 10 mal. Dafür sorgt das i <= 10 in der Schleifen-Anweisung. Seite 5 von 31

6 Bild: Struktogramm des Programms zur Ausgabe der Fünferreihe mit einer for-schleife Außer der hier gezeigten for-schleife gibt es noch die do-schleife und die do-while-schleife. Die for-schleife in dem gezeigten Beispiel arbeitet so: Die eingerückt gezeigten Aktionen werden mehrfach wiederholt. Es wird solange wiederholt, wie die Variable i einen Wert kleiner 10 enthält. Ganz zu Beginn soll i den Wert 1 enthalten. Bei jeder Wiederholung erhöht sich i um 1. Man kann die for- Schleife auch so lesen: Für i = 1, solange i < 10, wiederhole die eingerückt gezeichneten Aktionen und erhöhe jedes Mal i um 1. Bild: Ausgabe der Fünferreihe mit einer while- und mit einer do-while-schleife Mit den drei genannten Programmstrukturen, also der Sequenz, der Verzweigung und der Schleife kann man sinnvolle Programme herstellen. Wir haben gesehen, dass man sich Computer-Programme zunächst auf dem Papier ausdenken kann. Man kann dabei Struktogramme zeichnen. 6 Syntax der Programmiersprache C Wenn man das Programm auf dem Papier entworfen hat, wie schreibt man es dann in der Sprache C auf? C-Programme sind Text. Man kann ein C-Programm theoretisch mit einem einfachen Texteditor schreiben. Das Programm ist dann in einer Text-Datei gespeichert. Diese Text-Dateien haben häufig die Dateierweiterung.c oder.cpp. Programme für den Arduino haben eine andere Dateierweiterung, nämlich.ino. Seite 6 von 31

7 Man kann so einen Programmtext eigentlich ganz normal lesen und verstehen. Aber es gibt einige Dinge zu beachten, wie wir im folgenden Beispiel sehen. Angenommen, wir sind in der Schule, und der Mathe-Lehrer schreibt an die Tafel: Jeder Schüler weiß dann sofort, was zu tun ist. Er nimmt einen Taschenrechner und tippt 57,2 ein. Anschließend tippt er auf die Taste sin. Insgesamt sind das zwei Arbeitsschritte. Wenn wir ein Programm zur Lösung dieser Aufgabe programmieren möchten, besteht es wahrscheinlich aus drei Programmschritten. Es gibt darin natürlich nur eine Sequenz dieser drei Schritte, aber keine Verzweigung oder Schleife. So sieht das Struktogramm aus: Bild: Struktogramm des Programms zur Berechnung von sin(57,2 ) Dieses Programm kann man so in der Sprache C programmieren, dass es dann auf einem PC (egal, welches Betriebssystem) arbeiten kann: Bild: C-Programm zur Berechnung von sin(57,2 ) Sie erkennen hier die drei wichtigen Programmschritte, nämlich die Eingabe der Zahl 57,2 in die Variable mit dem Namen alpha, die Berechnung mit Hilfe der Sinus-Funktion und auch die Ausgabe des Ergebnisses mit der printf-funktion. Hier ist die Erklärung für die Besonderheiten dieses C-Programmtextes: Die Variable alpha ist mit lateinischen Buchstaben und nicht mit einem griechischen Buchstaben geschrieben. Denn in der Sprache C sind nur lateinische Zeichen in Anweisungen zugelassen. In den ersten Zeilen der main-funktion findet man die Zeile double alpha, y; Damit wird nur angegeben, dass es die Variablen alpha und y im Programm gibt, und beide Variablen haben den Datentyp double. In Variablen dieses Typs kann man Gleitkommazahlen Seite 7 von 31

8 speichern. In einem C-Programm müssen immer alle Variablen deklariert sein, bevor man sie das erste Mal verwenden kann. Die Zahl 57,2 ist hier im Programm als 57.2 geschrieben. Denn man verwendet den Punkt anstelle des Kommas zur Abteilung der Nachkommastellen, wie in Amerika und anderen Ländern üblich. Nach jeder einzelnen Programmanweisung muss ein Semikolon geschrieben werden. Die Sinus-Funktion verarbeitet ausschließlich Angaben im Bogenmaß. Deshalb wird hier der Wert in alpha zuerst in einen Wert im Bogenmaß umgerechnet, bevor er von der Sinus-Funktion verarbeitet wird. Dazu muss man mit der Zahl Pi multiplizieren, also mit (mit Punkt) und durch 180 dividieren. Zu Ausgabe wird in diesem Programmbeispiel eine weitere Funktion verwendet, die printf- Funktion. Das ist eine besondere Funktion, die den in Anführungszeichen gezeigten Text-String ausgibt. In diesen Text-String sind die Werte der Variablen alpha und y eingesetzt. (Diese Funktion gibt es für PC, aber nicht für Arduino. Für den Arduino gibt es eine andere Print- Funktion dazu später.) Alle Programmschritte hier sind selbst Bestandteil einer Funktion. Sie hat den Namen main. Funktionen erkennt man offensichtlich an zwei Dingen. Sie haben immer einen Namen und zwei runde Klammern. So wie wir sin() sofort als Sinusfunktion erkennen. Die Funktionen sin() und printf() müssen hier von externen Programmbibliotheken bereitgestellt werden. Das erklärt die beiden ersten Zeilen: Sie nennen die Programmbibliotheken, von denen diese Funktionen bereitgestellt werden. Die Funktion printf() befindet sich in der Bibliothek stdio.h, und sin() befindet sich in math.h. Die letzte Anweisung in der main-funktion lautet return 0. Das folgt aus dem Sprachstandard: Die main-funktion eines C-Programmes soll immer den Wert 0 zurückgeben. Dieser Wert wird an das Betriebssystem zurückgegeben. Das Betriebssystem erkennt dann, das das Programm fehlerfrei gearbeitet hat. Keine Sorge, an die besondere Schreibweise der C-Programme gewöhnt man sich schnell, wenn man selbst einige Programme geschrieben hat. In dieser Anleitung werden noch einige Beispielprogramme gezeigt. Dabei können Sie diese Programmiersprache kennenlernen. 7 Grundlagen Teil 2: Hardware 7.1 Die Anschlüsse des Arduino UNO Der Arduino UNO enthält einen Mikrocontroller-Schaltkreis. Die Anschlüsse des Schaltkreises sind mit Steckkontakten auf der Leiterplatte verbunden. Dadurch ist es möglich, eigene elektronische Bauelemente an die Anschlüsse des Mikrocontrollers anzuschließen. Man kann beispielsweise Sensoren anschließen (z.b. einen Temperatursensor) und auch andere elektronische Bauelemente, wie Schalter, Anzeige-Elemente, usw. Der Arduino UNO kann über USB mit einem PC verbunden werden. Darüber kann man die Software vom PC auf den Arduino laden. Über das USB-Kabel ist der Arduino dann auch mit einer Betriebsspannung von 5 V versorgt. Seite 8 von 31

9 Der Arduino UNO kann aber auch von einer Batterie versorgt werden. Es gibt eine Buchse für den Anschluss einer Batterie mit einer Spannung im Bereich von 7 bis 12 V. Weitere Daten des Arduino UNO sind (siehe auch Mikrocontroller-Schaltkreis ATmega digitale Ein- bzw. Ausgänge, je nachdem, wie man sie in seiner Software konfiguriert. Sie sind mit 0 bis 13 bezeichnet. Darunter sind 6 Anschlüsse, die auch als analoge PWM-Ausgänge benutzt werden können. Ein Ausgang kann maximal 20 ma Strom liefern. 6 analoge Eingänge, bezeichnet mit A0 bis A5, mit 10 Bit AD-Wandler. Anschluss für ein USB-Kabel. Darüber ist auch die Stromversorgung möglich. Anschluss für eine Batterie (7 bis 12 V) Bild: Arduino UNO mit USB-Anschluss (links oben) und Anschlüssen (rechts oben und unten) 7.2 Bauelemente der Elektrotechnik An die Anschlüsse des Arduino kann man weitere Bauelemente, Sensoren und Baugruppen anschließen. In den Projekten dieses Tutorials werden diese Bauelemente angeschlossen: Widerstand LED (Leuchtdiode) Kondensator Bild: Widerstand, LED und Elektrolytkondensator In den folgenden Projekten sollte man wissen, welche grundlegenden elektrischen Größen es gibt und in welcher Einheit sie gemessen werden: A Ampere für den elektrischen Strom V Volt für die elektrische Spannung Seite 9 von 31

10 Ω Ohm für den elektrischen Widerstand F Farad für die Kapazität des Kondensators 7.3 Widerstand Wenn man eine elektrische Spannung U an einem Widerstand R anlegt, fließt der Strom I. Es gilt die Formel: U = R * I 7.4 Leuchtdiode (LED) Eine Leuchtdiode (LED) leuchtet, wenn ein Strom in Flussrichtung durch sie hindurchfließt. Man muss eine LED immer über einen Vorwiderstand an eine Spannung anschließen. Der Vorwiderstand muss so berechnet sein, dass nicht zu viel Strom fließt. Typische LED leuchten bei einem Strömen von 5 bis 20 ma sehr gut. Wenn der Strom den vom Hersteller angegebenen Grenzwert übersteigt, kann die LED durchbrennen. Der folgende Schaltplan zeigt eine LED, die über einen Widerstand 220 Ohm an die Spannung von 5 V angeschlossen ist. Sie erkennen das Schaltungs-Symbol der LED. Es ist auch zu erkennen, dass der Minuspol der Spannungsquelle hier als GND bezeichnet ist. GND bedeutet Ground oder deutsch Masse. Alle Spannungsangaben beziehen sich immer auf diese Masse bzw. GND. Wenn ein batteriebetriebenes elektronisches Gerät Gehäuseteile aus Metall hat, sind diese häufig mit GND verbunden. Bild: Eine LED, die über den Widerstand 220 Ω an der Spannung 5 V angeschlossen ist Aufgabe: Angenommen, dass in der gezeigten Schaltung die Spannung 2,5 V über der LED gemessen wird. Berechnen Sie den Strom, der durch die LED fließt! 7.5 Kondensator Ein Kondensator kann elektrische Ladungen speichern. Wenn man einen Kondensator an eine Spannung anschließt, fließt kurzzeitig ein Strom, der den Kondensator auflädt. Wenn man den Kondensator danach kurzschließt, fließt kurz ein Strom, der den Kondensator entlädt. In der folgenden Schaltung kann ein Kondensator C über den Widerstand R aufgeladen werden, wenn der Schalter schließt. Seite 10 von 31

11 Bild: Wenn man den Schalter schließt, lädt sich der Kondensator C auf die Spannung U B auf In welcher Zeit ist der Kondensator in dieser Schaltung zu 99 % aufgeladen? Dafür vergeht die Zeit 5 * R * C. Beispielsweise ein Kondensator von 10 μf ist über einen Widerstand von 10 kω in 500 ms auf 99% der Spannung U B aufgeladen. Übrigens - Kondensatoren mit großer Kapazität (ab etwa 1 μf) sind häufig Elektrolytkondensatoren. Bei solchen Kondensatoren muss man die Polarität beachten. 7.6 Schaltungsentwicklung In diesem Tutorial werden diese vier Projektideen mit Hilfe eines Arduino UNO, einigen weiteren Bauelementen und einem C++ Programm verwirklicht: Blinklicht Lauflicht Widerstandsmessgerät (Ohmmeter) Spannungsmessgerät (Voltmeter) Magischer Antwortgenerator Ladung und Entladung eines Kondensators plotten Wenn man die Projekt-Idee hat, denkt man sich zunächst die Schaltung aus. Dafür benutzt man am besten Papier und Bleistift. Man zeichnet die Bauelemente auf und wie sie verbunden sein sollen. Anschließen kann man die Schaltung beispielsweise auf dem sogenannte Breadboard aufbauen und mit dem Arduino UNO verbinden. Das Breadboard ist ein Steckbrett, in das man Drähte einstecken kann. Jeweils 5 benachbarte Steckplätze (bezeichnet mit abcde und fghij) sind miteinander verbunden. Bild: Schaltung auf einem Breadboard an einem Arduino UNO Seite 11 von 31

12 8 Für Arduino programmieren: Die Entwicklungsumgebung Die Programme für den Arduino programmiert man auf einem PC bzw. Laptop. Das kann ein PC mit Windows oder mit Linux sein, oder ein MacBook bzw. Mac mini. Die Software zur Programmentwicklung, d.h. die Entwicklungsumgebung (Integrated Development Environment, IDE) kann man auf dieser Seite finden und downloaden: arduino.cc Es gibt heute auch eine Online-Entwicklungsumgebung, die im Webbrowser läuft. Und für Rechner mit Windows 10 (64 bit) gibt es die Arduino-IDE auch als App im Windows Store. In Folgenden wird aber die normale Arduino-IDE benutzt, die man auf seinem PC installiert. Alle Web-Seiten zu den Arduino-IDE existieren leider nur in englischer Sprache. Nach der Installation hat die IDE selbst dann aber deutsche Menüs. Die Sprache der IDE lässt sich umschalten. Nach erfolgreicher Installation kann man die Entwicklungsumgebung starten. Man hat dann einen Bereich vor sich, auf dem man Programmcode schreiben kann. Bild: Die Arduino-IDE mit einer neuen Datei Man erkennt, dass die Funktionen setup() und loop() vorbereitet sind. In die Funktion setup() soll man Anweisungen schreiben, die nur einmal, gleich nach dem Programmstart ausgeführt werden sollen. In die andere Funktion loop() soll man eine Folge von Anweisungen schreiben, die danach unentwegt wiederholt werden soll. Es ist nicht vorgesehen, dass diese loop-funktion einmal endet. Durch die endlose Wiederholung bleibt das Programm ständig am Leben. In der IDE findet man den Begriff Sketch. Ich selbst spreche aber lieber von Programm, weil der Begriff Sketch nicht allgemeingültig ist. In anderen Entwicklungsumgebungen und in anderen Programmiersprachen wird er nicht verwendet. Seite 12 von 31

13 9 Bauplan Blinklicht 9.1 Idee und Schaltung Die einfachste Anwendung ist eine blinkende LED. Das dazu gehörende C++ Programm findet man in den Beispielen der Entwicklungsumgebung. Wenn es läuft, wird die auf der Arduino-Leiterplatte schon eingebaute LED blinken. Aber es ist auch möglich, an den Anschluss 13 einen Widerstand von 220 Ohm und eine LED anzuschließen. Der Arduino UNO wird über USB mit einem PC verbunden. Von dort erhält er seine Betriebsspannung 5V. Hier ist der Schaltplan, wie wir auch einen Widerstand und eine LED an den Arduino anschließen können: Bild: Schaltplan für das einfache Blinklicht 9.2 Programm Das Programm kann man in diesem Screenshot erkennen: Seite 13 von 31

14 Bild: Das Arduino Programm Blink.ino ist in der Sprache C++ geschrieben So kompiliert man das Programm und lädt es dann auf den Arduino UNO: Die Arduino-Leiterplatte über USM mit dem PC verbinden In der IDE über das Menü Werkzeuge Port herausfinden, an welchem COM-Port der Arduino/Genuino Uno erschienen ist. Dieser Port ist auszuwählen. Nun oben links den runden grünen Kreis mit dem Pfeil darin anklicken. (Wenn der Mauspfeil über diesem Kreis steht, ist Hochladen angezeigt. Vor diesem Hochladen wird der Programmcode kompiliert.) Wenn das Programm fehlerfrei war, sehen wir dann im unteren Teil der IDE keine Fehlermeldung. Auf dem Arduino blinkt jetzt eine kleine eingebaute gelbe LED. (Es ist möglich, dass diese LED schon blinkt, bevor Sie Ihr Programm hochgeladen haben. Dann ist das Blink-Programm schon auf den Mikrocontroller geladen. Verwenden Sie dann andere Zeiten in der delay-funktion in Ihrem Programm, damit Sie sehen, dass nun Ihr eigenes Blink-Programm arbeitet.) Wenn das Programm hochgeladen ist, ist es fest auf dem Arduino gespeichert. Immer wenn der Arduino an eine Betriebsspannung angeschlossen wird, wird die LED blinken. Man kann später ein anderes Programm schreiben und auf den Arduino hochladen. Dann wird das neue Programm das vorhandene Programm überschreiben. Seite 14 von 31

15 Als Spannungsversorgung für den Arduino kann man einfach ein USB-Netzteil verwenden. Man kann aber auch die Anschlussbuchse für eine externe Batterie benutzen. Die Batterie muss eine Spannung zwischen 7 und 12 V liefern. Man schließt sie an die Anschlussbuchse neben der USB-Buchse auf dem Arduino UNO-Board an. Wie funktioniert das Blink-Programm? In der Funktion setup() gibt es nur eine Anweisung. Diese Anweisung konfiguriert einen der Ausgänge des Mikrocontrollers des Arduino so, dass er digitale Daten ausgibt. Es ist der Ausgang, an dem die eingebaute LED angeschlossen ist. Die Nummer dieses Ausgangs ist in der Konstanten LED_BUILTIN gespeichert. In einem Arduino UNO ist das die Zahl 13. In der Funktion loop() gibt es mehrere Anweisungen. Zuerst wird mit der Funktion digitalwrite(led_builtin, HIGH) der Wert HIGH auf den Ausgang mit der internen LED ausgegeben. Den Wert HIGH auszugeben heißt, dass die Betriebsspannung 5V an diesem Ausgang ausgegeben wird. Dort ist die interne LED über einen Vorwiederstand angeschlossen deshalb fließt ein Strom, und die LED leuchtet. Danach arbeitet die Funktion delay(1000). Diese Funktion bewirkt eine Wartepause von 1000 Millisekundgen. In dieser Zeit leuchtet die LED also weiter. Mit der folgenden Funktion loop(led_builtin, LOW) wird nun ein LOW auf den Ausgang mit der internen LED ausgegeben. Das heißt, dass nun die Spannung 0V an diesem Ausgang ausgegeben wird. Es fließt deshalb kein Strom mehr über den Vorwiederstand und die LED. Die LED ist nun dunkel. Die LED bleibt 1000 Millisekunden dunkel, weil es auch hier die Funktion delay(1000) gibt. Danach wird die LED wieder leuchten, weil die Funktion loop() immer wieder neu aufgerufen wird. 10 Bauplan Lauflicht Man kann natürlich auch mehr als eine LED an den Arduino UNO anschließen. Hier ist ein Beispiel mit zehn LED. Das Programm realisiert ein Lauflicht. Ein Leuchtpunkt wandert von der ersten bis zur letzten LED. Nach der letzten LED leuchtet dann wieder die erste LED. Der Leuchtpunkt wandert danach erneut über die LED-Kette. Das wiederholt sich ununterbrochen. Hier sind drei Aufgaben für Sie: Verändern Sie das Lauflicht-Programm so, dass das Licht wie im Auto aus der TV-Serie Knigt Rider aussieht. Das heißt, dass der Leuchtpunkt hin- und herwandern soll. Schreiben Sie das Programm so um, dass zwei Leuchtpunkte in entgegengesetzte Richtung wandern. Realisieren Sie ein Programm für eine Verkehrsampel mit ihren verschiedenen Ampelphasen. Verwenden Sie in der Schaltung dafür LED in den Farben Rot, Grün und Gelb. Hier ist der Schaltplan des Lauflichtes: Seite 15 von 31

16 Bild: Schaltplan für das Lauflicht Und hier ist das Programm für das Lauflicht über 10 LED. // Lauflicht // 10 LED sind angeschlossen an die digitalen Pins 2 bis 11 int i = 0; // Diese globale Variable kann man in beiden Funktionen nutzen // Diese Funktion läuft einmal nach dem Einschalten: void setup() { // Alle benötigte digitalen Pins als "output" initialisieren for(i = 2; i <= 11; i++) pinmode(i, OUTPUT); // Pegel LOW auf allen benutzten digitalen Pins ausgeben for(i = 2; i <= 11; i++) digitalwrite(i, LOW); // Diese Funktion wird endlos immer wieder neu aufgerufen: void loop() { for(i = 2; i <= 11; i++) { digitalwrite(i, HIGH); // die aktuelle LED wird hell delay(150); // Programm-Pause für 150 ms digitalwrite(i, LOW); // die aktuelle LED wird wieder dunkel Seite 16 von 31

17 11 Bauplan Ohmmeter 11.1 Idee und Schaltung Nun soll eine Schaltung realisiert werden, mit der man einen elektrischen Widerstand messen kann. Wir wissen, dass ein Arduino analoge Eingänge hat, mit denen die Spannung gemessen werden kann. Der Arduino UNO hat 6 analoge Eingänge. Mit jedem analogen Eingang kann man eine Spannung im Bereich von 0 bis 5 V messen. (Man kann den Arduino auch so programmieren, dass er im Bereich von 0 bis zur internen Referenzspannung 1,1 V misst.) Das Messergebnis ist eine ganze Zahl von 0 bis Der Grund dafür ist, dass ein 10 Bit AD-Wandler im Arduino steckt, und 2 10 = Es ist also möglich, die Spannung zu messen. Wie kann man einen Widerstand messen? Das geht mit dieser Idee: Wir schalten einen bekannten Widerstand mit einem unbekannten Widerstand in Reihe. An diese Reihenschaltung wird eine bekannte Spannung angelegt. Dann messen wir die Spannung über einem der Widerstände. Aus der gemessenen Spannung, der bekannten Spannung und dem bekannten Widerstand kann nun der Wert des unbekannten Widerstands errechnet werden. Hier ist die Schaltung für das Widerstandsmessgerät mit dem Arduino UNO. Der Arduino ist natürlich wieder über USB mit einem PC verbunden. Von dort erhält er seine Betriebsspannung 5V. Und darüber werden auch die Messergebnisse zum PC gesendet, damit sie auf dem Bildschirm angezeigt werden können. Zur Anzeige wird der sogenannte Serielle Monitor der Entwicklungsumgebung verwendet. Bild: Schaltung für das Widerstandsmessgerät mit der Arduino UNO Hier ist die Spannung über die Reihenschaltung der Widerstände bekannt. Sie beträgt 5V. Und es ist auch der Widerstand 10 kω bekannt. Die Spannung U x über dem unbekannten Widerstand R x wird mit dem analogen Eingang A1 des Arduino gemessen. Dort kann das Programm dann den Wert dieses Widerstandes berechnen. Mit unseren Kenntnissen der Elektrotechnik können wir dafür diese Formel herleiten: R x = 10k * U x /(5V - U x ) Wir müssen jetzt ein Programm für den Arduino herstellen, das die Spannung U x am Eingang A1 misst und daraus den Widerstand R x berechnet. Das Ergebnis muss an den PC gesendet werden, damit es dort angezeigt werden kann. Diese Schritte sollen sich ständig wiederholen, damit man mehrere unbekannte Widerstände messen kann. Deswegen werden diese Schritte in der loop() Funktion programmiert. Und in der setup() Funktion wird eine Anweisung programmiert, die für die Initialisierung der Datenübertragung zum PC notwendig ist. Dafür muss man die Übertragungsgeschwindigkeit festlegen. Seite 17 von 31

18 11.2 Programm Das Programm des Ohmmeters sieht so aus: // Widerstand messen und im Seriellen Monitor anzeigen int analogpin = A1; int wert; double ux, rx; // Analoger Eingang A1 zum Messen einer Spannung void setup() { // Diese Anweisungen werden einmal zu Beginn abgearbeitet: Serial.begin(9600); // Start der seriellen Übertragung zum PC void loop() { // Diese Anweisungen werden ständig wiederholt: wert = analogread(analogpin); ux = (double) wert / 1024 * 5; // 5V Referenzspannung rx = 10 * ux / (5 - ux); // Bekannter Widerstand 10kOhm Serial.print(rx); Serial.println(" kohm"); // Ausgabe Widerstandswert (in kohm) delay(1000); // 1000 ms warten, dann erfolgt die nächste Messung In einem C-Programm müssen die verwendeten Variablen deklariert werden. Hier im Quelltext erkennt man, dass die Variablen gleich in den ersten 3 Zeilen des Programms deklariert werden, also über den Funktionen. Das hat den Vorteil, dass diese Variablen dann in allen Funktionen verwendet werden können. Solche Variablen nennt man globale Variablen. (Manchmal ist es aber sinnvoll, die Variablen innerhalb einer Funktion zu deklarieren.) Die Variable wert hat den Datentyp int. Das heißt, dass darin eine ganze Zahl gespeichert ist. Die Variable rx für den Widerstandswert und auch schon die Variable ux für die Spannung aber speichern Gleitkommazahlen. In einem C-Programm muss man darauf achten, dass man für diese Variablen den Datentyp double verwendet. (Man kann theoretisch auch den Datentyp float verwenden. Dieser Datentyp ist aber weniger genau.) Die Anweisung (double) vor der Variablen wert in der Berechnungsformel der Spannung U x führt eine Umwandlung des Datentyps vor. Der Inhalt von wert wird nun als Gleitkommazahl angesehen, so dass die Berechnungsformel im Bereich der Gleitkommazahlen rechnet und eine Gleitkommazahl als Ergebnis liefern kann: ux = (double) wert / 1024 * 5 Seite 18 von 31

19 11.3 Anzeige des Ergebnisses auf dem Seriellen Monitor In dem Programm gibt es die Anweisung Serial.print(rx) und Serial.println(" kohm"). Damit wird der berechnete Widerstandswert und danach auch noch der Textstring kohm zusammen mit einem Zeilenwechsel auf den sogenannten Seriellen Monitor ausgegeben. Der Zeilenwechsel am Ende wird von der Funktion Serial.println() ausgegeben, erkennbar am ln wie Line am Ende des Funktionsnamens. Diesen Seriellen Monitor findet man in der Entwicklungsumgebung im Menü Werkzeuge. Man kann dort den Seriellen Monitor starten. Auf dem Bildschirm öffnet sich dann ein Window, das die vom Programm gesendeten Daten anzeigt. Bild: Der serielle Monitor zeigt den Widerstandswert an 12 Bauplan Voltmeter 12.1 Idee und Schaltung Wie wir im vorangegangenen Bauplan gesehen haben, kann man mit einem Arduino eine Spannung im Bereich von 0 bis 5 V messen. (Alternativ kann man den Arduino auch so programmieren, dass er im Bereich von 0 bis zur internen Referenzspannung 1,1 V misst.) Das Messergebnis ist eine ganze Zahl im Bereich von 0 bis Wie kann man eine größere Spannung messen? Das ist möglich, wenn man einen Spannungsteiler aus zwei Widerständen am analogen Eingang benutzt. Dafür kann man diese Schaltung aufbauen: Seite 19 von 31

20 Bild: Eine Gleichspannung U x im Bereich von 0 bis 10 V messen Die Widerstände des Spannungsteilers sind in Reihe geschaltet, so dass durch jeden Widerstand derselbe Strom fließt. Dann teilt sich die Spannung proportional zur Größe der Widerstände auf. In der gezeigten Schaltung sind beide Widerstände gleich groß, nämlich 100 kω. Das bedeutet, dass bei einer Messspannung U x = 10 V an jedem Widerstand 5 V abfallen. Der hier verwendete Spannungsteiler aus zwei gleichen Widerständen erlaubt es also, Spannungen im Bereich von 0 bis 10 V zu messen. Der AD-Wandler liefert auch hier einen Zahlenwert im Bereich von 0 bis Man kann daraus die Spannung berechnen. Dafür verwenden wir diese einfache Formel: U x = Zahlenwert / 1024 * 10; 12.2 Programm Das Programm des Voltmeters, das seine Werte an den seriellen Monitor sendet, sieht so aus: // Spannung messen und im Seriellen Monitor anzeigen int analogpin = A1; // Analoger Eingang A1 zum Messen einer Spannung int wert; double spannung; void setup() { // Diese Anweisungen werden einmal zu Beginn abgearbeitet: Serial.begin(9600); // Start der seriellen Übertragung zum PC void loop() { // Diese Anweisungen werden ständig wiederholt: wert = analogread(analogpin); spannung = (double)wert / 1024 * 10; Serial.print(spannung); Serial.println(" V"); delay(1000); Das Programm hat keine Besonderheiten und sollte daher verständlich sein. Seite 20 von 31

21 12.3 Voltmeter mit Display Es ist möglich, ein Display an einen Arduino anzuschließen. Dann benötigt man keinen PC zur Anzeige des Messergebnisses. Für den Arduino eignet sich unter anderem ein Display mit der Bezeichnung 1602 (HD44780). Das ist ein LCD Display für 2 Zeilen mit je 16 alphanumerischen Zeichen. Der Anschluss dieses Displays wird beispielsweise hier besprochen: funduino.de/nr-13-lcd-display Die Displays können alle alphanumerischen Zeichen des ASCII-Zeichensatzes darstellen. Darüber hinaus können sie, je nach Modell, entweder die Umlaute und Sonderzeichen der europäischen Sprachen oder japanische Zeichen darstellen. Man benötigt recht viele Leitungen für den Anschluss des genannten Displays. Es gibt andere Displays, die mit weniger Leitungen auskommen. Ein Display mit einem I 2 C Anschluss erfordert nur 4 Anschlussleitungen. Diese Displays haben aber auch Nachteile. Nenn es gibt verschiedene Varianten dieser Displays mit I 2 C Anschluss. Dem entsprechend sind verschiedene Programm-Bibliotheken im Umlauf. Man muss also wissen, welche zu dem Display passt, das man gerade verwendet. Und ein weiterer Nachteil ist, dass diese zusätzlichen Bibliothek meist nicht mit allen Arduino-Modellen (z.b. dem Arduino DUE) funktioniert. Und letztlich sind diese Displays auch etwas teurer. Hier ist der Schaltplan für das Voltmeter für den Bereich 0 bis 10 V mit einem 1602 (HD44780) Display. Bild: Schaltplan des Voltmeters mit dem 1602 (HD44780) Display Seite 21 von 31

22 Bild: Das Voltmeter mit dem 1602 (HD44780) Display misst die Spannung einer Knopfzelle. Das Breadboard und der Arduino UNO sind hier auf einer ausgedienten CD befestigt. Das Programm des Voltmeters sieht so aus: // Voltmeter mit LCD Display // Programm-Bibliothek für das LCD-Display einbinden #include <LiquidCrystal.h> // Pin-Nummer angeben, der die Spannung messen soll int analoginputpin = A1; // LCD-Bibliothek initialisieren: Pin für Anschluss des Displays LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup() { // Angabe, wie viele Zeichen und Zeilen das LCD-Display hat lcd.begin(16, 2); // Schreibcursor auf Position 0 in Zeile 1 setzen (Zählung ab 0) lcd.setcursor(0, 1); // Schreibe einen Textstring auf das LCD-Display lcd.print("volt"); void loop() { // Die Spannung messen int inputvalue = analogread(analoginputpin); double volts = 10.0/1024 * inputvalue; // Schreibcursor auf Position 0 in Zeile 0 setzen (Zählung ab 0) lcd.setcursor(0, 0); // Wert der Spannung dort ausgeben lcd.print(volts); delay(500); Seite 22 von 31

23 13 Magischer Antwortgenerator Der Magic 8 Ball ist ein Spielzeug in Form und Größe einer Billad-Kugel. Es besitzt eine Anzeige, in der man eine von zwanzig Antworten ablesen kann. Die passende Frage muss man sich vorher selbst ausdenken. Es muss eine Frage sein, die man entweder mit Ja oder mit Nein beantworten kann. Welche Antwort man dann in der Kugel lesen kann, ist selbstverständlich rein zufällig. Aus diesem Grund sind einige Antworten dann zum Schmunzeln, was den Unterhaltungswert dieses Spielzeugs ausmacht. Mehr darüber findet man beispielsweise in de.wikipedia.org/wiki/magic_8_ball. Man kann selbstverständlich eine elektronische Variante dieses Spielzeuges herstellen. Hier wird die Schaltung und das Programm von arduinolearning.com/code/arduino-magic-8-ball-example.php vorgestellt. Zur Anzeige wird wieder ein 1602 (HD44780) Display verwendet. Am Arduino ist dann noch ein Tast-Schalter angeschlossen. Solange der Taster gedrückt ist, werden immer wieder neue Antworten zufällig ausgewählt und angezeigt so schnell, das man sie nicht lesen kann. Nachdem man den Taster loslässt, kann man die Antwort auf der ersten Zeile des Displays (maximal 16 Zeichen) ablesen. Hier ist der Schaltplan des elektronischen magischen Antwortgenerators: Bild: Schaltplan der Magischen Glaskugel mit dem 1602 (HD44780) Display Seite 23 von 31

24 Im zugehörigen Programm findet man ein Array mit vorbereiteten Antworten wie "Without a doubt" oder "No chance". In dem originalen Spielzeug gibt es 20 verschiedene Antworten. Hier sind es allerdings nur 17 Antworten. Jede Antwort ist nicht länger als 16 Zeichen lang, so dass alle Antworten auf der ersten Zeile des Displays angezeigt werden können. // Programm-Bibliothek für das LCD-Display einbinden #include <LiquidCrystal.h> // Pin-Nummer für Run-Schalter angeben int analoginputpin = A0; // LCD-Bibliothek initialisieren LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // Sprueche vorgeben String phrases[] = {"It is certain", "Certainly", "Without a doubt", "You may rely on it", "As I see it, yes", "Most likely", "Outlook good", "Yes", "My reply is no", "Very doubtful", "No", "No chance", "No way", "Cannot predict", "I doubt it", "Ask again", "Not sure"; int numberofphrases = 17; // Anzahl der Antworten in phrases[] int number; String output; void setup() { // Angabe, wie viele Zeichen und Zeilen das LCD-Display hat lcd.begin(16, 2); // Schreibcursor im Display auf Position 0 in Zeile 0 setzen lcd.setcursor(0, 0); //Schreibe einen Textstring auf das LCD-Display lcd.print("think A QUESTION"); void loop() { // Schalter abfragen int key = analogread(analoginputpin); // Wenn der Schalter gedrückt ist, einen zufälligen Spruch im Display anzeigen if(key < 500) { lcd.clear(); lcd.setcursor(0, 0); number = random(numberofphrases); output = phrases[number]; lcd.print(output); delay(50); Seite 24 von 31

25 14 Ladung und Entladung eines Kondensators plotten 14.1 Idee und Schaltung In der Entwicklungsumgebung findet man im Menü Werkzeuge neben dem Seriellen Monitor auch den Seriellen Plotter. Das ist eine einfache Möglichkeit zur grafischen Darstellung von Zahlenwerten. Die mechanische Variante des Seriellen Plotters findet man in einem Thermohygrograph: de.wikipedia.org/wiki/thermohygrograph. Wir wollen nun das Laden und Entladen eines Kondensators auf dem Seriellen Plotter grafisch darstellen. Zunächst müssen wir eine Schaltung aufbauen, die uns abwechselnd 5V und 0V an einem Anschluss ausgibt, ähnlich wie die Schaltung Blinklicht zu Beginn. Dieser Anschluss ist über einen Widerstand von 10 kω mit einem Kondensator von 10 μf verbunden. Über den Widerstand wird der Kondensator dann abwechselnd auf 5V aufgeladen und wieder entladen. Bild: Schaltung für den Plotter der Ladung und Entladung eines Kondensators Mit dem Widerstand R und dem Kondensator C kann die Zeit τ berechnet werden. τ = RC Ein Kondensator ist nach einer Zeit von 5τ zu rund 99% aufgeladen oder entladen. In unserer Schaltung beträgt diese Zeit: 5τ= 5 * 10kΩ * 10μF = 500 ms 14.2 Das Programm Hier ist das Programm. Es wird genau wie im Blinklicht-Programm abwechselnd LOW und HIGH an einem Anschluss des Arduino ausgegeben. Wir nehmen den Anschluss 13. Der ist ja auch mit der internen LED verbunden, so dass diese LED blinken wird. Anstelle der Funktion delay() im Blinklicht-Programm wird hier aber die Funktion messen(x, y) genutzt. Diese Funktion ist im Programm selbst programmiert. Sie führt x Messungen aus, gefolgt von x ms Wartezeit. Jeder gemessene Wert wird an den Seriellen Monitor (bzw. Plotter) gesendet. Ein Funktionsaufruf dauert folglich etwa x*y ms. Seite 25 von 31

26 Das Programm sieht so aus: // Kondensator laden und entladen im Seriellen Plotter anzeigen int digitaloutputpin = 13; int analoginputpin = A1; int messwert = 0; // Pin für den digitalen Ausgang // Pin für den analogen Eingang // Variable speichert den Messwert void setup() { // Diese Anweisungen laufen einmal zu Beginn: // Parameter für den digitalen Ausgang pinmode(digitaloutputpin, OUTPUT); // Parameter für die serielle Datenübertragung Serial.begin(9600); void loop() { // Diese Anweisungen werden ständig wiederholt: digitalwrite(digitaloutputpin, HIGH); messen(100, 10); digitalwrite(digitaloutputpin, LOW); messen (100, 10); void messen(int anzahl, int pausezeit) { // Analoge Spannung anzahl mal messen, // Messpausen pausezeit ms. Alle Messwerte // an den Seriellen Monitor/Plotter senden. for(int i = 0; i < anzahl; i++) { messwert = analogread(analoginputpin); Serial.println(messWert); delay(pausezeit); Seite 26 von 31

27 Wir erhalten dieses Bild auf dem Seriellen Plotter: Bild: Ladung und Entladung eines Kondensators im Seriellen Plotter 15 Nachbauanleitungen im Internet und fertige Bausätze Im Internet und in Fachzeitschriften findet man viele Nachbauanleitungen, in denen auch ein Arduino verwendet wird. Man kann sich davon inspirieren lassen und eigene Projektideen erfinden. Man kann dabei sehr kreativ werden, weil es sehr viele elektronische Bauteile, Sensoren, Anzeigen und zusätzliche Baugruppen gibt, die sich an einen Arduino anschließen lassen. Wenn man einen fertigen Bausatz kauft, hat man den Vorteil, dass man alle benötigten zusätzlichen Bauelemente gleich beisammen hat. Es gibt auch eine Bauanleitung. Und auch die Software wird mitgeliefert, so dass man theoretisch nicht selbst programmieren muss. Solche Bausätze sind aber alles andere als langweilig. Denn oft sind die Nachbauanleitungen oder Bausätze nicht perfekt. Es erfordert einiges Geschick, sie zum Laufen zu bringen. Die mitgelieferte Software kann oft stark verbessert werden. Man wird dabei sicher auch versuchen, die Hardware zu modifizieren. Bild: Bausatz für ein Modell-Auto, das von einem Arduino UNO gesteuert wird, von Elegoo Seite 27 von 31

28 16 Weitere Projektideen Ein Arduino ist dazu geschaffen, dass man elektronische Sensoren, Servermotoren und andere elektronische Bauelemente anschließt. Man kann sehr viele fertige Sensoren und Motoren kaufen, die sich an einen Arduino anschließen lassen. Weitere Baugruppen wird man auch selbst aufbauen. Eigenen Ideen sind kaum Grenzen gesetzt. Man sogar verhältnismäßig umfangreiche Ideen auf Basis eines Arduino aufbauen, wie beispielsweise einen Roboter. Auf Youtube findet man sehr viele Videos, die Arduino-Projekte vorstellen. Nur ein Beispiel ist der Clip Top 10 Arduino Projects 2018 auf youtu.be/drh-gdzxl-o. Darin wird vorgestellt: Arduino Solar Tracker Turret Critter 3D Arduino Walking Robot Arduino Robot Rubik cube Solver 3D Printed Robot Arm Wireless Controlled Artificial Hand 3D Spectrum Analyser Arduino powered Egg Printer Otto Robot V2 Collision Avoiding Drone Snake Robot Bild: YouTube Video Top 10 Arduino Projects 2018 Seite 28 von 31

29 17 C-Programmierung auf dem PC Man kann auch auf einem PC einfache Programme in der Sprache C schreiben und testen. Wer sich also nur für die Programmiersprache C bzw. C++ interessiert, kann sie damit schnell erlernen, ohne dass er sich um Hardware kümmern muss. Auf einem Windows PC kann man dazu die kostenlose Entwicklungsumgebung (IDE) Code::Blocks verwenden. Die Installationsdatei findet man auf Man sollte die Installationsdatei benutzen, die auch gleich den C-Compiler auf dem Rechner installiert. Sie enthält mingw im Dateinamen, also beispielsweise codeblocks-17.12mingw-setup.exe. Sogar auf einem Raspberry Pi kann man C-Programme schreiben. Im Betriebssystem Raspbian findet man das Programm Geany. Das ist eine IDE für verschiedene Programmiersprachen, darunter auch C Das Programm winkel.c Hier ist das im Kapitel 3 schon angesprochene einfache Programm winkel.c, das einfach nur den Sinus von 57,2 berechnet. Sie sehen in dem Programm die Funktion printf, mit der man Text auf dem Bildschirm ausgeben kann. Dieses Programm sieht in Code::Blocks dann so aus, wie im nächsten Bild gezeigt. Seite 29 von 31

30 Bild: Das Programm winkel.c in der IDE Code::Blocks Man kompiliert und startet das Programm, indem man auf das Icon mit dem grünen Dreieck und dem gelben Zahnrad klickt. Wenn das Programm fehlerfrei ist, erhält man dieses Ergebnis: Bild: Ergebnis des Programmes winkel.exe, das man aus winkel.c erhalten hat 17.2 Ein Programm zur Ermittlung der Sparzeit Angenommen, Sie haben 1000 Euro auf einer Sparanlage mit dem Zinssatz 1,2%. Sie möchten nun wissen, nach wieviel Jahren sich der Geldbetrag verdoppelt hat. Sie können dazu einfach ein C-Programm schreiben, dass den Geldbetrag nach jedem Jahr errechnet, bis das Sparziel erreicht ist. Hier ist das Struktogramm dieses Programmes: Seite 30 von 31

31 Bild: Das Struktogramm des Programmes zur Ermittlung der Sparzeit Bild: C-Programm zur Ermittlung der Sparzeit 18 Fazit Mit dem Arduino lassen sich sehr interessante Mikrocontroller-Anwendungen verwirklichen. Dabei eignet man sich Programmiererfahrungen in der Sprache C/C++ an. Und man lernt etwas über Elektrotechnik, elektronische Schaltungen und Mikrocontroller. Man kann aber auch auf einem Personal Computer C-Programme schreiben und die Sprache dabei erlernen. Seite 31 von 31

Arduino programmieren in der Sprache C/C++

Arduino programmieren in der Sprache C/C++ Hochschule für Telekommunikation Leipzig Dipl.-Ing. Jens Grätzer Arduino programmieren in der Sprache C/C++ Skript zur Action Vorlesung am 06. April 2017 an der HfTL 1 Vorwort Ein Programmierer wird in

Mehr

Arduino in C/C++ programmieren

Arduino in C/C++ programmieren 1 Arduino in C/C++ programmieren Tutor: Dipl.-Ing. Jens Grätzer www1.hft-leipzig.de/graetzer/ graetzer@hft-leipzig.de 2 C/C++ auf dem Arduino Warum Arduino? Warum C/C++? Praxis Live 3 Warum Arduino? Mikrocontroller

Mehr

Was so passieren wird:

Was so passieren wird: Arduino Einführung Arduino Einführung Was so passieren wird: Was so passieren wird: Arduino Überblick Was so passieren wird: Arduino Überblick Die Taschenlampe Was so passieren wird: Arduino Überblick

Mehr

Ampelsteuerung Merkblatt 2 Wie wird der Arduino programmiert?

Ampelsteuerung Merkblatt 2 Wie wird der Arduino programmiert? 1 Übersicht Für die Programmierung steht ein Programm zur Verfügung. Hier kann der Quelltext geschrieben, überprüft, kompiliert und anschließend auf den Arduino geladen werden. Wenn ihr das Programm startet,

Mehr

- Der heisse Draht - Physical Computing. Workshop Oktober 2015 Olav Schettler

- Der heisse Draht - Physical Computing. Workshop Oktober 2015 Olav Schettler - Der heisse Draht - Physical Computing Workshop Oktober 2015 Olav Schettler Zeitplan 1. Tag: 10:00 10:30 Spiel bauen 10:30 11:30 Lötübungen 11:30 12:00 Mikrocontroller löten (1) 12:00

Mehr

Einführung in das Programmieren in der Sekundarstufe 1. mit einem Arduino und der Physical-Computing-Plattform

Einführung in das Programmieren in der Sekundarstufe 1. mit einem Arduino und der Physical-Computing-Plattform Einführung in das Programmieren in der Sekundarstufe 1 mit einem Arduino und der Physical-Computing-Plattform 1 Arduino mit Breadboard (Steckbrett) und LED mit Vorwiderstand Arduino-Board Uno R3 mit Mikrocontroller

Mehr

Starten Sie die Arduino IDE und geben Sie den folgenden Programmcode ein:

Starten Sie die Arduino IDE und geben Sie den folgenden Programmcode ein: Blinken Starten Sie die Arduino IDE und geben Sie den folgenden Programmcode ein: // Projekt 1 - LED Blinker int ledpin = 13; void setup() pinmode(ledpin, OUTPUT); void loop() digitalwrite(ledpin, HIGH);

Mehr

Raspberry Pi meets Pocket Code. Tutorial: Ampelschaltung

Raspberry Pi meets Pocket Code. Tutorial: Ampelschaltung Raspberry Pi meets Pocket Code Tutorial: Ampelschaltung Dieses Material steht unter der Creative-Commons-Lizenz Namensnennung 4.0 International. Um eine Kopie dieser Lizenz zu sehen, besuchen sie http://creativecommons.org/licenses/by/4.0/.

Mehr

Bisher hatten immer nur als Ausgänge geschaltet und hierfür folgende Befehle benutzt:

Bisher hatten immer nur als Ausgänge geschaltet und hierfür folgende Befehle benutzt: Tasten abfragen Bisher hatten immer nur als Ausgänge geschaltet und hierfür folgende Befehle benutzt: pinmode(pinnummer, OUTPUT) digitalwrite(pinnummer, HIGH) oder digitalwrite(pinnummer, LOW) Zum Abfragen

Mehr

Eingaben. Themen heute. Taster. Eingaben Zuweisungen Zeitmessung. Programmieren für Ingenieure Sommer Andreas Zeller, Universität des Saarlandes

Eingaben. Themen heute. Taster. Eingaben Zuweisungen Zeitmessung. Programmieren für Ingenieure Sommer Andreas Zeller, Universität des Saarlandes Eingaben Programmieren für Ingenieure Sommer 2015 Andreas Zeller, Universität des Saarlandes Themen heute Eingaben Zuweisungen Zeitmessung Taster Wikipedia Ziel Wenn Taste gedrückt, soll LED leuchten Wir

Mehr

Digitalelektronik 1 Digitale Ausgabe. Stefan Rothe

Digitalelektronik 1 Digitale Ausgabe. Stefan Rothe Digitalelektronik 1 Digitale Ausgabe Stefan Rothe 2015 02 14 Rechtliche Hinweise Dieses Werk von Thomas Jampen und Stefan Rothe steht unter einer Creative Commons Attribution-Non- Commercial-ShareAlike-Lizenz.

Mehr

Arbeitsblatt Nr.19: RFID Kit

Arbeitsblatt Nr.19: RFID Kit Aufgabe: Mit Hilfe eines Arduino-Mikrocontrollers soll ein RFID-TAG ausgelesen werden. Sofern es sich um den richtigen TAG handelt, soll eine Leuchtdiode für 5 Sekunden leuchten. Material: Arduino-Board

Mehr

SINNsorik Wahrnehmen durch Sensoren NAME, KLASSE:

SINNsorik Wahrnehmen durch Sensoren NAME, KLASSE: SINNsorik Wahrnehmen durch Sensoren NAME, KLASSE: ARBEITEN MIT DEM ARDUINO KURZBESCHREIBUNG UND ZIELSETZUNG: In diesem optionalen Modul lernen die Schüler das Arbeiten mit Microcontrollern kennen. Das

Mehr

LED Skalenbeleuchtung mit einem Arduino

LED Skalenbeleuchtung mit einem Arduino Projektteil: LED Skalenbeleuchtung mit einem Arduino Aufgaben: - Ein Taster schaltet die LED-Beleuchtung ein - Nach Ablauf einer im Programm hinterlegten Zeit schaltet sich die Beleuchtung von selbst wieder

Mehr

Mikrocontroller: Einführung

Mikrocontroller: Einführung Abbildung 1 Mikrocontroller sind heute allgegenwärtig; ob Zahnbürste, Türschloss, Backofen, Fahrradcomputer, Stereoanlage, Multimeter oder Postkarte, überall sind sie zu finden. Im Prinzip handelt es sich

Mehr

Informatik Enlightened. Station 0 - Einstieg

Informatik Enlightened. Station 0 - Einstieg Informatik Enlightened Herzlich Willkommen zum Workshop rund um das Thema Licht! Ihr wollt heute also eine Einparkhilfe selbst konstruieren, Geschwindigkeiten messen, eine Blume mit der Sonne wandern lassen

Mehr

Erste Schritte. Das Arduino-Board. Ihr Fundino-Board. Programmieren für Ingenieure Sommer 2015. Andreas Zeller, Universität des Saarlandes

Erste Schritte. Das Arduino-Board. Ihr Fundino-Board. Programmieren für Ingenieure Sommer 2015. Andreas Zeller, Universität des Saarlandes Erste Schritte Programmieren für Ingenieure Sommer 2015 Andreas Zeller, Universität des Saarlandes Das Arduino-Board Ihr Fundino-Board Anschluss über USB Anschluss über USB Programmierumgebung Download

Mehr

Mikrocontroller: Einführung

Mikrocontroller: Einführung Abbildung 1 Mikrocontroller sind heute allgegenwärtig; ob Zahnbürste, Türschloss, Backofen, Fahrradcomputer, Stereoanlage, Multimeter oder Postkarte, überall sind sie zu finden. Im Prinzip handelt es sich

Mehr

C++ mit dem Arduino (Uno und Mega2560)

C++ mit dem Arduino (Uno und Mega2560) C++ mit dem Arduino (Uno und Mega2560) 1. Toolchain Als toolchain bezeichnet man die Reihe von Software, die nötig ist um den Prozessor zu programmieren, das Ergebnis draufzuladen und dann zu testen. Hier

Mehr

Eine tastergesteuerte LED

Eine tastergesteuerte LED D3kjd3Di38lk323nnm Projekt 1 Eine tastergesteuerte LED In diesem Projekt verwenden Sie einen Taster, um zu steuern, wann die LED leuchtet. Mark Geddes, Arduino-Projekte, dpunkt.verlag, ISBN 978-3-86490-415-8

Mehr

Microcontroller im Amateurfunk

Microcontroller im Amateurfunk Ortsverband Braunschweig - Okeraue H46 Microcontroller im Amateurfunk oder: Mit einem Arduino kann man Probleme lösen, die man ohne nicht hätte. Steuerung für Wintergarten Lüftung Wintergarten, wenn im

Mehr

Wunderst du dich auch manchmal, wo die ganzen Kekse hin sind? Mit diesem Projekt kommst du dem Dieb schnell auf die Schliche.

Wunderst du dich auch manchmal, wo die ganzen Kekse hin sind? Mit diesem Projekt kommst du dem Dieb schnell auf die Schliche. Keksdosenalarm Wunderst du dich auch manchmal, wo die ganzen Kekse hin sind? Mit diesem Projekt kommst du dem Dieb schnell auf die Schliche. Sobald jemand die Keksdose öffnet, geht der Alarm los. /8 9

Mehr

ARDUINO Übung. Inhalt:

ARDUINO Übung. Inhalt: ARDUINO Übung Diese Übung ermöglicht einen kurzen Einblick in die Welt der Mikrokontrollerprogrammierung. Es sollen im Folgenden die Anleitungen befolgt werden und die entsprechenden elektrotechnischen

Mehr

GI Vektoren

GI Vektoren Vektoren Problem: Beispiel: viele Variablen vom gleichen Typ abspeichern Text ( = viele char-variablen), Ergebnisse einer Meßreihe ( = viele int-variablen) hierfür: Vektoren ( = Arrays = Feld ) = Ansammlung

Mehr

1 Spannung messen mit Grenzwertüberwachung

1 Spannung messen mit Grenzwertüberwachung 1 Spannung messen mit Grenzwertüberwachung 1.1 Spannung simulieren Der Drehregler liefert eine Wert zwischen 0 und 10. Die Messinstrument- Anzeige und die Tankanzeige zeigen diesen Wert an. 3 LEDs neben

Mehr

Gamecontroller Der Bewegungssensor - Links-Rechts-Steuerung

Gamecontroller Der Bewegungssensor - Links-Rechts-Steuerung Gamecontroller Materialien: 8 1x ADXL 335 Sensor 8 1x Arduino 8 1x USB-Kabel 8 Breadboard mit der Tasterschaltung aus der letzten Runde 8 versch. Verbindungskabel Abb. 2 : Der ADXL335-Bewegungssensor Eine

Mehr

Projektworkshop Digitales Haustier. Digitales Haustier. Bau dir ein Digitales Haustier, das schnurrt, wenn du es streichelst. 1/8

Projektworkshop Digitales Haustier. Digitales Haustier. Bau dir ein Digitales Haustier, das schnurrt, wenn du es streichelst. 1/8 Digitales Haustier Bau dir ein Digitales Haustier, das schnurrt, wenn du es streichelst. /8 9 8 7 6 5 4 3 2 Diese Bauteile brauchst du AREF GND 3 2 0 ICSP2 L TX RX Arduino TM TX0 DIGITAL (PWM= ) ON Arduino

Mehr

RASPBERRY PI. Physical Computing

RASPBERRY PI. Physical Computing RASPBERRY PI Physical Computing Mit dem Raspberry Pi kann man Leuchtdioden aber auch Geräte steuern. Man braucht dazu eine geeignete Programmierumgebung. Python und Scratch sind solche geeigneten Programmiersprachen.

Mehr

ELEXBO A-Car-Engineering

ELEXBO A-Car-Engineering 1 Aufgabe: -Bauen Sie alle Schemas nacheinander auf und beschreiben Ihre Feststellungen. -Beschreiben Sie auch die Unterschiede zum vorherigen Schema. Bauen Sie diese elektrische Schaltung auf und beschreiben

Mehr

Einführung. Schritt 1: Sammle deine Materialien

Einführung. Schritt 1: Sammle deine Materialien Einführung Dieses Tutorial erklärt, wie Sie mit Ihrem 1Sheeld beginnen können, wenn Sie keine allgemeinen Kenntnisse über Arduino und Arduino Programmierung haben, empfehlen wir Ihnen, die Anleitungen

Mehr

Haftkünstler auf dem Prüfstand. Online Ergänzung HOLGER FLORIAN BOHN OLGA SPECK THOMAS SPECK

Haftkünstler auf dem Prüfstand. Online Ergänzung HOLGER FLORIAN BOHN OLGA SPECK THOMAS SPECK Haftkünstler auf dem Prüfstand HOLGER FLORIAN BOHN OLGA SPECK THOMAS SPECK Online Ergänzung Bohn et al., 2011 Haftkünstler auf dem Prüfstand Zusatzmaterial 3 1/6 Bauanleitung Insektenzentrifuge Erweiterung:

Mehr

Arduino für FunkAmateure

Arduino für FunkAmateure Arduino für FunkAmateure Arduino Einführung Teil 6 analogread() ; map(); analogwrite(); Wie gehe ich am besten vor? 1. Was will ich machen? 2. Bauteile 3. Schaltplan LCD in Betrieb nehmen 4. LCD-Funktionen

Mehr

Jan Monsch. Donnerstag, 2. Mai 13

Jan Monsch. Donnerstag, 2. Mai 13 101 Jan Monsch Agenda Arduino Platform Digitale Ausgaben Analoge Eingänge Digitale Eingaben I2C Geräte (Digitales Thermometer) Arduino SW Download goo.gl/dj5l2 Was ist Arduino? Open Source Einplatinen-Computer

Mehr

Der CodeBug. A) Erste Schritte. 1) Einleitung

Der CodeBug. A) Erste Schritte. 1) Einleitung Der CodeBug A) Erste Schritte 1) Einleitung.) Wenn wir den CodeBug mittels USB-Kabel bei gedrückter Taste A an den Computer anschließen, blinkt die erste LED rot. Der Computer selbst erkennt ihn als einfachen

Mehr

Wir messen analog. Wie dieses Messprinzip mit JavaScript und unserer COMX-Komponente realisiert werden kann, davon handelt dieses Kapitel.

Wir messen analog. Wie dieses Messprinzip mit JavaScript und unserer COMX-Komponente realisiert werden kann, davon handelt dieses Kapitel. Wir messen analog In vielen Fällen reichen digitale Messungen nicht aus. Bei der Untersuchung der ausgeatmeten Luft in Abb. 1 will der Mediziner z.b. nicht wissen, ob darin Kohlendioxid enthalten ist,

Mehr

Ampelsteuerung Merkblatt 1 Wie werden die Bauteile angeschlossen?

Ampelsteuerung Merkblatt 1 Wie werden die Bauteile angeschlossen? 1 Übersicht Wir benutzen zur Steuerung der Ampeln das Arduino-Board, einen Mikrocontroller, an dem die einzelnen Bauelemente, Lampen, Taster und Sensoren, angeschlossen werden. Dafür gehen von jedem Element

Mehr

Einführung in Mikrokontroller Benutzung mit dem Arduino Board. Ramon Hofer ICVR

Einführung in Mikrokontroller Benutzung mit dem Arduino Board. Ramon Hofer ICVR Einführung in Mikrokontroller Benutzung mit dem Arduino Board Ramon Hofer ICVR Ablauf Warum Mikrokontroller Das Arduino Board Anschliessen von Bauteilen Digitale Ein- und Ausgaben Analoge Eingaben Serielle

Mehr

Arduino für FunkAmateure

Arduino für FunkAmateure Arduino für FunkAmateure Arduino Einführung Teil 9 Taster-Platine 4x4 Wie gehe ich am besten vor? 1. Was will ich machen? 2. Bauteile 3. Überlegungen zur Schaltung und Algorithmus 4. Zuordnung Arduino-Pins

Mehr

TaT-Maker Steuerung. Selbstbauanleitung. von. Kurt Sepke

TaT-Maker Steuerung. Selbstbauanleitung. von. Kurt Sepke TaT-Maker Steuerung Selbstbauanleitung von Kurt Sepke Inhaltsverzeichnis Einleitung... Aufbauen des Entwicklungsboards...4 Sketch...6 Ventil Anschluss...7 BD7 Anschlüsse...8 Kamera mit Autofokus:...9 Pinbelegung

Mehr

GTP444. GSM-SMS-Fernschaltund Alarmmodul 4-Kanal. Programmierbar am PC mit Software. Kurzanleitung 1/2017. Seite 1 von 7

GTP444. GSM-SMS-Fernschaltund Alarmmodul 4-Kanal. Programmierbar am PC mit Software. Kurzanleitung 1/2017. Seite 1 von 7 GTP444 GSM-SMS-Fernschaltund Alarmmodul 4-Kanal Programmierbar am PC mit Software Kurzanleitung 1/2017 Seite 1 von 7 Technische Daten: Frequenzbereich 900/1800/1900MHz Betriebsspannung 12V DC, max. Stromaufnahme

Mehr

Was ist Arduino? Historie Der Kern Entwicklungsumgebung Hardware Software Und wozu das Ganze? Workshop Mikrorechner 2012 A.

Was ist Arduino? Historie Der Kern Entwicklungsumgebung Hardware Software Und wozu das Ganze? Workshop Mikrorechner 2012 A. Was ist Arduino? Historie Der Kern Entwicklungsumgebung Hardware Software Und wozu das Ganze? Workshop Mikrorechner 2012 A.Schultze, DK4AQ 1 Das Arduino-Projekt Arduino ist ein Open-Source-Prototypen-System,

Mehr

Messungen mit dem Lichtsensor

Messungen mit dem Lichtsensor Messungen mit dem Lichtsensor Für die Programmierung eines Roboters, der einer Linie folgt, brauchen wir für die drei Farben die Helligkeitswerte, die dein Lichtsensor jeweils ausgibt. Arbeite dazu folgende

Mehr

D.1 Vorbereitung. Teil D Analog-Digital-Wandler 1

D.1 Vorbereitung. Teil D Analog-Digital-Wandler 1 D.1 Vorbereitung So wird der Analog-Digital-Wandler des Mikrocontrollers ATmega328P initialisiert: ADMUX = _BV(REFS0); ADCSRA = _BV(ADEN) _BV(ADPS2) _BV(ADPS1) _BV(ADPS0); Der Analog-Digital-Wandler ist

Mehr

MSP-EXP430G2. LaunchPad Entwicklungskit MSP-EXP430G2. Schnellstart mit dem Texas Instruments. LaunchPad Entwicklungskit

MSP-EXP430G2. LaunchPad Entwicklungskit MSP-EXP430G2. Schnellstart mit dem Texas Instruments. LaunchPad Entwicklungskit 10158-5 U1+U4 14.01.15 12:44 Seite 1 Christian Immler Schnellstart mit dem Texas Instruments MSP-EXP430G2 LaunchPad Entwicklungskit Der schnelle und praxisbezogene Einstieg in die Programmierung der 16-Bit-Mikrocontroller

Mehr

Arduino Grundkurs. 3. Schreibe eine Funktion für das Morsezeichen S und eine für O

Arduino Grundkurs. 3. Schreibe eine Funktion für das Morsezeichen S und eine für O Grundkurs LEDs Piezolautsprecher 1. Mikrocontroller Hello World Bring eine LED zum Blinken 1s ein / 1s aus usw. 2. Lichtmorsen - SOS Erzeuge Morsezeichen mit deiner LED SOS = - - - Punkt = 0.2s Strich

Mehr

Arduino - Einfacher Teiler

Arduino - Einfacher Teiler Einen Teiler z.b. zur Reduzierung von Stromzählerimpulsen, wie er hier benötigt wird kann man alternativ zu fertigen Lösungen (z.b. industrieller Vorwahlzähler) sehr leicht und kostengünstig auf einem

Mehr

C++ mit dem Arduino (Uno und Mega2560)

C++ mit dem Arduino (Uno und Mega2560) C++ mit dem Arduino (Uno und Mega2560) 1. Toolchain Als toolchain bezeichnet man die Reihe von Software, die nötig ist um den Prozessor zu programmieren, das Ergebnis draufzuladen und dann zu testen. Hier

Mehr

Baue deinen ersten Roboter

Baue deinen ersten Roboter D3kjd3Di38lk323nnm 2 Baue deinen ersten Roboter In Kapitel 1 hast du gelernt, dass Roboter aus Motoren, Sensoren und dem EV3-Stein bestehen. Damit du besser verstehst, wie diese zusammenarbeiten, setzen

Mehr

Erste Gehversuche mit ARDUINO (Teil 3) (DL6OAA) Die 7-Segmentanzeige (1-stellig)

Erste Gehversuche mit ARDUINO (Teil 3) (DL6OAA) Die 7-Segmentanzeige (1-stellig) Erste Gehversuche mit ARDUINO (Teil 3) (DL6OAA) Die 7-Segmentanzeige (1-stellig) Im Zusammenhang mit dem Ansteuern diverser LED zum Beispiel die Projekte Lauflicht etc. kann man auch die im 4duino-kit

Mehr

Aufgaben zur Attiny-Platine

Aufgaben zur Attiny-Platine Das Attiny-Projekt Aufgaben 1 Aufgaben zur Attiny-Platine 1. LEDs blinken 1.1 Schließen Sie eine rote LED an PortB.0 und eine grüne LED an PortB.1 an (vgl. Abb. 1). Achten Sie dabei darauf, dass die langen

Mehr

Zur Einarbeitung in die Arduino Welt reichen die Folgenden Komponenten aus.

Zur Einarbeitung in die Arduino Welt reichen die Folgenden Komponenten aus. Arduino in der Praxis Einleitung Bei Arduino handelt es sich um eine open-source Prototypen Plattform, welches das Ziel verfolgt, einen einfachen und schnellen einstieg in die Welt der Mikroprozessoren

Mehr

Entwicklungsboard 16F1824

Entwicklungsboard 16F1824 Entwicklungsboard 16F1824 Inhaltsverzeichnis 1. Einleitung...2 2. Grundlegende Eigenschaften...2 2.1 Grundlegende Eigenschaften...2 2.2 Optionale Eigenschaften...3 3. Programmierung...3 4. Hardware...5

Mehr

Projekt Nr. 15: Einen elektronischen Würfel erstellen

Projekt Nr. 15: Einen elektronischen Würfel erstellen Nun wissen Sie, wie Sie Zufallszahlen erzeugen können. Als Nächstes wollen wir diese neuen Kenntnisse gleich in die Tat umsetzen, indem wir einen elektronischen Würfel konstruieren. Projekt Nr. 15: Einen

Mehr

FH München, FB 03 FA WS 06/07. Ingenieurinformatik. Name Vorname Matrikelnummer Sem.Gr.: Hörsaal Platz

FH München, FB 03 FA WS 06/07. Ingenieurinformatik. Name Vorname Matrikelnummer Sem.Gr.: Hörsaal Platz FH München, FB 03 FA WS 06/07 Ingenieurinformatik Name Vorname Matrikelnummer Sem.Gr.: Hörsaal Platz Zulassung geprüft vom Aufgabensteller: Teil I Aufg. 2 Aufg. 3 Aufg. 4 Aufg. 5 Summe Note Aufgabensteller:

Mehr

Mikrocontroller. eine Einführung. Florian Schmitt - 16.11.2010 1 / 34

Mikrocontroller. eine Einführung. Florian Schmitt - 16.11.2010 1 / 34 Mikrocontroller eine Einführung Florian Schmitt - 16.11.2010 1 / 34 Inhalt Was sind Mikrocontroller, wozu sind sie nützlich? Unterschiede und Gemeinsamkeiten mit dem PC Wie funktionieren Mikrocontroller

Mehr

Embedded Hardware Getting Started

Embedded Hardware Getting Started Embedded Hardware Getting Started HW - Ressourcen 2 Arduino Installation-Guide 4 Arduino IDE/Download 4 Arduino Treiber Installation 5 Arduino DIE starten 7 Arduino IDE - Getting Started (Code-Basiert)

Mehr

LED Skalenbeleuchtung mit einem Arduino

LED Skalenbeleuchtung mit einem Arduino Projektteil: LED Skalenbeleuchtung mit einem Arduino Aufgaben: - Ein Taster schaltet die LED-Beleuchtung ein - Nach Ablauf einer im Programm hinterlegten Zeit schaltet sich die Beleuchtung von selbst wieder

Mehr

Java 8. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Oktober 2014 JAV8

Java 8. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Oktober 2014 JAV8 Java 8 Elmar Fuchs Grundlagen Programmierung 1. Ausgabe, Oktober 2014 JAV8 5 Java 8 - Grundlagen Programmierung 5 Kontrollstrukturen In diesem Kapitel erfahren Sie wie Sie die Ausführung von von Bedingungen

Mehr

Kontrollstrukturen -- Schleifen und Wiederholungen

Kontrollstrukturen -- Schleifen und Wiederholungen Kontrollstrukturen -- Schleifen und Wiederholungen Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling benedict.reuschling@h-da.de Hochschule Darmstadt Fachbereich Informatik WS 2013/14

Mehr

ArduBlock Station 4 - Farbthermometer

ArduBlock Station 4 - Farbthermometer Temperatur zum Leuchten bringen Wie viele Menschen haben sich schon die Finger verbrannt, weil die Herdplatte noch heiß war? Oder haben angewidert das Gesicht verzogen, weil der Tee schon kalt war? Das

Mehr

Arduino und Amateurfunk (1)

Arduino und Amateurfunk (1) Arduino und Amateurfunk (1) Vortrag OV-Meeting H08 am 10.01.2012 / 01.09.2012 Historie Der Kern Entwicklungsumgebung Hardware Software Massimo Banzi Und wozu das Ganze? Historie (1) Arduino ist ein Open-Source-Prototypen-System,

Mehr

Parallel-IO. Ports am ATmega128

Parallel-IO. Ports am ATmega128 Parallel-IO Ansteuerung Miniprojekt Lauflicht Ports am ATmega128 PortE (PE7...PE0) alternativ, z.b. USART0 (RS232) 1 Pin von PortC Port C (PC7...PC0) 1 Parallel-IO-Port "Sammelsurium" verschiedener Speicher

Mehr

V cc. 1 k. 7 mal 150 Ohm

V cc. 1 k. 7 mal 150 Ohm Ein Digitalvoltmeter Seite 1 von 6 Eine Multiplex-Anzeige Mit diesem Projekt wird das Ziel verfolgt, eine mehrstellige numerische Anzeige für Mikrocontroller-Systeme zu realisieren. Die Multiplex-Anzeige

Mehr

Schaltungen mit mehreren Widerständen

Schaltungen mit mehreren Widerständen Grundlagen der Elektrotechnik: WIDERSTANDSSCHALTUNGEN Seite 1 Schaltungen mit mehreren Widerständen 1) Parallelschaltung von Widerständen In der rechten Schaltung ist eine Spannungsquelle mit U=22V und

Mehr

Felder und Schleifen. Themen heute. Felder Schleifen Heartbleed. Programmieren für Ingenieure Sommer Andreas Zeller, Universität des Saarlandes

Felder und Schleifen. Themen heute. Felder Schleifen Heartbleed. Programmieren für Ingenieure Sommer Andreas Zeller, Universität des Saarlandes Felder und Schleifen Programmieren für Ingenieure Sommer 2015 Andreas Zeller, Universität des Saarlandes Sensor abfragen int ledpin = 13; // Die LED int buttonpin = 8; // Der Taster! pinmode(ledpin, OUTPUT);

Mehr

Infokarte: Snap4Arduino

Infokarte: Snap4Arduino Infokarte: Snap4Arduino Ein Arduino-Projekt erstellen Um ein neues Arduino-Projekt in Snap4Arduino zu erstellen, wird das Programm geöffnet. Snap erzeugt automatisch ein neues Projekt. Soll ein bereits

Mehr

analoge Ein- und Ausgänge

analoge Ein- und Ausgänge 2016/07/17 13:39 1/5 analoge Ein- und Ausgänge analoge Ein- und Ausgänge Neben den digitalen Leitungen bietet der Arduino mehrere analoge Ein- und Ausgänge. analoge Ausgänge Die Ausgänge sind mit PWM bezeichnet.

Mehr

Microcomputer be-greifbare Informatik

Microcomputer be-greifbare Informatik Microcomputer be-greifbare Informatik Abstraktionsstufen - Level of Abstraction Scratch bietet bereits einige Blöcke an, die theoretisch aus anderen Blöcken bestehen könnten. Diese Blöcke erleichtern den

Mehr

qfix ASCII-Protokoll

qfix ASCII-Protokoll www.qfix.de qfix ASCII-Protokoll Referenz qfix Dokument Nr. D100502R1 Inhaltsverzeichnis 1 Einleitung 3 1.1 Referenz................................... 3 2 qfix ASCII Protokoll 4 2.1 Verbindung und Zeichensatz.........................

Mehr

Funktionen in JavaScript

Funktionen in JavaScript Funktionen in JavaScript Eine Funktion enthält gebündelten Code, der sich in dieser Form wiederverwenden lässt. Mithilfe von Funktionen kann man denselben Code von mehreren Stellen des Programms aus aufrufen.

Mehr

Adafruit Ultimate GPS

Adafruit Ultimate GPS Learning with ak Adafruit Ultimate GPS Erstellt von Akshy Mehta 1 Inhalt Allgemeine Informationen zum Sensor... 3 Anschluss des Sensors an das Arduino Board... 4 Den Sensor zum Arbeiten bekommen... 6 Das

Mehr

Bachelorprüfung FAB + MBB (Schwerpunkt Mechatronik) / Diplomprüfung MBD Seite 1 von 8. Wintersemester 2015/16 Elektronik

Bachelorprüfung FAB + MBB (Schwerpunkt Mechatronik) / Diplomprüfung MBD Seite 1 von 8. Wintersemester 2015/16 Elektronik Bachelorprüfung FAB + MBB (Schwerpunkt Mechatronik) / Diplomprüfung MBD Seite 1 von 8 Hochschule München Fakultät 03 Zugelassene Hilfsmittel: alle eigenen, Taschenrechner Matr.-Nr.: Hörsaal: Wintersemester

Mehr

01 Einführung in PHP. Einführung in PHP 1/13 PHP in Aktion

01 Einführung in PHP. Einführung in PHP 1/13 PHP in Aktion 01 Einführung in PHP Einführung in PHP 1/13 PHP in Aktion PHP ist eine Programmiersprache, die ganz verschiedene Dinge tun kann: von einem Browser gesendete Formularinhalte auswerten, angepasste Webinhalte

Mehr

Inhaltsverzeichnis. Kapitel i: Schnelleinstieg 13. Kapitel 2: Was sind Programme? 17. Kapitel 3: Wie erstellt man eigene Programme?

Inhaltsverzeichnis. Kapitel i: Schnelleinstieg 13. Kapitel 2: Was sind Programme? 17. Kapitel 3: Wie erstellt man eigene Programme? Liebe Leserin, lieber Leser 10 Kapitel i: Schnelleinstieg 13 Kapitel 2: Was sind Programme? 17 Was ist ein Programm? 18 Sprechen Sie Computer? 18 Von der Idee zum Programm 19 Von Windows, Fenstern und

Mehr

Selbstschließende Hand (SsH)

Selbstschließende Hand (SsH) Selbstschließende Hand (SsH) Niklas Keischgens Aaron Philipzen Henri Kühn Jugend forscht 2017 Kurzfassung: Wir kamen auf die Idee eine selbst schließende Roboterhand zu planen und zu bauen. Der Gedanke

Mehr

Was passiert eigentlich im Computer wenn ich ein Programm starte

Was passiert eigentlich im Computer wenn ich ein Programm starte . Das Programm- Icon Auf dem Desktop deines Computers siehst du Symbolbildchen (Icons), z.b. das Icon des Programms Rechner : Klicke mit der rechten Maustaste auf das Icon: Du siehst dann folgendes Bild:

Mehr

Selbstlerneinheit Elektrizitätslehre

Selbstlerneinheit Elektrizitätslehre Selbstlerneinheit Elektrizitätslehre. Aufgaben zur Wiederholung Aufgabe 1 Skizziere den Schaltplan eines Stromkreises mit (a) einer Batterie als Spannungsquelle und einer Lampe (L) als Verbraucher. (b)

Mehr

Ein Mikrocontroller ist ein Mikrochip, der alle benötigten Komponenten (sozusagen das Zubehör) bereits in sich trägt. Er sieht genauso aus wie 11

Ein Mikrocontroller ist ein Mikrochip, der alle benötigten Komponenten (sozusagen das Zubehör) bereits in sich trägt. Er sieht genauso aus wie 11 Einleitung Du wolltest schon immer programmieren oder mit den Bestandteilen eines Computers arbeiten? Du wirst zwar nach diesem Buch keinen Computer bauen können, aber die Einleitung erklärt einiges, was

Mehr

Schülerexperimente zur Elektronik

Schülerexperimente zur Elektronik Schülerexperimente zur Elektronik Walter Sova Diodenschaltungen 1) Welche Lämpchen leuchten jeweils bei den Schalterstellungen? 2) Für den Durchlassbereich eines bestimmten Diodentyps wurde die dargestellte

Mehr

Kapitel. Platzhalter. Was sind Platzhalter?

Kapitel. Platzhalter. Was sind Platzhalter? Kapitel 3 Was sind? sind ganz wichtige Elemente bei der Programmierung. Alle Programme, die du schon kennst (wie beispielsweise die Textverarbeitung WORD oder ein Programm zum Verschicken von E-Mails),

Mehr

Hinweise Böcker psamp DMS-UART

Hinweise Böcker psamp DMS-UART Hinweise Böcker psamp DMS-UART Wichtig! Den Lastzellenverstärker nicht ohne angeschlossene Lastzelle in Betrieb nehmen! Spannungsversorgung (Schraubklemme oben): 6,5 bis 10 VDC (maximale Obergrenze 11

Mehr

Gamecontroller Der Bewegungssensor - Links-Rechts-Steuerung

Gamecontroller Der Bewegungssensor - Links-Rechts-Steuerung Gamecontroller Materialien: 8 1x ADXL 335 Sensor 8 1x Arduino 8 1x USB-Kabel 8 Breadboard mit der Tasterschaltung aus der letzten Runde 8 versch. Verbindungskabel Abb. 2 : Der ADXL335-Bewegungssensor Eine

Mehr

Microcontroller Kurs. 08.07.11 Microcontroller Kurs/Johannes Fuchs 1

Microcontroller Kurs. 08.07.11 Microcontroller Kurs/Johannes Fuchs 1 Microcontroller Kurs 08.07.11 Microcontroller Kurs/Johannes Fuchs 1 Was ist ein Microcontroller Wikipedia: A microcontroller (sometimes abbreviated µc, uc or MCU) is a small computer on a single integrated

Mehr

Kapitel. Eins zurück, zwei vor: die ersten Schritte

Kapitel. Eins zurück, zwei vor: die ersten Schritte Kapitel 1 Eins zurück, zwei vor: die ersten Schritte ASIMO ist ein dem Menschen nachempfundener Roboter, der sich auf zwei Beinen fortbewegen kann. Er vereint alle Inhalte der Elektrotechnik und Elektronik

Mehr

Arduino für FunkAmateure

Arduino für FunkAmateure Arduino für FunkAmateure Arduino Einführung Teil 10 7-Segment LED mit Schieberegister Wie gehe ich am besten vor? 1. Was will ich machen? 2. Bauteile 3. Aufbau 7-Segment Anzeige I und II 4. Aufbau Schieberegister

Mehr

Elektrische Messverfahren

Elektrische Messverfahren Vorbereitung Elektrische Messverfahren Carsten Röttele 20. Dezember 2011 Inhaltsverzeichnis 1 Messungen bei Gleichstrom 2 1.1 Innenwiderstand des µa-multizets...................... 2 1.2 Innenwiderstand

Mehr

ELEXBO A-Car-Engineering

ELEXBO A-Car-Engineering 1 Aufgabe: -Bauen Sie alle Schemas nacheinander auf und beschreiben Ihre Feststellungen. -Beschreiben Sie auch die Unterschiede zum vorherigen Schema. Bauen Sie diese elektrische Schaltung auf und beschreiben

Mehr

Netduino Mikroprozessor für.net Entwickler

Netduino Mikroprozessor für.net Entwickler Netduino Mikroprozessor für.net Entwickler Patrick Herting Softwareentwickler BlueTem Software GmbH Blog E-Mail www.wdev.de pher@live.de Ablaufplan - Theorieteil Was ist der Netduino? Welche Modelle gibt

Mehr

ANT-5 Software Upgrade - Installationshinweise

ANT-5 Software Upgrade - Installationshinweise ANT-5 Software Upgrade - Installationshinweise Der SDH-Zugangstester ANT-5 von Acterna wird ständig verbessert und weiterentwickelt. Daher stehen regelmäßig neue Funktionen und Optionen zur Verfügung.

Mehr

Deinen EV3-Kasten vorbereiten

Deinen EV3-Kasten vorbereiten 1 Deinen EV3-Kasten vorbereiten Alle Roboter dieses Buchs können mit nur einem Lego-Mindstorms-EV3- Kasten gebaut werden (Lego-Katalognummer 31313). Wenn du diesen Kasten, gezeigt in Abbildung 1-1, besitzt,

Mehr

Making the Internet of Things

Making the Internet of Things DARIUSH FOROUHER ITI Uni Lübeck DANIEL LOOS 3. Sem. MLS Making the Internet of Things EIN ÜBERBLICK ÜBER PHYSICAL COMPUTING PLATTFORMS Das Internet der Dinge Inhalt Übersicht Arduino Raspberry PI Andere

Mehr

LED CUBE 4x4x4. von Josua Benz und Patrick Koss. im Fach Computer Technik. betreut von Herr Mezger

LED CUBE 4x4x4. von Josua Benz und Patrick Koss. im Fach Computer Technik. betreut von Herr Mezger LED CUBE 4x4x4 von Josua Benz und Patrick Koss im Fach Computer Technik betreut von Herr Mezger LED Cube Aufgrund zahlreicher faszinierender Videos von LED Cubes haben wir uns dazu entschlossen, selbst

Mehr

ARDUINO. HANDBUCH Platinen, Shields, Elektronik. I SnÄXV7. FÄcrag^ WII^

ARDUINO. HANDBUCH Platinen, Shields, Elektronik. I SnÄXV7. FÄcrag^ WII^ WII^ I SnÄXV7 FÄcrag^ PHILIP CAROLI CHRISTIAN CAROLI ARDUINO HANDBUCH Platinen, Shields, Elektronik und Programmieren: Roboter, SMS-Alarmanlage, Wetter station, automatische Gieß anlage und mehr als Treibstoff

Mehr

Arduino µcontroller. Virtuelle COMSchnittstelle

Arduino µcontroller. Virtuelle COMSchnittstelle Aufgaben: Arduino µcontroller 1. Die gegebene Software auf einen ARDUINO MEGA-Board aufspielen weil die PORTS A (8xSchalter) und C (8xLEDs) benutzt werden. Steht nur ein UNO-Board zur Verfügung, dann den

Mehr

ELEXBO. ELektro - EXperimentier - BOx

ELEXBO. ELektro - EXperimentier - BOx ELEXBO ELektro - EXperimentier - BOx 1 Inhaltsverzeichnis 2 Einleitung.3 Grundlagen..3 Der elektrische Strom 4 Die elektrische Spannung..6 Der Widerstand...9 Widerstand messen..10 Zusammenfassung der elektrischen

Mehr

Abbildung 4-9-1: Die Sound-Machine-Tastatur und der Arduino

Abbildung 4-9-1: Die Sound-Machine-Tastatur und der Arduino Projekt 4-9: Sound-Machine 4 9 Was hältst du davon, wenn wir Scratch in diesem Kapitel dazu bewegen, etwas Musik zu spielen? Natürlich nicht von alleine, sondern über eine kleine selbstgebaute Tastatur.

Mehr

Schleifenanweisungen

Schleifenanweisungen Schleifenanweisungen Bisher: sequentielle Abarbeitung von Befehlen (von oben nach unten) Nun: Befehle mehrfach ausführen (= Programmschleife): for-anweisung - wenn feststeht, wie oft z.b.: eine Berechnung

Mehr