Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 39 Next »

Ein Mikrocontroller (auch MCU oder µC) ist ein elektronisches Halbleiterelement, welches auf einem einzigen Chip mehrere Elemente, wie eine CPU, eine Uhr, Timer, I/O Ports und Speicher zur Verfügung stellt. Mikrocontroller werden heute in vielfältiger Art und Weise eingesetzt. Elektronische Produkte besitzen fast immer einen Mikrocontroller, welcher für die “Logik” der Produkte verantwortlich ist. Dabei verarbeitet er Eingaben von Sensoren und reagiert in dem er die Stellung oder Anzeige von Aktuatoren verändert.

Eine Besonderheit von Mikrocontrollern ist es, dass sch die Logik durch Programmierung verändern lässt. In diesem Workshop werden wir Arduino benutzen – eine Mikrocontroller Plattform welche am Interaction Design Institute Ivrea speziell für Interaction Design Studenten entwickelt wurde. Arduino besteht aus einem Mikrocontroller Board, sowie einer eigenen Integrierten Entwicklungsumgebung (IDE) welche es möglich macht, das Board via USB zu programmieren.

Hier gibt es eine Dokumentation zur Entstehungsgeschichte und Bedeutung des Arduino
 

Übersicht Arduino UNO

Der Standard unter den sehr verschiedenen Arduino Boards ist das Arduino UNO. Dieses Board ist sehr robust und für die meisten Anwendungen völlig ausreichend.

Pins des Arduino Boards

USB
Die USB-Schnittstelle ist eine serielle Schnittstelle, welche zur Programmierung des Arduino verwendet wird. Ausserdem wird über diese Schnittstelle das Arduino mit Strom versorgt. Weitere Informationen unter [USB Schnittstelle]

Externe Stromversorgung
Wenn das Arduino ohne Computer (also USB Schnittstelle) laufen soll, dann kann dieser Anschluss verwendet werden um das Arduino mit Strom zu versorgen 

Digitaler Input / Output
Diese Pins können verwendet werden um digitale Events zu erkennen, bzw. schalten (siehe Digitaler InputDigitaler Output). Eine spezielle Form ist die Pulse Width Modulation (PWM).

Analoger Input
Diese Pins können benutzt werden um Sensoren auszulesen (siehe Analoger Input). Zwei dieser Pins (A4 und A5) übernehmen zusätzlich eine wichtige Rolle in der Kommunikation über die i2c Schnittstelle.

Power
Hier sind alle Pins versammelt, welche für die grundlegende Spannungsversorgung benötigt werden. Es gibt GND, 5V, 3.3V und Vin. 

PWM
Diese Pins werden für die Pulse Width Modulation verwendet

SDA / SCL
Diese Pins finden für die sogenannte i2c Schnittstelle Verwendung über welche sich Sensoren und sonstige Peripherie ansteuern lässst.  

RX / TX
Diese beiden Pins werden für die Serielle Kommunikation unter anderem auch für die USB Verbindung zum Computer verwendet.  

INT0 / INT1
Diese beiden Pins sind sogenannte Interrupts. Damit lassen sich über eine Interrupt Service Routine sehr schnell stattfindende Events erkennen. 

SCK / MISO / MOSI / SS
Diese vier Pins werden für die Kommunikation über die SPI Schnittstelle benötigt. Ein häufiges Anwendungsbeispiel ist das Steuern eines Shift Registers beim Bit-Shifting

Spezielle Funktionen

setup()
Wird nur einmal zum Beginn des Programms aufgerufen. Hier werden weitere Funktionen aufgerufen (z.B. pinMode()).

loop()
Der Loop beinhaltet das eigentliche Programm und wird permanent ausgeführt. Die Geschwindigkeit, mit der das Programm aufgerufen wird hängt dabei von der Taktfrequenz des Prozessors und den Funktionen ab, die aufgerufen werden.

pinMode(PIN)
Definiert ob ein PIN als Eingang oder Ausgang benutz wird

digitalRead(PIN)
Liesst den Wert an einem digitalen PIN (vorher als Eingang definiert)

digitalWrite(PIN, Wert)
Setzt einen Wert für einen PIN (vorher als Ausgang definiert)

analogRead(PIN)
Liesst den Wert eines analogen PIN

analogWrite(PIN, Wert)
Setzt den PWM Wert eines digitalen PIN (PWM = Pulse Width Modulation)

delay(Wert)
Pausiert das aktuelle Programm für eine definierte Zeit (Zeit wird in Millisekunden angegeben)

delay(Wert)
Hält das Programm für eine definierbare Zeit an. Diese Funktion ist nicht so effektiv, wie die Nutzung von millis().

millis()
Hier wird die Aktuelle Systemzeit (in Millisekunden) zurückgegeben.

Weitere Informationen

Getting Started with Arduino – Massimo Banzi (2008)
Arduino – Die Arduino Website. Bitte anschauen…
Mikrocontroller – Was ist ein Mikrokontroller?