Jeder Hobbybastler kennt sie und jeder C-Kenner verachtet sie: die Arduinos.

Arduino ist in erster Linie eine Kombination aus Hard- und Softwarelösung für eine einfache Programmierung. Die Controller sind meist AVRs, die auf fertigen Boards platziert sind. Die IDE bietet eine an C angelehnte Programmiersprache und die einfache Möglichkeit, Programme (“Sketch” genannt) direkt auf den Controller zu laden. Dafür sind bereits sehr viele Funktionen als Unterprogramme abgespeichert und diese sind einfach aufzurufen.

So können auch Einsteiger leicht und schnell Controller programmieren und schnelle Erfolgserlebnisse haben. Ich selbst arbeite auch viel mit Arduino, da es einfach anzuwenden und zu programmieren ist. Technisch betrachtet ist es nämlich immer noch C.

Hier aber die Kehrseite der Medaille: Da alle Funktionen als Unterprogramme abgespeichert sind, müssen diese immer und immer wieder aufgerufen werden. Das sorgt dafür, dass die so genannten Sketche immer sehr schnell sehr groß werden. Das nimmt nicht nur Speicherplatz, sondern auch Geschwindigkeit. Hier mal ein Beispiel:

Der AVR ATmega328P-PU wurde von mir so programmiert, dass er eine LED ohne delay oszillieren lässt. Taktfrequenz war jeweils 16MHz.

In C wurde so eine Frequenz von ca. 4,17MHz erreicht.
In Arduino wurde eine Frequenz von ca. 217,3kHz erreicht.

Also rund um den Faktor 20 langsamer und das bei nur einer LED. Durch das Framework von Arduino summiert sich das nach und nach hoch (versteht mich nicht falsch, in C auch, aber weniger stark).

Man sieht also, dass Arduino nicht wirklich für sehr schnelle Prozesse geeignet ist.

ABER:
Das ist auch nicht der Sinn von Arduino gewesen. Der Sinn war, dass Einsteiger schnell und unkompliziert programmieren können. Natürlich kann man auch komplexere Aufgaben mit dem Arduino steuern (z.B. einen Bauteiltester bzw. 8x8x8 RGB LED-Würfel). Arduino ist trotz seiner beschränkten Geschwindigkeit relativ Leistungsstark und zur Prototypenentwicklung nutze ich gerne Arduino, weil man einfacher programmieren kann. Und da es nach wie vor ein Dialekt von C ist, kann man später, wenn Speicherplatz und Geschwindigkeit benötigt werden, immer noch das Programm in C übersetzen.

Ob man das dann auf einen PIC oder einen AVR zuschneidert, ist ab dann relativ egal. Aber die Diskussion hab ich schon niedergeschrieben 😉

Fazit:
Auch wenn C die eigentliche Hochsprache ist, so hat Arduino doch seinen Stellenwert gefunden. Sei es, um schnell etwas zu entwickeln, oder das Programmieren zu lernen.

Nachdem man Arduino beherrscht, kann man auch ohne Probleme C lernen, da es viele Parallelen aufweist und ähnlich aufgebaut wird.