Mikrocontroller/ Arduino Board und Software

Aus Wikibooks
Zur Navigation springen Zur Suche springen

Das Arduino-Board[Bearbeiten]

Wir verwenden das Arduino-UNO-Board mit einem ATmega328-Mikrocontroller und die Arduino-Software, die eine komplette Entwicklungsumgebung (IDE) mit unzähligen Beispielen und Anregungen bietet.

Sowohl die Hardware als auch die Software werden als „frei“ bezeichnet, d.h. Programme und Designs können frei verwendet, verändert und weitergegeben werden (wenn man eine Verbesserung macht oder Fehler entdeckt, freuen sich die Entwickler natürlich über eine Nachricht). Jeder kann die Software zu Hause installieren und frei verwenden. Wichtig sind für uns insbesondere einige Daten aus dem Datenblatt sowie die Aus- und Eingänge (Schnittstellen) des Arduino-Boards:

Microcontroller ATmega328
Operating Voltage 5V
Input Voltage (recommended) 7-12V
Digital I/O Pins 14 (of which 6 provide PWM output)
Input Voltage (limits) 6-20V
Analog Input Pins 6
DC Current per I/O Pin 40 mA
DC Current for 3.3V Pin 50 mA
Clock Speed 16 MHz
ArduinoBoard.jpg

Wir haben sechs analoge Eingänge sowie 14 digitale Ein-/Ausgänge zur Verfügung. Ob ein digitaler Pin als Eingang oder Ausgang Verwendung findet, wird im Programm definiert. Sechs der digitalen Ausgänge bieten die Möglichkeit der "‘Pulse Width Modulation"’ (PWM). Durch schnelles Ein– und Ausschalten des Ausgangs kann man z.B. die Leuchtstärke einer LED kontinuierlich, wie sonst nur mit analogen Ausgängen möglich, regeln.

Ansteuerung einer LED[Bearbeiten]

Wir wollen mit dem Arduino-Board eine LED ansteuern. Was ist zu beachten?

  • Die LED darf nicht zerstört werden, soll aber hell genug leuchten.
  • Der Mikrocontroller darf nicht zerstört werden. Wir müssen sicherstellen, dass wir den maximalen Ausgangsstrom von 40 mA nicht überschreiten.
LED Curcuit.svg

Betrachten wir einen einfachen Schaltkreis bestehend aus Spannungsversorgung, LED und Widerstand. Elektronische Bauteile werden in Datenblättern genau beschrieben. Dem Datenblatt eines Bauelements kann man alle wichtigen Informationen wie Betriebsspannung, maximaler Strom, Abmessungen und vieles mehr entnehmen.

Die an unserer LED anliegende Spannung darf nach Datenblatt 2.5 V nicht überschreiten. Der Arduino liefert aber 5 V Ausgangsspannung. Wir müssen also einen Vorwiderstand verwenden. Ebenfalls aus dem Datenblatt der LED entnehmen wir den Strom, mit dem unsere LED maximal betrieben werden sollte: .

Nun können wir vereinfacht annehmen, die LED selbst habe gar keinen Widerstand. Der Vorwiderstand soll für diesen Fall den maximal fließenden Strom auf begrenzen. Die Berechnung des Vorwiderstands ist dann sehr einfach und wir sind in jedem Fall auf der sicheren Seite. Mit dem Ohmschen Gesetz erhalten wir:

Um den Widerstand exakt zu berechnen, müssen wir den Spannungsabfall an der LED (nach Datenblatt maximal 2.5 V) mit berücksichtigen. In diesem Fall erhalten wir für den Vorwiderstand (es gilt ):

Unser Vorwiderstand sollte zwischen den berechneten Werten liegen. Wir wählen und sind damit auf der sicheren Seite. Unsere LED leuchtet auch mit diesem Widerstand ausreichend hell.

Abschließend berechnen wir, welchen Widerstand Bauteile mindestens besitzen müssen, um das Arduino-Board nicht zu überlasten. Wir haben: . Es folgt für den gerade noch erlaubten, kleinsten Widerstand:

Sicherheitshalber wählen wir die Grenze bei .

