In diesem Beitrag möchte ich einen Vergleich zwischen dem ESP32 und dem Arduino UNO R3 ziehen. Dabei stelle ich nicht nur die technischen Daten gegenüber (wo es hier ggf. schon im Vorfeld einen klaren Sieger geben wird).
Den ESP32 habe ich bereits im Beitrag Microcontroller ESP32 – LOLIN32 und den Arduino UNO R3 im Beitrag Arduino UNO – Übersicht vorgestellt. Und mit beiden Mikrocontrollern habe ich auch diverse Schaltungen aufgebaut.
vergleich der technischen Daten
Da der ESP32 über Features wie WiFi und Bluetooth verfügt (einige kommen sogar mit Displays, Kamera, PIR Sensor daher) und der Arduino nicht möchte ich hier nur auf die Eigenschaften eingehen, welche beide vereinen.
ESP32 | Arduino UNO R3 | |
---|---|---|
Taktfrequenz | 240 MHz | 16 MHz |
Speicher | ||
Flash Speicher | 4 MB | 32 KB (davon 0,5 KB für den Bootloader) |
SRAM | 520 KB | 2 KB |
EEPROM | 512 Byte | 1 KB |
GPIO / GPO | ||
analoge Pins | 12 (davon 2 Ausgänge) | 6 |
digitale Pins | 26 | 14 |
PWM Pins | 26 | 6 |
Anschlüsse | ||
USB-Anschluss | Micro-USB | USB Typ B |
Stromadapter | JST Buchse für LiPo Batterien | Jack Adaper 2.1 mm Center positiv |
Preis
Den ESP32 sowie Arduino UNO R3 findest du auf nachfolgenden Plattformen:
ESP32 | Arduino UNO R3 | |
---|---|---|
conrad.de | 9,89 € | 22,41 € |
elv.de | 9,74 € | 17,5 € |
robotshop.com | 21,27 € | 22,09 € |
ebay.de | 4 € bis 9 €* | 3 € bis 20 € |
amazon.de | 9 € bis 21 € | 9 € bis 22 € |
aliexpress.com | 2 € bis 11 € | 3 € bis 6 € |
banggood.com | 5 € bis 18 € | 5 € bis 15 € |
Hinweis von mir: Die mit einem Sternchen (*) markierten Links sind Affiliate-Links. Wenn du über diese Links einkaufst, erhalte ich eine kleine Provision, die dazu beiträgt, diesen Blog zu unterstützen. Der Preis für dich bleibt dabei unverändert. Vielen Dank für deine Unterstützung!
Die Preise sind natürlich ohne Versandkosten. Des Weiteren muss man bei einigen Shops daran denken, das ggf. mit langen Lieferzeiten rechnen muss, aber dafür bekommt man den Artikel deutlich günstiger.
Der Arduino UNO R3 wird zumeist als günstiger Klone verkauft, den originalen Arduino UNO findest du für knapp 20 € im Shop von Arduino.cc. Ich musste aber feststellen, dass die zumeist aus dem asiatischen Raum stammenden Klone genauso gut funktionieren wie das Original. Man muss nur ein paar kleine Abstriche in der Qualität machen, zbsp. sind auf den 5V meist nicht wirklich 5V drauf.
Abmaße
ESP32 | Arduino UNO R3 | |
---|---|---|
Breite | 20 mm | 53 mm |
Länge | 50 mm | 68 mm |
Höhe | 18 mm | 12 mm |
Gewicht | 7 g | 25 g |
In den Abmaßen ist klar der ESP32 der Sieger denn dieser ist sehr klein (im Verhältnis zum Arduino UNO R3) und passt somit auf ein 400 / 720 Pin Breadboard.
Ein Vorteil des größeren Arduino UNOs ist es, dass dieses mit Shields bestückt werden kann und somit die Funktionen durch einfaches drauf stecken erweitert werden kann. Es gibt zbsp. Multifunktionale Shields welche sehr viele Funktionen mitbringen, jedoch nur zum Experimentieren dienen, aber auch RGB Shields, Netzwerkshields (mit RJ45 Buchse), Displays, Motordriver und viele mehr.
Bei den Shields zum Draufstecken muss man aber darauf achten, dass die Kontakte nicht auf die USB Typ B Buchse ragen und somit ggf. einen Kurzschluss verursachen.
Programmieren
In diesem Abschnitt möchte ich auf die Programmierung der beiden Microcontroller eingehen. Zunächst kann man beide Microcontroller mit der Arduino IDE, Plattform I/O usw. programmieren. Ein großer Vorteil des ESP32 ist das dieser mit einer anderen Firmware bestückt werden kann und somit mit MicroPython programmiert werden kann.
Wenn man die Anwendung Arduino IDE verwendet, so kann man einmal ein Sketch / Programm schreiben und auf beiden 1:1 zum Laufen bringen.
Hier ein kleines Beispiel:
Wenn man zbsp. die BUILD_IN LED des Mikrocontrollers zum blinken bringen möchte so muss man beim Arduino UNO R3 den digitalen Pin D13 ansprechen.
#define led 13 void setup() { pinMode(led, OUTPUT); } void loop() { digitalWrite(led, HIGH); delay(500); digitalWrite(led, HIGH); }
Der Sketch verwendet 868 Bytes (2%) des Programmspeicherplatzes. Das Maximum sind 32256 Bytes. Globale Variablen verwenden 9 Bytes (0%) des dynamischen Speichers, 2039 Bytes für lokale Variablen verbleiben. Das Maximum sind 2048 Bytes.
Auf einigen ESP32 Chips ist eine BUILD_IN LED verbaut, welche ähnlich mit MicroPython programmiert werden kann.
from machine import Pin import time as time p0 = Pin(2, Pin.OUT) while(1): p0.on() print("AN") time.sleep(0.5) p0.off() print("AUS") time.sleep(0.5)
Einsatzgebiete der Microcontroller
Auf der Seite https://hackaday.io/projects?tag=ESP32 findest du eine Liste mit 437 Projekten rund um den ESP32 dabei werden diverse Sensoren & Aktoren verwendet. Der ESP32 hat wie eingangs schon erwähnt einige zusätzliche Features welche ihn deutlich vom Arduino UNO R3 abheben lassen. So kann man zbsp. recht simple die Messdaten eines Temperatursensors auf einer Webseite darstellen oder auch komplexe Schaltungen mit diesem steuern und grafisch anzeigen lassen.
Der Arduino UNO R3 kann jedoch deutlich einfacher programmiert werden und durch die vielen erhältlichen Sensoren & Aktoren können einige „Helferlein“ erstellt werden.
Alternative zum Arduino UNO R3
Der Arduino UNO R3 kommt schon recht oft an seine grenzen denn dieser ist mit 14 digitalen Pins schon recht gut bestückt aber leider ist bei großen Projekten da schnelle Schluss. Hier müsste man dann auf einen Arduino Mega 2560 R3 zurück greifen jedoch muss man dann wiederum Lösungen implementieren für die WiFi Schnittstelle und die Speicherung von den Daten der Webseite.
Es gibt den Arduino Mega auch mit einem ESP8266 Chip und somit hat man einen „kleinen“ Microcontroller mit sehr vielen Pins und einer WiFi Schnittstelle. Solltest du jedoch nur einen Arduino mit einer WiFi Schnittstelle suchen so empfehle ich dir den Wemos D1 mit ebenfalls einen ESP8266 Chip.
Fazit
Beide Mikrocontroller habe ich schon in diversen Schaltungen verbaut und so einige Projekte mit diesen durchgeführt. Der Arduino UNO R3 ist schnell programmiert, jedoch wenn man sich mit der Sprache MicroPython gut auskennt, dann ist der ESP32 genauso schnell programmiert. Ein Problem gibt es nur bei der Unterstützung von Sensoren & Aktoren. Hier hat der Arduino den Vorteil, dass es sehr viele, leicht zugängliche Bibliotheken gibt.
Danke, dieser Artikel hat viele Fragen beantwortet 🙂
Ich kann meinen Schülern nun die Welt der vernetzten MicroC näher bringen :))
ESPs lassen sich ebenso mit Arduino programmieren. Auch die Libs laufen größtenteils.
Ich habe mit beiden gearbeitet, vom Programmieren her kein Unterschied, es sei denn man möchte das Framework ESP-IDF benutzen.
Mit dem Arduino-Framework ist es genau so einfach wie mit den Arduinos.
Hi,
leider kann man das nicht verallgemeinern, in einigen Sachen sind die ESPs und Arduinos gleich aber sobald es ins Detail geht muss man für eigentlich recht einfache Dinge beim ESP zu einer extra Bibliothek greifen.
Gruß
Stefan