
Den Mikrocontroller entdecken
Lektion 1: Die Hardware kennenlernen
Neben dem Breadboard, LEDs, und Jumperkabeln nutzen wir natürlich vor allem eins: Den Mikrocontroller!
Hier findest du alles, was du in den nächsten Kursen über deinen Arduino (EntwicklerBoard und Mikrocontroller) wissen musst.
Der Mikrocontroller

Durch den Aufbau des Mikrocontrollers und viele bereits vorimplementierte Funktionen lassen sch nicht nur unglaublich viele Bauelemente an den Arduino anschließen, sie lassen sich auch spielend leicht programmieren!
Beginnen wir damit und den Mikrocontroller näher anzuschauen. Bewege die Maus über die leuchtenden Punkte, um mehr zu erfahren.
Die kurze Antwort: Vermutlich nicht.
Um das besser zu verstehen, führen wir einen neuen Begriff ein: “Open-Source”. Open Source heißt soviel wie öffentlich. Jeder kann sich also die Dateien ansehen, ändern und benutzen. Streng genommen bezieht sich das jedoch auf die Software und auch hier gibt es wiederum verschiedene Lizenzbedingungen zu beachten, aber das lassen wir an dieser Stelle mal beiseite. Open-Source-Software (beispielsweise die Arduino-IDE) gibt es oft – die Hardware (Bau- und Schaltpläne, verwendete Komponenten und co) werden meistens jedoch nicht veröffentlcht.
Die Arduino-Boards stehen ebenfalls unter der sogenannten Open-Source-Lizenz. Jeder kann sich also ansehen, wie das Board aufgebaut ist, welche Teile verbaut sind und wie sie verkabelt sind. So kann sich jeder sein eigenes Arduino-Board herstellen. Es gibt „nur“ eine Sache zu beachten: Ihr dürft nicht Arduino auf das Board schreiben. Der Name ist nämlich als Marke geschützt. Deshalb ist auf vielen Boards/Sets weder der Name noch das offizielle Logo von Arduino zu finden.
Tipp zur Anzeige der nachfolgenden Inhalte auf Mobilgeräten: Dreh dein Handy und verwende die „Queransicht“
Der Arduino als Entwickler-Board.

Der "eigentliche" Mikrocontroller
Die Pins (Pinheader), die Spannungswandler, der USB-Port und alles weitere dient dazu, dass wir mit dem Board experimentieren und viele Komponenten (LEDs, Piezo, Taster, ...) anschließen können.
M3-Bohrlöcher
Mit Abstandshaltern kann der Arduino (beispielsweise auf einer Platte) fest montiert werden. In den Kursen zu "Spiele mit dem Arduino" nutzen wir die Bohrungen, um uns das Spielfeld aufzubauen.
Pinheader (2,54mm), zum anschließen der Bauelemente.
Mehr über die Bauelemente und Jumper-Kabel erfärst du im Starterkurs, wenn wir uns die Hardware genauer ansehen.
Über den USB-Anschluss (USB-B) kannst du deinen Code auf den Mikrocontroller aufspielen.
Das USB-Interface
Wandelt die über die USB-Schnittstelle eingespeisten Signale in ein für den Arduino passendes Format um.
Wichtig: Es gibt unterschiedliche USB-Chipsätze! Die meist verbauten sind der ATmega16U2 und der CH340. Sollte dein Arduino nict richtig funktionieren, fehlt dir eventuell der passende Treiber (für den CH340-Chip): zum Download
Der Arduino ist ein sogenanntes Entwickler-Board.
Nebem den „eigentlichen“ Mikrocontroller gibt es auf dem Arduino noch viele weitere Elemente. Diese dienen alle dazu, dass du viele Bauteile (LEDs, Taster, Sensoren, …) anschließen kannst.
I/O-Pins
An den digitalen Pins liegt immer eine Spannung von 0V oder 5V an (digital bedeutet, dass es nur diese Werte „0 oder 5“ gibt).
Im Starterkurs nutzen wir die digitalen Pins beispielsweise zur Steuerung von Leuchtdioden, indem wir den Ausgang (Output) ein oder ausschalten (um die LED entsprechend an- oder auszumachen). Später schließen wir einen Taster (ebenfalls an die digitalen Pins) an und können einlesen (Input), ob der Taster gerade gedrückt ist oder eben nicht.
Durch die Funktion der Pins (Input/Output) kommt die Bezeichnung I/O-Pin.

