Arduino
Arduino ist eine aus Soft- und Hardware bestehendes Open Source-Projekt, dass 2006 in Italien gegründet wurde. Die Hardware besteht aus einem einfachen Ein-/Ausgabe-Board mit einem Mikrocontroller.
Die Integrierte Entwicklungsumgebung (IDE = Integrated Developement Environment) erleichtert auch dem Einsteiger die Programmierung des Mikrocontrollers. Die IDE ist in JAVA programmiert und läuft daher auf allen Betriebssystemen. Die Programme für den Mikrocontroller werden dabei in einer C/C++-ähnlichen Programmiersprache geschrieben. Es gibt eine viele quelloffene Programmierbeispiele und Programmbibliotheken, die leicht zum Laufen gebracht werden können. (Im Gegensatz zu professionellen Entwicklungsumgebungen bleiben technische Details wie z.B. Header-Dateien usw. verborgen, was den Programmiereinstieg ebenfalls sehr vereinfacht.)
Arduino Uno
Das hier verwendete Board ist voll kompatibel zum Arduino UNO R3:

Arduino UNO R3 – Version in SMD-Bauweise mit USB-Schnittstelle und ATmega328-Mikrocontroller
Der Arduino Uno R3 ist der Standard-Arduino. Die meisten Einsteiger-Büchern und Tutorials befassen sich mit diesem Board. Auch sind
die meisten freien Programmbibliotheken (engl. Libaries) für ihn geschrieben. Er besitzt eine Spannungsregelung und darf mit
12V über einen Hohlstecker versorgt werden, kann aber auch an bereits
geregelte 5V angeschlossen werden und besitzt folgende Spezifikationen:
Mikrocontroller
ATmega328, ein Mikrocontroller aus der megaAVR-Serie der Firma Atmel
I/O-Pins (Ein-/Ausgänge)
14 digitale I/O-Pins (umschaltbar)
6 analoge Eingänge
Speicherkapazität
- 32kiB Flash-EEPROM (0,5 werden vom Bootloader verwendet.) für das Programm
- 2kiB SRAM als Arbeitsspeicher (volatil)
- 1kiB EEPROM zum festen (persistenten) Abspeichern von Daten wie z.B. Betriebsstundenzähler
- 16 MHz Prozessortakt
Anschlüsse
- USB-B zur Programmierung und Stromversorgung
- Hohlstecker-Buchse zur Stromversorgung (2.1mm , 6-20 V möglich)
- SPI (Serial Peripheral Interface) für fortgeschrittenere In-System-Programmierung und Kommunikation (synchroner serieller Bus)
- I²C (Inter-Integrated Circuit) für Kommunikation (synchroner serieller Multi-Primary-Bus)
- ICSP (In-circuit serial programming) für die Programmierung
https://en.wikipedia.org/wiki/ATmega328 (23.09.2021)
Datenblatt ATmega328P (23.09.2021)