Ein Mikrocontroller ist ein Mikroprozessor plus Zusätzen, wie Speicher, Ein- und Ausgänge, Timer, … , die alle auf einem Chip verbaut sind. Anwendungsgebiete für Mikrocontroller sind:
Der Mikroprozessor (CPU) ist das Gehirn des Arduinos. Er führt Berechnungen und logische Operationen durch. Unterschiede gibt es in der Datenbreite (4,8, 16 und 32 Bit) und in der Taktzahl (z.B. 1 MHz = 1 Million Befehle pro Sekunde). Beim Arduino handelt es sich um einen Atmel ATmega328 mit einen Systemtakt von 16 Megahertz und 8 Bit Datenbreite. Er kann also Daten der Länge 8 Bit (maximal mögliche Zahl ist 255) in einem einzigen Befehl verarbeitet werden. Zur Bearbeitung längerer Daten müssen mehrere Befehle hintereinander angewandt werden. Er kann allerdings 16 MHz (16 Millionen) Befehle pro Sekunde verarbeiten.
Er hat 32 Kilobyte Flash-Speicher (sozusagen die Festplatte für die Programme), 2 Kilobyte SRAM (den Arbeitsspeicher (flüchtiger Speicher)) und 1 KB EEPROM (nicht flüchtiger Speicher), hier können Daten langfristig gespeichert werden, damit sie beim nächsten Start des Programms wieder verfügbar sind.
6 Ausgänge (gekennzeichnet mit einem ~ ) können mit Hilfe der „PWM“ (pulse width modulation) dennoch „analog“ genutzt werden, um z.B. die Helligkeit von Leuchtdioden oder die Geschwindigkeit eines Motors zu regeln. An den Pins 0 (RX) und 1 (TX) können serielle Daten empfangen (RX) oder übertragen (TX) werden.
A0 bis A5. Hier können nicht nur „ein“ oder „aus“ Werte gemessen werden. An den analogen Eingängen A0 - A5 können Spannungen gemessen werden. Es wird die anliegende Spannung mit einer Referenzspannung verglichen. Im Normalfall ist dies die Versorgungsspannung, die theoretisch bei 5 V liegt. Die tatsächlich anliegende Spannung variiert je nach Versorgung und liegt bei einer Versorgung über den USB - Port bei ca. 4,5 V. Analoge Signale müssen mit einem Analog-Digital-Wandler in ein digitales Signal in bestimmten Abtastzeitpunkten umgewandelt werden. Da der Arduino einen 10 Bit - Analog-Digital-Wandler besitzt, wird die gemessene Spannung, die zwischen 0 und der Referenzspannung (theoretisch 5V) auf einen Wert zwischen 0 und 1023 (= $2^{10}-1$) umgesetzt. Die Messgenauigkeit liegt also bei 5 V/1023 = 0,00489 V.
Hier sind für uns nur die 5V und GND wichtig.<br> Am 5V Pin liegen die regulierten 5V vom Spannungsregler des Boards an. GND ist die Erdung.
Das Arduinoboard ermöglicht einen einfache Zugriff auf die Pins, sowie eine stabile Spannungsversorgung und einen leichten Programmierzugang.
Über USB - Buchse kann man neue Software auf das Board laden, den Arduino mit Strom versorgen und außerdem dient zur Kommunikation über die serielle Schnittstelle mit dem Computer. Hier können Messwerte bzw. Steuerbefehle ausgetauscht werden.
Die Stromversorgung des Boards erfolgt entweder über den USB-Port oder über eine 9V - Batterie (bzw. Netzteil), die einen 2,1 mm Hohlstecker mit Pluspol am Innenstift enthält. Die Stromversorgung kann auch mit Hilfe einer Powerbank erfolgen. Bei der Versorgung über USB wird allerdings nicht die volle Referenzspannung von 5 V erreicht.
Drückt man den Button, so wird das Programm neu gestartet.
PC | Mikrocontroller | |
Geschwindigkeit | GHz | kHz - MHz |
Hauptspeicher (RAM) | Mehrere GigaByte | Wenige kByte |
Platzbedarf | viel | wenig |
Stromverbrauch | Ca. 400 Watt | Ca. 0,05 Watt |
Kosten | Von 200€- 1000€ | Wenige Cent |
Anwendung | Vielfältige Anwendungen | Nur für spezielle Aufgabe |
Der ESP8266 arbeitet mit einer Frequenz von 80 MHz viel schneller als der Arduino, der nur eine Taktfrequenz von 16 MHz hat. Außerdem hat der ESP8266 einen 4 MB großen Flashspeicher und auch der Arbeitsspeicher ist mit 4 KB größer, als der vom Arduino (1KB). Auch im Stromverbrauch ist der ESP8266 sparsamer. Der größte Vorteil ist, dass der ESP8266 einen eingebauten 802.11b/g/n HT40 Wi-Fi-Transceiver hat. Er kann nicht nur Verbindung zu einen Netzwerk aufnehmen, er könnte auch ein eigenes Netzwerk aufbauen und mit anderen Geräten direkt kommunizieren.
Die Betriebsspannung beträgt 3V bis 3,6 V. Ein Spannungsregler hält die Spannung konstant auf 3,3 V. Die Stromversorgung erfolgt über einen MicroB-USB-Anschluss, oder wenn man ein konstante 5V – Quelle hat kann diese auch an den Vin – Pin angeschlossen werden. Das Board enthält den USB-zu-UART-Treiber CP2102, der das USB-Signal in ein serielles umwandelt. Die Schnittstellen des ESP8266 sind mit dem Arduino (je nach Variante) vergleichbar.
Der einzige, aber große Nachteil des ESP8266 liegt in den analogen Anschlüssen. Der ESP8266 hat nur einen Anschluss, der im Gegensatz zu den 6 analogen Eingängen des Arduino nicht linear verläuft.
Spezifikation | Uno | ESP8266 |
---|---|---|
RAM: | 4kB | 80kB |
FLASH-Speicher: | 32kB | 4MB |
Geschwindigkeit: | 16MHz | 80MHz |
GPIOs (verwendbar): | 14 | 11 |
I/O-Spannungslevel: | 5V | 3.3V |
ADC (Auflösung): | 6 (10-bit) | 1 (10-Bit) |
Serielle Schnittstelle: | 1 | 1 |
I2C Schnittstelle: | 1 | 1 |
SPI Schnittstelle: | 1 | Genutzt von Flash-Chip |
PWM, Auflösung: | 6, 8 bit | Alle GPIO Pins, 10 bit |
WiFi | Nein | Ja 2MBps |