onBoard-LED
Beschriftet mit "L"
Die meisten Arduinos haben zusätzlich eine On-Board-LED, die mit einem digitalen Pin (meistens Pin 13, sowie einem On-Board-Widerstand) in Reihe geschaltet ist. Die Stromstärke ist an Pin 13 auf 20mA begrenzt (und praktischer Weise ist direkt daeben ein GND-Pin), so dass hier eine externe LED direkt (ohne Vorwiderstand) angeschlossen werden kann.
Über diesen Pin können also gleichzeitig eine externe Leuchtdiode sowie die onBoard-LED programmiert werden.
Manche digitale Pins besitzen ein zusätzliches Symbol ~ (beispielsweise Pin 11). Hierbei handelt es sich um PWM-Pins.
Die Pulsweitenmodulation (kurz PWM) kann beispielsweise genutzt werden, um eine LED zu dimmen oder Servo-Motoren anzusteuern. Mehr zur Pulsweitenmodulation, dimmbaren Leuchtdioden und RGB-LEDs in “Optik mit dem Arduino.
Wichtig: Die digitalen Pins 0 und 1 sollten nicht als I/O-Pins (Eingabe/Ausgabe-Pins, beispielsweise für LEDs oder Taster) verwendet werden.
Die Pins dienen zum senden und empfangen von Daten
RX – Receive (Empfangen)
TX – Transmit (Senden)
Über die Pins (UART-Schnittstelle) können Daten von eurem PC und dem Arduino übertragen werden, ebenso können auf diese Weise auch 2 Boards miteinander verbunden werden. So können (laufende) Programme überwacht werden.
Neben den Pins 0 und 1 (TX/RX) gibt es auch 2 LEDs mit der selben Bezeichnung. Die beiden LEDs blinken, wenn Daten über den (seriellen) USB-Port auf den Mikrocontroller gespielt werden. Werden hingegen die Pins (TX/RX) genutzt, blinken sie nicht.
An die analogen Pins werden Sensoren angeschlossen.
Sie können alle Werte zwischen 0V und 5V einlesen (analog), die anschließend von dem AD-Wandler (Analog-Digital-Wandler, eng,: ADC für Analog-Digital-Converter) umgewandelt werden.
Vorerst werden die analogen Pins nicht benötigt, mehr zu Sensoren, AD-Wandlern und dem Unterschieden zwischen analog und digital findest du in „Sensorik mit dem Arduino“.

Mit diesem Pin kann der Referenzwert (für die analoge Eingänge am Mikrocontroller) eingestellt werden um den Messbereich einzugrenzen und so eine höhere Genauigkeit zu erzielen.
Wichtig: Immer nur Spannungen zwischen 0V und 5V für die externe Referenzspannung verwenden!
Mehr über den AD-Wandler und die verwendung von Sensoren findest du im Kurs "Sensorik mit dem Arduino".
Einige Board besitzen separate SDA- und SDL-Anschlüsse. Alternativ hierzu können auch die beiden analogen Pins A4 (SDA, serial data) und A5 (SDC, serial clock) verwendet werden.
I2C-Pins
Bei einem I²C-Bus werden Daten vom SCL (Serial Clock) und SDA (Serial Data) vom Master (dem Arduino) zu den angeschlossenen Slaves (beispielsweise ein LCD) übertragen.
Mehr hierzu im Kurs "Liquid Crystal Display" (unter dem Punkt I2C-Modul).
Alternativ können die analogen Pins auch als digitale Pins (mit fester Spannung) genutzt werden, um beispielsweise LEDs anzuschließen.
Anders herrum können an die digitalen Pins auch Sensoren angeschlossen werden. Der Nachteil hier ist jedoch, dass nur Spannungen größer 3V (HIGH) und kleiner 3V (LOW) unterschieden werden können.
Im Aufbaukurs lernen wir beide Fälle kennen:
* Wir bestimmen die stabilen Spannungspegel, um einen (digitalen) Taster einzulesen.
* In der Vertiefungsübung schließen wir eine 4-stellige 7-Segmentanzeige (mit 12 I/O-Pins) und 2 Taster an und müssen wegen zu wenigen I/O-Pins am Arduino Uno die analogen Pins verwenden.
Strom und Spannung

