# Arduino IDE

Die Arduino IDE (IDE = Integrated Development Environment) ist eine Software zum Programmieren von Arduino-Mikrocontrollern. Sie ermöglicht es, Programme mit der Programmiersprache C oder C++ zu schreiben und auf die Arduino-Boards zu laden und diese auf dem Arduino-Mikrocontroller auszuführen. Die Arduino IDE ist kostenlos und für verschiedene Betriebssysteme (Windows, macOS und Linux) erhältlich.

## Geschichte

Die Arduino IDE entstand 2005 als Teil des Arduino-Projekts, das eine einfache und günstige Plattform für elektronische Projekte schaffen wollte.

## Funktionen

Die Arduino IDE bietet folgende Funktionen:
* Editor, ein Compiler und ein Uploader für die Programme
* standardisierte Sprache, die auf C und C++ basiert
* Reihe von Bibliotheken für verschiedene Funktionen und Hardware
* serielle Konsole für die Kommunikation mit dem Arduino-Board
* Board-Manager und ein Bibliotheksmanager für die Auswahl und Verwaltung der Arduino-Boards und Bibliotheken
* Sketchbook für die Speicherung der Programme

## Verwendung

Um die Arduino IDE zu verwenden, muss man:
* Die passende Version für das Betriebssystem herunterladen und installieren
* Das Arduino-Board mit dem Computer verbinden und im Board-Manager auswählen
* Ein neues oder vorhandenes Programm (Sketch) im Editor öffnen oder erstellen
* Den Sketch mit dem Upload-Knopf auf das Board laden
* Den Sketch mit der seriellen Konsole testen oder debuggen

## Programmierung

Für ein funktionstüchtiges Programm genügt es, zwei Funktionen zu definieren:
* setup – wird beim Start des Programms (entweder nach dem Übertragen auf das Board oder nach Drücken des Reset-Tasters auf dem Arduino-Board) einmalig aufgerufen, um z. B. Pins entweder als Eingang oder als Ausgang zu definieren.
* loop – wird danach als Endlosschleife durchgehend immer wieder durchlaufen, solange das Arduino-Board eingeschaltet ist. In dieser können Bedingungen und andere Abläufe programmiert werden.
Nachstehend ein Beispiel für ein C-Programm (in der Arduino-Diktion: Sketch), das einen Rechteckgenerator implementiert und somit eine Rechteckschwingung (hier mit einer Frequenz von 0,5 Hz und einem Tastgrad von 50 %) generiert und dadurch eine (über einen Vorwiderstand gegen Masse) an das Arduino-Board angeschlossene Leuchtdiode (LED) entsprechend blinken lässt:
Mit S4A (Scratch for Arduino) und mblock (basierend auf scratch) gibt es Scratch-Modifikationen, die eine freie visuelle Programmiersprache mit Programmierumgebung für den Arduino-Mikrocontroller zur Verfügung stellen.
Weiterhin bietet Arduino mit Arduino Create eine webbasierte Lösung an, um im Browser zu programmieren. Geschriebene Sketche werden online in einer Cloud abgelegt. Die Kommunikation zwischen Browser und Arduino-Board wird über Plug-ins für das jeweilige Betriebssystem ermöglicht. Arduino-Boards können über USB und Netzwerkverbindung angesprochen werden. Die Nutzung von Arduino Create erfordert eine kostenlose Registrierung bei diesem Dienst. Betrieben wird die Plattform durch Amazon Web Services.

## Changelog

Hier sind die wichtigsten Änderungen und Verbesserungen der Arduino IDE in den letzten Versionen:

### Arduino IDE 2.X

Die Arduino IDE 2.X basiert auf der Eclipse Theia und dem Framework Electron.
| Version | Datum | Änderungen |
| 2.1.1 | 30. Juni 2023 | Fehlerbehebungen und Stabilitätsverbesserungen bzgl. Arduino CLI 0.32.2 |
| 2.1.0 | März 2023 | Fehlerbehebungen und Stabilitätsverbesserungen; Arduino CLI auf 0.32.2 aktualisiert; Unterstützung für Umbenennen und Löschen von Cloud-Sketches; Öffnen von Bibliotheksbeispielen; Pull- und Push-Symbole für Cloud-Sketches; “[Cloud]”-Indikator für Cloud-Sketches; Unterstützung für Pushen lokaler Sketches in die Cloud |
| 2.0.4 | Februar 2023 | Fehlerbehebungen und Stabilitätsverbesserungen; Arduino CLI auf 0.20.1 aktualisiert; Unterstützung für macOS Notarisierung; benutzerdefinierte Board-Optionen im Tools-Menü; Aktivitätsleiste für Arduino Cloud Login |
| 2.0.3 | Dezember 2022 | Fehlerbehebungen und Stabilitätsverbesserungen; Arduino CLI auf 0.19.1 aktualisiert |
| 2.0.2 | November 2022 | Fehlerbehebungen und Stabilitätsverbesserungen; Arduino CLI auf 0.19.0 aktualisiert |
| 2.0.1 | Oktober 2022 | Fehlerbehebungen und Stabilitätsverbesserungen; Arduino CLI auf 0.18.3 aktualisiert |
| 2.0.0 | September 2022 | Erste stabile Version; basiert auf Arduino CLI und Theia Framework; modernere UI, verbesserter Board- und Bibliotheksmanager, Debugger, Autovervollständigung usw. |

### Arduino Legacy IDE 1.X

Die Arduino Legacy IDE 1.X ist in der Programmiersprache Java geschrieben und basiert auf der Wiring IDE, die wiederum auf der Processing IDE basiert.
| Version | Datum | Änderungen |
| 1.8.16 | Oktober 2021 | Verbesserte Unterstützung für Arduino Nano RP2040 Connect, Arduino Portenta H7 und Arduino Nano 33 BLE; Behebung von Fehlern und Verbesserung der Stabilität |
| 1.8.15 | Mai 2021 | Verbesserte Unterstützung für Arduino Nano RP2040 Connect; Behebung von Fehlern und Verbesserung der Stabilität |
| 1.8.14 | Februar 2021 | Verbesserte Unterstützung für Arduino Nano 33 IoT und Arduino Nano 33 BLE; Behebung von Fehlern und Verbesserung der Stabilität |
| 1.8.13 | Juni 2020 | Verbesserte Unterstützung für Arduino Portenta H7; Behebung von Fehlern und Verbesserung der Stabilität |
| 1.8.12 | Februar 2020 | Verbesserte Unterstützung für Arduino Nano 33 IoT und Arduino Nano 33 BLE; Behebung von Fehlern und Verbesserung der Stabilität |