Merke:

  • Bauteile, die einen Widerstand kleiner als ca. haben, nie direkt an das Arduino-Board anschließen!
  • Diese Bauteile benötigen einen Vorwiderstand, um den maximal fließenden Strom zu begrenzen.

Ansteuerung leistungsstarker Bauteile[Bearbeiten]

Transistor grounded-emitter configuration.svg

Wie erwähnt dürfen die Ausgänge des Arduino–Boards mit je maximal 40 mA belastet werden. Leistungsstarke Bauteile erfordern größere Ströme und evtl. auch eine von der Ausgangsspannung des Arduino-UNO Boards (5 V) abweichende Versorgungsspannung.

Um sie anzusteuern, verwenden wir einen Transistor, den man sich als elektronischen Schalter oder auch Verstärker vorstellen kann. In der Schaltung rechts wird eine Glühlampe L mittels eines Transistors angesteuert. Die Lampe L hat ihre eigene Versorgungsspannung , die unabhängig von der Ausgangsspannung des Arduinos ist.

Wenn man nun eine hinreichend große Spannung zwischen Basis B und Emitter E des Transistors anlegt, so und "‘schaltet"’ dieser "‘durch"’: Die Lampe L leuchtet. Dabei kann der Strom, der durch die Lampe L über Kollektor C und Emitter E zur Masse fließt wesentlich größer sein, als der Basisstrom, der unseren Mikrocontroller belastet. Wird die Basis B hingegen auf LOW geschaltet (), so sperrt der Transistor, die Lampe L erlischt.

Anstelle der Lampe L können ebenso andere Bauelemente wie Leuchtdioden, Motoren o.ä. angeschlossen werden. Der maximal zulässige Strom wird nun nicht mehr durch den Mikrocontroller, sondern durch den Transistor bzw. die Spannungs-/Stromversorgung limitiert.

Aufbau der Schaltung[Bearbeiten]

Zum Aufbau von Schaltungen haben sich Konventionen entwickelt, die Übersicht und Verständlichkeit erleichtern:

Interne Kontaktierung des Breadboard-Rasters (erstellt mit Fritzing).
  • Für positive Versorgungsspannung verwendet man möglichst rote Kabel.
  • Für Masse (GND) sollte man Schwarz/dunkle Farben verwenden.
  • Für Signalkabel bietet sich demnach zur Unterscheidung ebenfalls eine individuelle Farbe an. Wichtig ist Übersichtlichkeit und ein klarer, verständlicher Aufbau.

Im Breadboard sind die Kontakte wie in der Abbildung gezeigt intern verbunden.

Damit bietet sich die in Abbildung {StartSetup} gezeigte Grundstruktur für den Aufbau von Schaltungen an.

image [Grundaufbau, erstellt mit { fritzing}] {Versorgungsspannung (rot) und Masse (schwarz) auf dem Breadboard.}{StartSetup}

Versorgungsspannung und Masse (GND) sind überall und einheitlich erreichbar.

Software[Bearbeiten]

In diesem Abschnitt soll die verwendete Software kurz vorgestellt werden. Es handelt sich dabei um sog. freie Software, die für jeden Zweck ausgeführt, studiert, modifiziert und weiterverbreitet werden darf.

Arduino[Bearbeiten]

Programmieren des Arduino Boards mit der gleichnamigen Software.

Zum Programmieren des Arduino Boards bietet sich die gleichnamige Software „Arduino“ an. Sie enthält eine komplette Entwicklungsumgebung (IDE: Integrated Development Environment) und zahlreiche Beispiele.

Nachdem man das Board per USB (USB: Universal Serial Bus) mit dem Rechner verbunden hat, muss man unter Tools Board das verwendete Board und unter Tools Serial Port die zugehörige Schnittstelle wählen. Beispielprogramme finden sich unter File Examples.

Fritzing[Bearbeiten]

Prototyping mit Fritzing

Zum Anfertigen von Schaltplan und Aufbauskizze bietet sich das ebenfalls freie Programm „Fritzing“ an.

Auch für Fritzing finden sich viele Beispiele für Schaltungen unter File Open Example.