Diese GND-Pins werden als Masse (Referenzspannung 0V) verwendet. Auf dem Board gibt es mehrere GND-Pins, es ist egal, welcher verwendet wird!
Durch jedes Bauteil, dass an den Mikrocontroller angeschlossen wird, fließt Strom. Schließt ihr beispielsweise eine LED an Pin 13 an, fließt der Strom aus Pin 13 -> durch die LED -> in GND.
Diese Pins (5V bzw. 3,3V) dienen zum Abgreifen einer definierten Spannung (5V bzw. 3,3V) und können mehr Strom liefern als die I/O-Pins (analoge und digitale Pins).
An dem 5V Pin wird später beispielsweise das LCD-Display angeschlossen. Alternativ können auch über diese Pins (da sie höhere Ströme ausgeben können) mehr als die im Folgenden beschriebenen 10 LEDs angeschlossen werden.
Auf allen Boards befindet sich ein Reset-Button. Wird dieser betätigt, startet der Mikrocontroller neu.
Alternativ hierzu, kann auch der RES-Pin auf Masse (GND) gezogen werden.
In späteren Kursen werden hierzu Taster (manuelle betätigung) oder Transistoren (als “automatische Schalter”) verwendet, um das Board neu zu starten.
Reset-Button
Wie der Name bereits vermuten lässt, kann der Mikrocontroller über diesen Button neu gestartet werden, so dass der (dein) Code erneut (von Beginn an) ausgeführt wird.
An diesen Pins können (definierte) Spannungen angelegt oder abgegriffen werden. Sie dienen also zur Stromversorgung des Boards und der angeschlossenen Bauelemente.

USB-Port
Wird der Mikrocontroller mit dem USB-B-Kabel an den PC angechlossen, dient die USB-Buchse zur Stromversorgung und Datenübertragung.
2,1mm DC-Anschluss
Alternativ könnt ihr das Board auch über die (runde) DC-Buchse mit Strom versorgen.
Die maximale Stromstärke, die angeschlosser werden darf liegt bei 1A (Eingangsspannung 7-12V).
Wird beispielsweise mit eine Batterie-Clip eine 9V-Batterie angeschlossen, läuft das zuletzt auf den Mikrocontroller aufgespielte Programm.
Der Arduino kann auch über den VIN -Pin mit Strom versorgt werden.
Denkt daran, dass ihr hier nicht nur den VIN-Pin, sondern auch GND mit eurer Spannungsquelle verbinden müsst.
Der Spannungsstabilisator erzeugt aus der Versorgungsspannung eine stabile Spannung von 5V (die Betriebsspannung).
Die Kondensatoren glätten die Versorgungsspannung.
Wir müssen hier zwischen 2 Begriffen unterscheiden
Betriebsspannung: 5V, die beispielsweise an allen digitalen Pins anliegen)
Versorgungsspannung: Die Spannung, die der Mikrocontroller benötigt, um zu funktionieren).
Die empfohlene Versorgungsspannung liegt bei 7-12V. Maximal können 20V angelegt werden, dies führt jedoch zur Erhitzung der Spannungsregler auf dem Mikrocontroller (bei kurzen Zeiten nicht schlimm).
Der maximale Strom, den ein I/O-Pin liefern kann, liegt bei 40mA. Der Gesamtstrom aller I/O-Pins darf 200mA nicht überschreiten. Deshalb dürft ihr momentan nie mehr als 10 LEDs auf einmal anschließen! Die “Power-Pins“ (z.B. der 5V-Pin), können viel höhere Strome ausgeben: Anschluss über USB (bis 500mA), Anschluss mit einem Netzteil (bis 1000mA).

Der richtige Treiber
Auch unter den einzelnen Boards (beispielsweise dem Arduino-UNO) gibt es wichtige Unterschiede! Insbesondere beim USB-Chipsatz gibt es mehrer Typen.
Der USB-Treiber für den ATmega328 installierst du automatisch mit, wenn du die Arduino-IDE installierst.
Viele Boards verwenden jedoch den CH340-Chip. Um auch diese Boards verwenden zu können, musst du dir einfach nur einen zusätzlichen USB-Treiber installieren.
Wenn du dir nicht sicher bist, welcher Chip auf deinem Board verbaut ist, installiere den Treiber einfach, er verursacht keine Probleme mit anderen Treibern/Programmen. Solltest du Tinkercad benutzen, musst du nichts (weder die Arduino-IDE noch den Treiber) nstallieren, hierzu später mehr.