Arduino-IDE-Befehle. Arduino-Programmiersprache

Das erste, was Sie tun sollten, um Arduino zu beherrschen, ist der Kauf einer Debugging-Karte (es wäre eine gute Idee, sofort eine Leiterplatte usw. zu kaufen). Ich habe bereits beschrieben, welche Arten von Arduino-Boards es auf dem Markt gibt. Wenn Sie den Artikel noch nicht gelesen haben, empfehle ich Ihnen, ihn zu lesen. Um die Grundlagen zu erlernen, wählen Sie ein Standard-Arduino-Uno-Board (original oder gut). Chinesische Kopie- du entscheidest). Beim ersten Anschließen der Originalplatine sollte es keine Probleme geben, bei der „chinesischen“ müssen Sie jedoch etwas tiefer graben (keine Sorge – ich zeige und erzähle Ihnen alles).

Anschließen von Arduino an Computer USB Kabel. Die LED auf der Platine sollte aufleuchten AN". Im Geräte-Manager wird ein neues Gerät angezeigt. Unbekanntes Gerät". Sie müssen den Treiber installieren. Hier füge ich eine kleine hinzu Mehrdeutigkeit(Die Katze war abgelenkt – ich weiß nicht mehr, welcher Fahrer entschieden hat“ Problem unbekanntes Gerät ».

Zuerst die Arduino-Softwareumgebung heruntergeladen und entpackt ( Arduino-1.6.6-Windows). Dann habe ich dieses heruntergeladen. Es ist selbstextrahierend. Habe die Datei gestartet CH341SER.EXE. Ausgewählt Installation (INSTALLIEREN). Nach der Installation erschien eine Meldung, klickte auf „ OK„(hatte keine Zeit, es zu lesen).

Dann ging ich zu den Eigenschaften des noch „unbekannten Geräts“ und wählte die Schaltfläche „Treiber aktualisieren“. Ich habe die Option „Von einem angegebenen Speicherort installieren“ ausgewählt und den Ordner mit der entpackten Arduino-Softwareumgebung angegeben. Und siehe da, alles hat erfolgreich funktioniert...

Wir starten das Arduino-Programm (in meinem Fall 1.6.6) und erlauben den Zugriff.

Alle Projekte (Programme) für Arduino bestehen aus zwei Teilen: ungültiges Setup Und leere Schleife. ungültiges Setup wird nur einmal durchgeführt und leere Schleife wird immer und immer wieder gemacht.

Bevor wir fortfahren, müssen zwei obligatorische Vorgänge abgeschlossen werden:

— Geben Sie in der Arduino-Softwareumgebung an, welches Board Sie verwenden. Werkzeug->Board->Arduino Uno. Wenn die Markierung bereits auf der Tafel vorhanden ist, die Sie benötigen, ist das gut; wenn nicht, setzen Sie eine Markierung.

— Geben Sie in der Softwareumgebung an, über welchen seriellen Port Sie mit der Karte kommunizieren. Tool->Port->COM3. Wenn sich die Markierung bereits auf dem Anschluss befindet, ist das in Ordnung. Wenn nicht, setzen Sie eine Markierung ein. Wenn im Abschnitt „Ports“ mehr als ein Port aufgeführt ist, wie können Sie dann herausfinden, welcher für die Verbindung mit der Platine verwendet wird? Wir nehmen die Platine und trennen den Draht davon. Wir gehen noch einmal zu den Häfen und schauen, welcher verschwunden ist. In meinem Fall wurde die Registerkarte „Ports“ überhaupt inaktiv.

Schließen Sie das USB-Kabel wieder an.

Für das erste Programm sind keine Zusatzmodule erforderlich. Wir schalten die LED ein, die bereits auf der Platine montiert ist (an Pin 13 des Mikrocontrollers).

Lassen Sie uns zunächst Pin 13 (Eingang oder Ausgang) konfigurieren.

Geben Sie dazu in den Block „ ungültiges Setup" Team pinMode , wir geben die Parameter in Klammern an (13, AUSGANG) (Um welchen Pin es sich handelt, Betriebsart). Die Softwareumgebung hebt Wörter/Befehle mit der entsprechenden Schriftfarbe hervor.

Gehe zum Block " leere Schleife"und geben Sie den Befehl ein digitalWrite mit Parametern (13, HOCH) .


Das erste Programm ist fertig, jetzt muss es nur noch in den Mikrocontroller geladen werden. Klicken Sie auf die Schaltfläche HOCHLADEN.

Die LED leuchtete auf. Aber seien Sie nicht so skeptisch, was die Einfachheit des ersten Programms angeht. Den ersten hast du gerade gemeistert Führungsteam. Anstelle einer LED können Sie eine beliebige Last anschließen (sei es die Beleuchtung in einem Raum oder ein Servoantrieb, der die Wasserzufuhr abschaltet), aber über all das sprechen wir später ...

Wir haben die LED eingeschaltet, sie leuchtete ein wenig, es ist Zeit, sie auszuschalten. Dazu modifizieren wir das von uns geschriebene Programm. Anstatt " HOCH "Lass uns schreiben" NIEDRIG ».


Klicken Sie auf die Schaltfläche HOCHLADEN. Die LED ging aus.

Wir haben uns bereits mit dem Begriff „“ vertraut gemacht, jetzt ist es an der Zeit, ihn zu verwenden. Weitere Programme werden immer umfangreicher und komplexer, und die Arbeit an deren Änderung wird immer mehr Zeit in Anspruch nehmen, wenn wir weiterhin solchen Code schreiben.

Wir schauen uns das Programm an (schalten Sie die LED wieder ein). Stellen wir die Pin-Nummer des Mikrocontrollers nicht als Zahl ein 13 , sondern eine Variable, der der Wert des entsprechenden Ausgangs zugewiesen wird (in unserem Fall 13). In Zukunft wird es sehr praktisch sein, die Werte von Variablen zu Beginn des Programms zu ändern, anstatt den Code auf der Suche nach den Stellen zu durchsuchen, an denen Werte geändert werden müssen.

Erstellen Sie eine globale Variable int LED_pin = 13; (Variablentyp, Variablenname, ihr zugewiesener Wert).


Klicken Sie auf die Schaltfläche HOCHLADEN. Die LED leuchtet. Alles funktioniert perfekt.

In dieser Lektion lernen wir nicht nur, wie man die LED ein-/ausschaltet, sondern auch, wie man sie blinken lässt.

Geben Sie dazu den zweiten Befehl „ digitalWrite» mit Parametern (LED_pin, LOW).


Klicken Sie auf die Schaltfläche HOCHLADEN. Und was sehen wir? Die LED leuchtet „vollständig“. Der Grund liegt darin, dass die Umschaltzeit zweier Zustände ( HOCH Und NIEDRIG ) ist vernachlässigbar und das menschliche Auge kann diese Schalter nicht erkennen. Es ist notwendig, die Verweildauer der LED in einem der Zustände zu erhöhen. Dazu schreiben wir den Befehl Verzögerung mit Parameter (1000 ) . Verzögerung in Millisekunden: 1000 Millisekunden – 1 Sekunde. Der Programmalgorithmus ist wie folgt: LED einschalten – 1 Sekunde warten, LED ausschalten – 1 Sekunde warten usw.


Klicken Sie auf die Schaltfläche HOCHLADEN. Die LED begann zu flackern. Alles arbeitet.

Lassen Sie uns das Programm abschließen, indem wir eine Variable erstellen, der ein Wert zugewiesen wird, der für die Dauer der Verzögerung verantwortlich ist.


Klicken Sie auf die Schaltfläche HOCHLADEN. Die LED flackert wie zuvor.

Lassen Sie uns das Programm fertigstellen, das wir geschrieben haben. Die Aufgaben sind wie folgt:

  • Die LED ist 0,2 Sekunden lang an und 0,8 Sekunden lang aus.
  • Die LED ist für 0,7 Sekunden an und für 0,3 Sekunden aus.

Das Programm hat zwei Variablen erstellt, die für Zeitverzögerungen verantwortlich sind. Einer bestimmt die Betriebszeit der LED an und der zweite – die Betriebszeit der LED aus.

Vielen Dank für Ihre Aufmerksamkeit. Bis bald!

Die Basis der Programmiersprache des Arduino-Moduls ist die Sprache C (höchstwahrscheinlich C++). Genauer gesagt wird dieser Dialekt der Sprache Processing/Wiring genannt. Einen guten Überblick über die Sprache finden Sie im Anhang. Aber ich möchte nicht mehr über die Sprache sprechen, sondern über die Programmierung.

Ein Programm ist ein bestimmter Befehlssatz, der vom Prozessor, dem Prozessor Ihres Computers oder dem Mikrocontroller-Prozessor des Arduino-Moduls verstanden wird, egal. Der Prozessor liest die Anweisungen und führt sie aus. Alle Befehle, die der Prozessor versteht, sind Binärzahlen. Das sind nur Binärzahlen und sonst nichts. Durch die Ausführung der arithmetischen Operationen, für die der Prozessor einst entwickelt wurde, operiert der Prozessor mit Zahlen. Binärzahlen. Und es stellt sich heraus, dass sowohl die Befehle als auch das, worauf sie sich beziehen, nur Binärzahlen sind. So. Doch wie sortiert der Prozessor diesen „Heap“? Binärzahlen?

Zunächst werden alle diese Binärzahlen in aufeinanderfolgende Zellen geschrieben Arbeitsspeicher Adressen haben. Wenn Sie ein Programm laden und es zu laufen beginnt, erhält der Prozessor die erste Adresse des Programms, an die der Befehl geschrieben werden muss. Die Anweisungen, die erfordern, dass der Prozessor mit Zahlen arbeitet, sind mit „Erkennungszeichen“ versehen, zum Beispiel, dass in den nächsten beiden Speicherzellen zwei Zahlen hinzugefügt werden müssen. Und der Zähler, nennen wir ihn Programmzähler, in den die Adresse des nächsten Befehls geschrieben wird, erhöht in diesem Fall die Adresse, sodass das Programm den nächsten Befehl an dieser Adresse enthält. Bei Fehlfunktion Programm oder Fehler, der Prozessor kann einen Fehler machen, und dann, nachdem er eine Zahl anstelle eines Befehls gelesen hat, macht der Prozessor etwas völlig anderes, als er tun sollte, und das Programm „friert ein“.

Somit ist jedes Programm eine Folge von Binärzahlen. Und Programmieren ist die Fähigkeit, die richtigen Folgen von Binärzahlen richtig zu schreiben. Vor langer Zeit begann man, spezielle Werkzeuge, sogenannte Programmiersprachen, zum Schreiben von Programmen zu verwenden.

Allerdings erfordert jedes Programm zunächst ein klares Verständnis darüber, was das Programm tun soll und warum es benötigt wird. Je klarer Sie dies verstehen, desto einfacher ist es, ein Programm zu erstellen. Kleine Programme können als Ganzes betrachtet werden, obwohl es schwierig ist zu sagen, welche Programme klein sind und welche nicht. Komplexere Programme werden besser in Teile zerlegt, die man sich vorstellen kann unabhängige Programme. Dadurch lassen sie sich besser erstellen und sind einfacher zu debuggen und zu testen.

Ich bin nicht bereit zu argumentieren, aber ich denke, es ist bequemer, ein Programm mit einer Beschreibung in normaler Sprache zu starten. Und in diesem Sinne glaube ich, dass Programmieren nicht mit dem Schreiben von Programmcode verwechselt werden sollte. Wenn ein Programm in einfachen Worten beschrieben wird, können Sie beispielsweise leichter bestimmen, welche Programmiersprache Sie zum Erstellen des Programmcodes wählen sollten.

Dem Schreiben eines Programms mit Binärzahlen kommt die Assemblersprache am nächsten. Es zeichnet sich durch die Übereinstimmung von Sprachbefehlen mit binären Befehlen aus, die der Prozessor versteht. Das Codieren von Programmen in Assembler erfordert jedoch viel Aufwand und ähnelt eher einer Kunst als formalen Operationen. Hochsprachen wie BASIC oder C sind universeller und einfacher zu verwenden. Und seit langem wird eine grafische Sprache verwendet, um Programme in allgemeiner Form zu schreiben, und in letzter Zeit sind „Übersetzer“ aus dieser Sprache in die Sprache der Prozessoren erschienen.

Neben allgemeinen Programmiersprachen gab es schon immer eine gewisse Spezialisierung von Programmiersprachen und es gab Spezialsprachen. Zu Letzterem würde ich auch die Programmiersprache des Arduino-Moduls zählen.

Alles, was wir brauchen, um dem Modul mitzuteilen, dass es etwas tun soll, ist in einem praktischen Befehlssatz organisiert. Aber zuerst: Was brauchen wir von Arduino?

Das Modul kann in verschiedenen Funktionen eingesetzt werden – es ist das Herz (oder der Kopf) des Roboters, es ist die Basis des Geräts, es ist auch ein praktischer Konstrukteur zur Beherrschung der Arbeit mit Mikrocontrollern usw.

Oben haben wir bereits mit einfachen Programmen die Verbindung des Moduls zum Computer überprüft. Manchen mögen sie zu einfach und daher uninteressant erscheinen, aber komplexe Programme bestehen aus einfacheren Fragmenten, ähnlich denen, die wir bereits kennengelernt haben.

Mal sehen, was uns die meisten sagen können einfaches Programm„Blitz-LED.“

int ledPin = 13;

pinMode(ledPin, OUTPUT);

digitalWrite(ledPin, HIGH);

digitalWrite(ledPin, LOW);

Erinnern wir uns zunächst daran, was eine LED ist. Im Wesentlichen handelt es sich hierbei um eine gewöhnliche Diode, bei der konstruktionsbedingt bei Stromfluss in Durchlassrichtung der Übergang zu glühen beginnt. Das heißt, damit eine LED leuchtet, muss Strom durch sie fließen, was bedeutet, dass Spannung an die LED angelegt werden muss. Und damit der Strom nicht überschreitet zulässiger Wert, sollte ein Widerstand in Reihe mit der LED geschaltet werden, der als Strombegrenzungswiderstand bezeichnet wird (siehe Anhang A, Digitalausgang). Die Spannung wird vom Mikrocontroller, der die Basis des Arduino-Moduls bildet, an die LED angelegt. Der Mikrocontroller verfügt zusätzlich zum Prozessor, der unsere Befehle ausführt, über einen oder mehrere I/O-Ports. Ohne ins Detail zu gehen spezifisches Gerät Port, sagen wir es so: Wenn der Port-Pin als Ausgang fungiert, kann er als Ausgang einer digitalen Mikroschaltung mit zwei Zuständen dargestellt werden: Ein und Aus (am Ausgang liegt Spannung an, am Ausgang liegt keine Spannung an). ).

Der gleiche Port-Pin kann aber auch als Eingang fungieren. In diesem Fall kann es beispielsweise als Eingang einer digitalen Mikroschaltung dargestellt werden – an den Eingang wird ein logischer Pegel, hoch oder niedrig, angelegt (siehe Anhang A, digitaler Eingang).

So blinken wir die LED:

Port-Ausgangspin aktivieren. Schalten Sie den Port-Ausgang aus.

Aber der Prozessor ist sehr schnell. Wir werden keine Zeit haben, das Blinken zu bemerken. Um dieses Blinken zu bemerken, müssen wir Pausen hinzufügen. Also:

Port-Ausgangspin aktivieren. 1 Sekunde pausieren.

Schalten Sie den Port-Ausgang aus.

1 Sekunde pausieren.

Das ist unser Programm. Der Prozessor liest den ersten Befehl und schaltet den Ausgang ein, die LED leuchtet auf. Dann pausiert der Prozessor und schaltet den Ausgang ab, die LED erlischt. Aber er blinzelte nur einmal.

Die Wiederholung eines Prozesses oder einer Reihe von Befehlen wird in der Programmierung als Schleife bezeichnet. Werden verwendet verschiedene Typen Fahrräder. Es gibt eine Schleife, die läuft angegebene Nummer einmal. Dies ist eine for-Schleife. Es gibt Schleifen, die so lange laufen, bis eine Bedingung erfüllt ist, die Teil des Schleifenkonstrukts in der Sprache ist. Und wenn die Bedingung nie erfüllt ist, wird die Schleife unendlich oft ausgeführt. Es ist ein endloser Kreislauf.

Ich glaube nicht, dass Mikrocontroller mit Programmen der oben gezeigten Art verwendet werden. Das heißt, mehrere Befehle werden einmal ausgeführt und der Controller funktioniert nicht mehr. Der Betrieb erfolgt in der Regel kontinuierlich, sobald Versorgungsspannung anliegt. Das bedeutet, dass der Mikrocontroller in einer Endlosschleife arbeiten muss.

Das ist genau das, was die Funktion void loop() sagt: Eine Schleife ist eine Schleife, eine geschlossene Schleife. Es gibt keine Bedingung für das Stoppen des Zyklus und daher auch keine Bedingung für seinen Abschluss.

Darüber hinaus müssen wir dem Arduino-Modul mitteilen, welchen Port-Pin wir verwenden möchten und wie er verwendet werden soll, für den Ausgang (OUTPUT) oder für den Eingang (INPUT). Diesem Zweck dienen die Funktion void setup(), die für die Arduino-Sprache obligatorisch ist, auch wenn sie nicht verwendet wird, und der Befehl pinMode() zum Einstellen der Ausgangsbetriebsart.

pinMode(ledPin, OUTPUT);

Und doch verwendet das Sprachkonstrukt Variablen, um die Ausgabenummer zu bestimmen:

int ledPin = 13;

Die Verwendung von Variablen ist praktisch. Wenn Sie sich dafür entscheiden, Ausgabe 12 statt 13 zu verwenden, nehmen Sie nur eine Änderung in einer Zeile vor. Dies gilt insbesondere bei großen Programmen. Der Variablenname kann beliebig gewählt werden, im Allgemeinen darf er jedoch nur aus Zeichen bestehen und die Anzahl der Zeichen ist häufig begrenzt. Wenn Sie den Variablennamen falsch festlegen, wird Sie der Compiler meiner Meinung nach korrigieren.

Die Funktion digitalWrite(ledPin, HIGH) setzt den angegebenen Pin auf einen High-Zustand, d. h. schaltet den Pin ein.

Und Verzögerung (1000) bedeutet, wie Sie bereits verstanden haben, eine Pause von 1000 Millisekunden oder 1 Sekunde.

Es bleibt zu verstehen, was Präfixe wie int und void bedeuten. Alle Werte, alle Variablen liegen im Speicher, ebenso wie Programmbefehle. In Speicherzellen werden Zahlen geschrieben, die oft aus 8 Bits bestehen. Das ist ein Byte. Aber ein Byte ist eine Zahl von 0 bis 255. Nur fürs Protokoll große Zahlen Sie benötigen zwei Bytes oder mehr, also zwei oder mehr Speicherzellen. Um dem Bearbeiter klar zu machen, wie er die Nummer findet, verschiedene Typen Zahlen haben unterschiedliche Namen. Eine Zahl namens Byte belegt also eine Zelle, int (Ganzzahl, Ganzzahl) nimmt mehr ein. Darüber hinaus geben in Programmiersprachen verwendete Funktionen auch Zahlen zurück. Um zu bestimmen, welchen Zahlentyp eine Funktion zurückgeben soll, stellen Sie der Funktion den zurückgegebenen Zahlentyp voran. Einige Funktionen geben jedoch möglicherweise keine Zahlen zurück. Solchen Funktionen wird die Notation void vorangestellt (siehe Anhang A, Variablen).

So viel Interessantes kann selbst das einfachste Programm erzählen.

Ich hoffe, dass Sie das alles im Anhang nachlesen können. Lassen Sie uns nun einfache Experimente durchführen und dabei nur das verwenden, was wir bereits über die Fähigkeiten der Sprache wissen. Ersetzen wir zunächst eine Variable vom Typ int, die viel Speicherplatz beansprucht, durch ein Byte – ein Leerzeichen, eine Speicherzelle. Mal sehen, was wir tun können.

Byte ledPin = 13;

pinMode(ledPin, OUTPUT);

digitalWrite(ledPin, HIGH);

digitalWrite(ledPin, LOW);

Nach dem Kompilieren und Laden des Programms in das Modul werden wir keine Änderungen in der Funktionsweise des Programms feststellen. Bußgeld. Dann werden wir das Programm ändern, um Änderungen in seiner Funktionsweise zu bemerken.

Dazu ersetzen wir die Zahl in der Verzögerungsfunktion (1000) durch eine Variable und nennen sie my_del. Diese Variable muss eine Ganzzahl sein, also int.

int my_del = 5000;

Denken Sie daran, jeden Befehl mit einem Semikolon zu beenden. Nehmen Sie Änderungen am Programm vor, kompilieren Sie es und laden Sie es in das Modul. Ändern Sie dann die Variable und kompilieren und laden Sie erneut:

Byte my_del = 5000;

Ich bin mir sicher, dass der Unterschied spürbar sein wird.

Machen wir ein weiteres Experiment mit der Änderung der Pausendauer. Verkürzen wir die Dauer der Pausen beispielsweise um das Fünffache. Lassen Sie uns 2 Sekunden lang pausieren und es dann ebenfalls um das Fünffache erhöhen. Und wieder machen wir eine Pause von 2 Sekunden. Eine Schleife, die eine bestimmte Anzahl von Malen durchläuft, wird for-Schleife genannt und wie folgt geschrieben:

für (int i = 0; i<5; i++)

etwas, das in einer for-Schleife ausgeführt wird

Um die Schleife auszuführen, benötigt sie eine Variable, bei uns ist es i, der Variablen muss ein Anfangswert gegeben werden, den wir ihr zuweisen. Dann folgt die Bedingung zum Beenden der Schleife, wir haben i kleiner als 5. Und der Eintrag i++ ist ein typischer C-Spracheintrag zum Erhöhen einer Variablen um eins. Geschweifte Klammern begrenzen die Menge an Befehlen, die in einer for-Schleife ausgeführt werden können. Andere Programmiersprachen haben möglicherweise andere Trennzeichen zum Hervorheben eines Funktionscodeblocks.

Innerhalb der Schleife machen wir dasselbe wie zuvor, mit ein paar kleinen Änderungen:

für (int i = 0; i<5; i++)

digitalWrite(ledPin, HIGH);

digitalWrite(ledPin, LOW);

my_del = my_del - 100;

Wir haben oben über die Änderung des Pausendatensatzes gesprochen, und die Änderung der Pause selbst wird durch Verringern der Variablen um 100 erreicht.

Für die zweite Schleife schreiben wir denselben Codeblock, erhöhen jedoch die Variable für die Pausendauer um 100.

für (int i = 0; i<5; i++)

digitalWrite(ledPin, HIGH);

digitalWrite(ledPin, LOW);

Ihnen ist aufgefallen, dass die Aufzeichnung einer Pausenverkürzung und einer Pausenverlängerung unterschiedlich aussieht. Dies ist auch eine Funktion der C-Sprache. Aus Gründen der Übersichtlichkeit hätte dieser Eintrag jedoch wiederholt werden sollen, wobei nur das Minuszeichen in ein Pluszeichen geändert werden sollte. Also bekommen wir dieses Programm:

int ledPin = 13;

int my_del = 1000;

pinMode(ledPin, OUTPUT);

für (int i = 0; i<5; i++)

digitalWrite(ledPin, HIGH);

digitalWrite(ledPin, LOW);

für (int i = 0; i<5; i++)

digitalWrite(ledPin, HIGH);

digitalWrite(ledPin, LOW);

Kopieren wir den Code unseres Programms in das Arduin-Programm, kompilieren ihn und laden ihn in das Modul. Auffällig ist die Veränderung der Pausendauer. Und es wird noch deutlicher, wenn Sie die for-Schleife beispielsweise achtmal ausführen.

Was wir gerade getan haben, ist das, was professionelle Programmierer tun: Mit einem vorgefertigten Programm kann es leicht an Ihre Bedürfnisse und Wünsche angepasst werden. Deshalb speichern sie alle ihre Programme. Was ich Ihnen auch rate.

Was haben wir in unserem Experiment übersehen? Wir haben unsere Arbeit nicht kommentiert. Um einen Kommentar hinzuzufügen, verwenden Sie entweder einen doppelten Schrägstrich oder einen einzelnen Schrägstrich, jedoch mit Sternchen (siehe Anhang A). Ich rate Ihnen, dies selbst zu tun, denn wenn Sie nach einer Weile zum Programm zurückkehren, werden Sie es leichter verstehen, wenn an dieser oder jener Stelle des Programms Erklärungen dazu stehen, was Sie tun. Und ich empfehle Ihnen auch, die Beschreibung im Klartext, erstellt in einem beliebigen Texteditor, im Ordner jedes Programms zu speichern.

Das einfachste Programm „Eine LED blinken lassen“ kann für ein Dutzend weiterer Experimente dienen (sogar mit einer LED). Mir scheint, dass dieser Teil der Arbeit, herauszufinden, was sonst noch auf interessante Weise getan werden kann, der interessanteste ist. Wenn Sie im Anhang, in dem die Programmiersprache beschrieben wird, auf den Abschnitt „Programmsteuerung“ verweisen, können Sie die for-Schleife durch eine andere Art von Schleife ersetzen. Und probieren Sie aus, wie andere Zyklusarten funktionieren.

Obwohl ein Mikrocontroller-Prozessor wie jeder andere auch Berechnungen durchführen kann (weshalb er erfunden wurde) und dies beispielsweise in Geräten verwendet wird, besteht die typischste Operation für einen Mikrocontroller darin, den Port-Ausgang auf einen hohen oder niedrigen Wert zu setzen Zustand, also „Blinken der LED“ als Reaktion auf äußere Ereignisse.

Der Mikrocontroller erfährt über externe Ereignisse hauptsächlich durch den Zustand der Eingänge. Indem wir die Port-Pins auf einen digitalen Eingang setzen, können wir ihn überwachen. Wenn der Anfangszustand des Eingangs hoch ist und ein Ereignis dazu führt, dass der Eingang niedrig wird, können wir als Reaktion auf dieses Ereignis etwas unternehmen.

Das einfachste Beispiel ist ein Knopf am Eingang. Wenn die Taste nicht gedrückt wird, befindet sich der Eingang im High-Zustand. Wenn wir die Taste drücken, geht der Eingang auf Low und wir können die LED am Ausgang „aufleuchten lassen“. Beim nächsten Tastendruck kann die LED ausgeschaltet werden.

Dies ist wieder ein Beispiel für ein einfaches Programm. Selbst ein Anfänger könnte es uninteressant finden. Dieses einfache Programm kann jedoch auch durchaus nützliche Anwendungen finden. Ich gebe nur ein Beispiel: Nach dem Drücken der Taste leuchtet die LED nicht auf, sondern blinkt (auf eine bestimmte Weise). Und nehmen wir eine LED mit Infrarotstrahlung. Als Ergebnis erhalten wir ein Bedienfeld. Das ist so ein einfaches Programm.

Es gibt Unterschiede in der Beispielliste in verschiedenen Versionen des Programms. Sie können jedoch auf das Sprachhandbuch im Anhang zurückgreifen, das ein Beispiel und ein Programmdiagramm (im Beispielabschnitt „Anhang“ genannt) für die Arbeit mit Eingaben enthält. Ich kopiere das Programm:

int ledPin = 13;

pinMode(ledPin, OUTPUT);

pinMode(inPin, INPUT);

if (digitalRead(inPin) == HIGH)

digitalWrite(ledPin, HIGH);

digitalWrite(ledPin, LOW);

Und wie Sie sehen, erhalten wir durch die Modifikation des alten ein völlig neues Programm. Jetzt blinkt die LED nur, wenn die Taste gedrückt wird, die mit Pin 2 verbunden ist. Pin 2 ist über einen 10-kOhm-Widerstand mit dem gemeinsamen Kabel (Masse, GND) verbunden. Der Taster ist an einem Ende mit der +5V-Versorgungsspannung und am anderen Ende mit Pin 2 verbunden.

Im Programm stoßen wir auf ein neues Sprachkonstrukt aus dem Programmsteuerungsabschnitt. Es liest sich so: Wenn die Bedingung (in Klammern eingeschlossen) erfüllt ist, wird der in geschweiften Klammern eingeschlossene Programmblock ausgeführt. Beachten Sie, dass in der Bedingung (digitalRead(inPin) == HIGH) die Gleichheit des Eingangs mit dem High-Zustand über zwei Gleichheitszeichen erfolgt! Sehr oft wird dies in der Eile vergessen und die Bedingung erweist sich als falsch.

Das Programm kann kopiert und in das Arduino-Modul geladen werden. Um die Funktionsweise des Programms zu überprüfen, müssen Sie jedoch einige Änderungen am Moduldesign vornehmen. Dies hängt jedoch von der Art des Moduls ab. Das Originalmodul verfügt über Buchsen zum Anschluss an Erweiterungskarten. In diesem Fall können Sie an den gewünschten Stellen im Stecker geeignete Massivdrähte einführen. Mein Modul verfügt über Messerkontakte zum Anschluss an Erweiterungsplatinen. Ich kann entweder nach einem passenden Stecker suchen oder, was günstiger ist, einen passenden Sockel für den Chip in einem DIP-Gehäuse verwenden.

Die zweite Frage ist, wie finde ich die Modul-Pins, die im Programm verwendet werden?

Das Bild, das ich von der Website http://robocraft.ru/ gemacht habe, wird Ihnen helfen, das herauszufinden.

Reis. 4.1. Lage und Zweck der Controller- und Arduino-Modul-Pins

Alle Pins meines CraftDuino-Moduls sind beschriftet, sodass es einfach ist, den richtigen Pin zu finden. Sie können einen Knopf und einen Widerstand anschließen und die Funktion des Programms überprüfen. Auf der oben genannten RoboCraft-Website wird übrigens der gesamte Vorgang in Bildern dargestellt (das Programm zieht jedoch nicht genau die gleichen Schlussfolgerungen!). Ich rate Ihnen, nachzuschauen.

Viele Mikrocontroller enthalten zusätzliche Hardwaregeräte. So verfügt Atmega168, auf dessen Basis das Arduino-Modul aufgebaut ist, über einen UART, eine eingebaute Einheit zur Kommunikation mit anderen Geräten über seriellen Datenaustausch. Beispielsweise mit einem Computer über einen COM-Port. Oder mit einem anderen Mikrocontroller unter Verwendung seines integrierten UART-Blocks. Es gibt auch einen Analog-Digital-Wandler. Und ein Pulsweitenmodulationsformer.

Die Verwendung letzterer wird anhand eines Programms veranschaulicht, das ich ebenfalls von der RoboCraft-Website kopieren werde. Das Programm kann aber auch aus der Anwendung übernommen werden. Und vielleicht steht es in den Arduino-Programmbeispielen.

// Fading LED von BARRAGAN

int-Wert = 0; // Variable zum Speichern des gewünschten Werts

int ledpin = 9; // LED an digitalen Pin 9 angeschlossen

// PinMode-Funktion muss nicht aufgerufen werden

for(Wert = 0 ; Wert<= 255; value+=5) // постепенно зажигаем светодиод

analogWrite(ledpin, value); // Ausgabewert (von 0 bis 255)

Verzögerung(30); // warten 🙂

for(value = 255; value >=0; value-=5) // schalte die LED nach und nach aus

analogWrite(ledpin, value);

Wenn im vorherigen Programm die Funktion digitalRead(inPin), das Lesen digitaler Eingaben, für uns neu war, dann ist für uns in diesem Programm die Funktion analogWrite(ledpin, value) neu für uns, obwohl die Parameter dieser Funktion Variablen sind, die uns bereits bekannt sind . Wir werden später über die Verwendung des Analogeingangs mit einem ADC (Analog-Digital-Wandler) sprechen. Kehren wir nun zu allgemeinen Programmierproblemen zurück.

Programmieren ist etwas, das jeder kann, aber es wird einige Zeit dauern, sowohl das Programmieren als auch jede andere Programmiersprache zu beherrschen. Heutzutage gibt es eine Reihe von Programmen, die Ihnen helfen, das Programmieren zu meistern. Und einer davon steht in direktem Zusammenhang mit dem Arduino-Modul. Es heißt Scratch für Arduino oder kurz S4A. Sie können dieses Programm finden und herunterladen unter: http://seaside.citilab.eu/scratch/arduino. Ich weiß nicht genau, wie der Name des Programms übersetzt wird, aber „von vorne beginnen“ wird mit „von vorne beginnen“ übersetzt.

Auf der S4A-Projektwebsite gibt es Versionen für Windows und Linux, aber für das letztere Betriebssystem ist das Programm in der Debian-Distributionsversion zur Installation bereit. Ich möchte nicht sagen, dass es nicht mit anderen Linux-Distributionen verwendet werden kann, aber schauen wir uns zunächst an, wie man mit dem Arduino-Modul in Windows arbeitet.

Nach der gewohnten Installation des Programms können Sie über den Sprachschalter die Schnittstelle auf Russisch konfigurieren.

Reis. 4.2. Sprachumschaltung der Programmoberfläche

Wenn Sie auf das erste Symbol in der Symbolleiste klicken, werden alle möglichen Sprachen der Programmoberfläche angezeigt. Die russische Sprache finden Sie im Abschnitt...

Reis. 4.3. Liste der Sprachen zur Verwendung in der Programmoberfläche

... als „mehr…“ gekennzeichnet.

Wenn Sie nichts unternehmen, bleibt im rechten Fenster die Aufschrift „Searching board...“ bestehen, das Modul wird jedoch nicht gefunden. Um das Arduino-Modul mit dem S4A-Programm zu verbinden, müssen Sie etwas anderes von der Projektwebsite herunterladen.

Reis. 4.4. Datei zum Hochladen auf das Arduino-Modul für S4A

Diese Datei ist nichts anderes als ein Programm für Arduino (Sketch). Das heißt, eine Textdatei, die in den Arduino-Editor kopiert, kompiliert und in das Modul geladen werden kann. Nachdem Sie das Arduino-Programm beendet haben, können Sie das S4A-Programm ausführen und das Modul wird nun gefunden.

Reis. 4.5. Anschließen des Moduls an das Programm

Die analogen Eingänge des Moduls sind nicht verbunden, ebenso wenig wie die digitalen Eingänge, sodass sich die für das Modul angezeigten Werte ständig in zufälliger Weise ändern.

Guten Tag! Ich bin Alikin Alexander Sergeevich, Lehrer für Zusatzausbildung. Ich leite die Clubs „Robotik“ und „Funktechnik“ im Zentrum für Jugend und Jugendtechnologie in Labinsk. Ich möchte Ihnen etwas über eine vereinfachte Methode erzählen Arduino-Programmierung mit dem ArduBlock-Programm.

Ich habe dieses Programm in den Bildungsprozess eingeführt und bin mit dem Ergebnis zufrieden; es ist bei Kindern sehr gefragt, insbesondere beim Schreiben einfacher Programme oder bei der Erstellung einer Anfangsphase komplexer Programme. ArduBlock ist eine grafische Programmierumgebung, d. h. alle Aktionen werden mit gezeichneten Bildern mit signierten Aktionen auf Russisch ausgeführt, was das Erlernen der Arduino-Plattform erheblich vereinfacht. Dank dieses Programms können Kinder ab der 2. Klasse den Umgang mit Arduino problemlos erlernen.

Ja, jemand könnte sagen, dass Scratch immer noch existiert und es auch eine sehr einfache grafische Umgebung für die Arduino-Programmierung ist. Doch Scratch flasht den Arduino nicht, sondern steuert ihn nur über ein USB-Kabel. Arduino ist computerabhängig und kann nicht autonom arbeiten. Beim Erstellen eigener Projekte steht für Arduino die Autonomie im Vordergrund, insbesondere beim Erstellen von Robotergeräten.

Selbst bekannte LEGO-Roboter wie NXT oder EV3 sind für unsere Schüler mit dem Aufkommen des ArduBlock-Programms in der Arduino-Programmierung nicht mehr so ​​interessant. Arduino ist außerdem viel günstiger als alle LEGO-Bausätze und viele Komponenten können einfach aus alter Haushaltselektronik übernommen werden. Das ArduBlock-Programm hilft nicht nur Anfängern, sondern auch aktiven Benutzern der Arduino-Plattform.

Was ist also ArduBlock? Wie ich bereits sagte, handelt es sich hierbei um eine grafische Programmierumgebung. Fast vollständig ins Russische übersetzt. Aber das Highlight von ArduBlock ist nicht nur das, sondern auch die Tatsache, dass das von uns geschriebene ArduBlock-Programm in Arduino-IDE-Code konvertiert werden kann. Dieses Programm ist in die Arduino IDE-Programmierumgebung integriert, d. h. es ist ein Plugin.

Unten sehen Sie ein Beispiel einer blinkenden LED und eines konvertierten Programms in der Arduino IDE. Die gesamte Arbeit mit dem Programm ist sehr einfach und jeder Schüler kann es verstehen.

Durch die Arbeit mit dem Programm können Sie nicht nur Arduino programmieren, sondern auch Befehle lernen, die wir im Textformat der Arduino IDE nicht verstehen. Wenn Sie jedoch zu faul sind, Standardbefehle zu schreiben, können Sie diese schnell verwenden Zeichnen Sie mit der Maus ein einfaches Programm in ArduBlok und debuggen Sie es in der Arduino IDE.

Um ArduBlok zu installieren, müssen Sie zunächst die Arduino IDE von der offiziellen Arduino-Website herunterladen und installieren und die Einstellungen beim Arbeiten mit dem Arduino UNO-Board verstehen. Wie das geht, ist auf derselben Website oder auf Amperka beschrieben, oder schauen Sie es sich auf YouTube an. Wenn das alles geklärt ist, müssen Sie ArduBlok hier von der offiziellen Website herunterladen. Ich empfehle nicht, die neuesten Versionen herunterzuladen, sie sind für Anfänger sehr kompliziert, aber die Version vom 12.07.2013 ist die beste, diese Datei ist dort am beliebtesten.

Benennen Sie dann die heruntergeladene Datei in „ardublock-all“ um und legen Sie sie im Ordner „Dokumente“ ab. Wir erstellen die folgenden Ordner: Arduino > Tools > ArduBlockTool > Tool und legen in letzterem die heruntergeladene und umbenannte Datei ab. ArduBlok funktioniert auf allen Betriebssystemen, sogar unter Linux, ich habe es persönlich auf XP, Win7, Win8 getestet, alle Beispiele beziehen sich auf Win7. Die Installation des Programms ist für alle Systeme gleich.

Nun, um es einfach auszudrücken: Ich habe ein Archiv auf der 7z Mail-Festplatte vorbereitet und beim Entpacken finden Sie zwei Ordner. In einem befindet sich bereits ein funktionierendes Arduino IDE-Programm und im anderen Ordner muss der Inhalt an den Dokumentenordner gesendet werden.

Um in ArduBlok arbeiten zu können, müssen Sie die Arduino IDE ausführen. Dann gehen wir zur Registerkarte „Extras“ und finden dort das ArduBlok-Element, klicken darauf – und hier ist es, unser Ziel.

Schauen wir uns nun die Programmoberfläche an. Wie Sie bereits verstehen, gibt es darin keine Einstellungen, aber es gibt viele Symbole zum Programmieren und jedes von ihnen enthält einen Befehl im Arduino IDE-Textformat. Neue Versionen verfügen über noch mehr Symbole, daher ist es schwierig, die neueste Version von ArduBlok zu verstehen, und einige der Symbole sind nicht ins Russische übersetzt.

Im Bereich „Management“ finden wir verschiedene Zyklen.

Im Abschnitt „Anschlüsse“ können wir die Werte der Anschlüsse sowie des daran angeschlossenen Schallsenders, Servos oder Ultraschall-Näherungssensors verwalten.

Im Abschnitt „Zahlen/Konstanten“ können wir digitale Werte auswählen oder eine Variable erstellen, aber Sie werden wahrscheinlich nicht das Folgende verwenden.

Im Abschnitt „Operatoren“ finden wir alle notwendigen Vergleichs- und Berechnungsoperatoren.

Im Abschnitt „Dienstprogramme“ werden hauptsächlich zeitgesteuerte Symbole verwendet.

„TinkerKit Bloks“ ist der Abschnitt für gekaufte TinkerKit-Sensoren. Wir haben natürlich kein solches Set, aber das bedeutet nicht, dass die Icons nicht für andere Sets geeignet sind, im Gegenteil, es ist für die Jungs sehr praktisch, Icons wie das Einschalten einer LED oder eines zu verwenden Taste. Diese Zeichen werden in fast allen Programmen verwendet. Sie haben jedoch eine Besonderheit: Wenn Sie sie auswählen, werden falsche Portsymbole angezeigt. Sie müssen sie daher entfernen und das Symbol aus dem Abschnitt „Zahlen/Konstanten“ oben in der Liste ersetzen.

„DF Robot“ – dieser Abschnitt wird verwendet, wenn die darin angegebenen Sensoren vorhanden sind, sie werden manchmal gefunden. Und unser heutiges Beispiel ist keine Ausnahme, wir haben einen „einstellbaren IR-Schalter“ und einen „Zeilensensor“. Der „Zeilensensor“ unterscheidet sich von dem auf dem Bild, da er von der Firma Amperka stammt. Ihre Wirkungsweise ist identisch, der Ampere-Sensor ist jedoch viel besser, da er über einen Empfindlichkeitsregler verfügt.

„Seedstudio Grove“ – Ich habe die Sensoren in diesem Abschnitt nie verwendet, obwohl es nur Joysticks gibt. In neuen Versionen wurde dieser Abschnitt erweitert.

Und der letzte Abschnitt ist das „Linker Kit“. Auf die darin vorgestellten Sensoren bin ich nicht gestoßen.

Ich möchte ein Beispiel für ein Programm auf einem Roboter zeigen, der sich entlang eines Streifens bewegt. Der Roboter ist sehr einfach zusammenzubauen und zu kaufen, aber das Wichtigste zuerst. Beginnen wir mit der Anschaffung und Montage.

Hier ist der Teilesatz selbst, alles wurde auf der Amperka-Website gekauft.

  1. AMP-B001 Motorschutz (2 Kanäle, 2 A) 1.890 RUB
  2. AMP-B017 Troyka-Schild 1.690 RUB
  3. AMP-X053 Batteriefach 3×2 AA 1 60 RUR
  4. AMP-B018 Digitaler Liniensensor 2.580 RUB
  5. ROB0049 MiniQ zweirädrige Plattform RUB 1.1890
  6. SEN0019 Infrarot-Hindernissensor 1.390 RUB
  7. FIT0032 Halterung für Infrarot-Hindernissensor RUB 1,90
  8. A000066 Arduino Uno 1 1150 RUR

Zuerst bauen wir die Radplattform zusammen und löten die Drähte an die Motoren.

Dann werden wir Gestelle zur Befestigung installieren Arduino-Boards UNO, die von einem alten Motherboard oder ähnlichen Halterungen übernommen wurden.

Dann befestigen wir das Arduino UNO-Board an diesen Racks, aber wir können keine einzige Schraube festziehen – die Anschlüsse sind im Weg. Sie können sie natürlich auslöten, dies liegt jedoch in Ihrem Ermessen.

Als nächstes befestigen wir den Infrarot-Hindernissensor an seiner speziellen Halterung. Bitte beachten Sie, dass sich der Empfindlichkeitsregler oben befindet, um die Einstellung zu erleichtern.

Jetzt installieren wir digitale Zeilensensoren, hier müssen Sie ein paar Schrauben und 4 Muttern dafür suchen. Wir installieren zwei Muttern zwischen der Plattform selbst und dem Zeilensensor und befestigen die Sensoren mit dem Rest.

Als nächstes installieren wir Motor Shield, oder anders kann man es auch Motortreiber nennen. Achten Sie in unserem Fall auf den Jumper. Wir werden keine separate Stromversorgung für die Motoren verwenden, daher wird diese an dieser Position installiert. Der untere Teil ist mit Isolierband versiegelt, um für alle Fälle versehentliche Kurzschlüsse durch den Arduino UNO USB-Anschluss zu verhindern.

Wir installieren Troyka Shield oben auf dem Motor Shield. Dies ist für den bequemen Anschluss von Sensoren erforderlich. Alle von uns verwendeten Sensoren sind digital, daher werden die Liniensensoren an den Ports 8 und 9, wie sie auch Pins genannt werden, angeschlossen, und der Infrarot-Hindernissensor wird an Port 12 angeschlossen. Beachten Sie unbedingt, dass Sie die Ports 4, 5, 6, 7 nicht verwenden können, da sie von Motor Shield zur Steuerung von Motoren verwendet werden. Ich habe diese Anschlüsse sogar extra mit einem roten Marker übermalt, damit die Schüler es herausfinden konnten.

Wenn Sie es bereits bemerkt haben, habe ich für alle Fälle eine schwarze Buchse hinzugefügt, damit das von uns installierte Batteriefach nicht herausfliegt. Und zum Schluss sichern wir die gesamte Struktur mit einem normalen Gummiband.

Es gibt 2 Arten von Batteriefachanschlüssen. Erster Anschluss von Drähten an Troyka Shield. Es besteht auch die Möglichkeit, den Netzstecker anzulöten und mit der Arduino UNO-Platine selbst zu verbinden.

Unser Roboter ist bereit. Bevor Sie mit dem Programmieren beginnen, müssen Sie lernen, wie alles funktioniert, nämlich:
- Motoren:
Die Anschlüsse 4 und 5 werden zur Steuerung eines Motors verwendet, die Anschlüsse 6 und 7 für den anderen;
Die Drehzahl der Motoren regeln wir per PWM an den Ports 5 und 6;
Vorwärts oder rückwärts durch Senden von Signalen an die Ports 4 und 7.
- Sensoren:
Wir sind alle digital, daher geben sie logische Signale in Form von 1 oder 0;
Und um sie einzustellen, verfügen sie über spezielle Regler und können mit Hilfe eines geeigneten Schraubendrehers kalibriert werden.

Einzelheiten finden Sie bei Amperke. Warum hier? Denn es gibt viele Informationen zum Arbeiten mit Arduino.

Nun, wir haben uns wahrscheinlich alles oberflächlich angesehen, es studiert und natürlich den Roboter zusammengebaut. Jetzt muss es programmiert werden, hier ist es – das lang erwartete Programm!

Und das Programm wurde in die Arduino IDE konvertiert:

Void setup() ( pinMode(8 , INPUT); pinMode(12 , INPUT); pinMode(9 , INPUT); pinMode(4 , OUTPUT); pinMode(7 , OUTPUT); pinMode(5, OUTPUT); pinMode(6 , OUTPUT); ) void loop() ( if (digitalRead(12)) ( if (digitalRead(8)) ( if (digitalRead(9)) ( digitalWrite(4 , HIGH); analogWrite(5, 255); analogWrite( 6, 255); digitalWrite(7 , HIGH); ) else ( digitalWrite(4 , HIGH); analogWrite(5, 255); analogWrite(6, 50); digitalWrite(7 , LOW); ) ) else ( if (digitalRead (9)) ( digitalWrite(4, LOW); analogWrite(5, 50); analogWrite(6, 255); digitalWrite(7, HIGH); ) else ( digitalWrite(4, HIGH); analogWrite(5, 255); analogWrite(6, 255); digitalWrite(7 , HIGH); ) ) ) else ( digitalWrite(4 , HIGH); analogWrite(5, 0); analogWrite(6, 0); digitalWrite(7 , HIGH); ) )

Abschließend möchte ich sagen, dass dieses Programm einfach ein Geschenk des Himmels für die Bildung ist; sogar für das Selbststudium wird es Ihnen helfen, Arduino IDE-Befehle zu erlernen. Das größte Highlight ist, dass es bei mehr als 50 Installationssymbolen zu „Störungen“ kommt. Ja, das ist in der Tat das Highlight, denn wenn man die ganze Zeit nur auf ArduBlok programmiert, lernt man nicht, in der Arduino IDE zu programmieren. Der sogenannte „Glitch“ gibt Ihnen die Möglichkeit, über Befehle für ein präzises Debuggen von Programmen nachzudenken und sich diese zu merken.

Ich wünsche Ihnen Erfolg.

Sie haben also einen Prozessor. Sie verstehen wahrscheinlich, dass der Prozessor irgendwie so programmiert werden kann, dass er tut, was Sie wollen. Damit nützliche Arbeit geleistet werden kann, ist es notwendig, (a) ein nützliches Programm zu schreiben und (b) es dem Prozessor zur Ausführung zu übergeben.

Im Allgemeinen spielt es keine Rolle, welchen Prozessortyp Sie haben: den neuesten Intel Pentium in Ihrem Laptop oder einen Mikrocontroller auf einem Arduino-Board. Prinzipien zum Schreiben eines Programms, d.h. Programmierung, in beiden Fällen das Gleiche. Der einzige Unterschied besteht in der Geschwindigkeit und dem Funktionsumfang für die Arbeit mit anderen Geräten.

Was ist ein Programm und wo schreibt man es?

Der Prozessor ist trotz aller Komplexität der Produktion im Wesentlichen eine recht einfache und unkomplizierte Sache. Er weiß nicht, wie man denkt. Er kann die ihm gegebenen Anweisungen nur blind, Byte für Byte, ausführen. Ein grobes Beispiel für die Reihenfolge der Anweisungen kann gegeben werden:

BefehlsbyteWas bedeutet das für den Prozessor?
00001001 bedeutet: Nehmen Sie das nächste Byte und speichern Sie es in Zelle Nr. 1
00000110 ...das ist genau das nächste Byte, an das wir uns in Zelle Nr. 1 erinnern: die Zahl 5
00011001 bedeutet: Eins vom Wert in Zelle Nr. 1 subtrahieren und das aktualisierte Ergebnis dort belassen
00101001 bedeutet: Vergleichen Sie den Wert in Zelle Nr. 1 mit Null und wenn er Null ist, springen Sie durch so viele Bytes, wie im nächsten Byte angegeben
00000100 ...wenn das Ergebnis Null war, wollen wir 4 Bytes zur vorletzten Anweisung springen
10000011
01000001 ...der Buchstabe „A“ entspricht genau diesem Code
00101000 bedeutet, dass wir so viele Bytes zurückspringen wollen, wie im nächsten Byte angegeben sind
00000110 ...wir springen 6 Bytes zurück zur Anweisung Nr. 3
10000011 bedeutet, dass wir das Zeichen anzeigen möchten, dessen Code in das nächste Byte geschrieben wird
00100001 ...Zeichen "!" Dieser Code stimmt genau überein

Als Ergebnis der Ausführung dieser Befehlsfolge wird der Paniksatz „AHHH!“ auf dem Bildschirm angezeigt.

Ziemlich viel Code für einen so einfachen Zweck! Es ist klar, dass die Entwicklung komplexer Produkte Jahrhunderte dauern würde, wenn alle Programme direkt auf diese Weise geschrieben würden.

Warum werden Programmiersprachen benötigt?

Um die Aufgabe millionenfach zu vereinfachen, wurden Programmiersprachen erfunden. Es gibt viele davon, und selbst von denen, die man ständig hört, kann man sich schnell ein oder zwei Dutzend merken: Assembler, C, C++, C#, Java, Python, Ruby, PHP, Scala, JavaScript.

Programme in diesen Sprachen sind der natürlichen menschlichen Sprache viel näher. Und deshalb sind sie einfacher, schneller und angenehmer zu schreiben und vor allem viel einfacher lesen: an Sie direkt nach dem Schreiben, an Sie ein Jahr später oder an Ihren Kollegen.

Das Problem ist, dass solche Sprachen für den Prozessor nicht verständlich sind und bevor Sie ihm dieses Programm geben, müssen Sie es verstehen kompilieren: Aus der natürlichen Sprache in dieselben Anweisungen in Form von Nullen und Einsen übersetzen. Dies geschieht durch aufgerufene Programme Compiler. Jede Sprache hat ihren eigenen Compiler, es sei denn, sie verbleibt auf der Fantasy-Ebene. Für gängige Sprachen stehen meist mehrere zur Auswahl, von unterschiedlichen Herstellern und für unterschiedliche Plattformen. Die meisten davon sind im Internet frei verfügbar.

Es gibt also Programme in einer Sprache, die für Menschen völlig verständlich ist: Sie werden auch „Quellcode“, einfach „Code“ oder „Quellcodes“ genannt. Sie werden mit in einfache Textdateien geschrieben beliebig Texteditor, sogar mit Notepad. Dann werden sie mithilfe des Compilers in für den Prozessor verständliche Mengen von Nullen und Einsen umgewandelt: Der Compiler erhält den Quellcode als Eingabe und erstellt ihn binäre ausführbare Datei, die für den Prozessor verständliche.

Binärdateien sind nicht lesbar und im Allgemeinen nur für die Ausführung durch den Prozessor bestimmt. Sie können unterschiedlicher Art sein, je nachdem, wofür sie empfangen wurden: .exe sind Programme für Windows, .hex sind Programme zur Ausführung durch einen Arduino-Mikrocontroller usw.

Warum gibt es so viele Programmiersprachen und was ist der Unterschied?

    Warum? Denn es gibt viele Menschen und Unternehmen auf der Erde, und viele glaubten, sie könnten das Beste machen: bequemer, übersichtlicher, schneller, schlanker.

    Was ist der Unterschied: Verschiedene Sprachen haben ein unterschiedliches Gleichgewicht zwischen Schreibgeschwindigkeit, Lesbarkeit und Ausführungsgeschwindigkeit.

Schauen wir uns dasselbe Programm an, das in verschiedenen Programmiersprachen ein Lied über 99 Flaschen Bier auf dem Bildschirm anzeigt.

Zum Beispiel die Perl-Sprache. Es ist schnell geschrieben; es ist unmöglich zu verstehen, was der Programmierer meinte; langsam ausgeführt:

sub b( $n = 99 - @_ - $_ || No; "$n Flasche" . "s" x!!-- $n . "Bier" ); $w = "an der Wand" ; die Karte ( b. "$w, \N". B. ", \nNimm eins runter, gib es herum,\n ". b(0) . „$w. \n\n"} 0 .. 98

Java-Sprache. Das Schreiben dauert relativ lange; leicht zu lesen; wird recht schnell ausgeführt, nimmt aber viel Speicher in Anspruch:

Klasse Flaschen ( public static void main( Zeichenfolge args) ( Zeichenfolge s = "s" ; for (int beers= 99 ; beers>- 1 ; ) ( System.out .print (Beers + „Flasche“ + s + „Bier an der Wand“, ); System.out .println (beers + „bottle“ + s + „bier,“ ); if (Biere== 0 ) ( System.out .print ( „Geh in den Laden, kaufe noch mehr“) ; System.out .println ( „99 Flaschen Bier an der Wand.\n „) ; System.exit(0); ) anders System.out .print ( „Nimm eins runter, gib es herum“); s = (-- Biere == 1)? "" : "S" ; System.out .println (Biere + „Flasche“ + s + " Bier an der Wand.\n ") ; } } }

Assemblersprache. Das Schreiben dauert lange; schwierig zu lesen; wird sehr schnell ausgeführt:

Codesegment angenommen cs:code, ds:code org 100h start:; Hauptschleife mov cx, 99; Flaschen zum Starten mit Loopstart: call printcx ; druckt die Zahl mov dx , Offset line1 ; Drucken Sie den Rest der ersten Zeile aus mov ah, 9; MS-DOS-Druck-String-Routine int 21h call printcx ; Gibt die Zahl mov dx aus, Offset line2_3 ; Rest der 2. und 3. Zeile mov ah, 9 int 21h dec cx; Nehmen Sie einen Down-Call-Aufruf printcx ; Gibt die Zahl mov dx aus, Offset line4 ; Drucken Sie den Rest der vierten Zeile aus mov ah, 9 int 21h cmp cx, 0; Kein Bier mehr? jne loopstart ; Wenn nicht, fahren Sie fort int 20h ; Wechseln Sie zu MS-DOS ; Unterprogramm zum Ausdrucken des CX-Registers in Dezimalzahl printcx: mov di , offset numbufferend ; Füllen Sie den Puffer vom Ende her auf mov axt, cx ; Geben Sie die Zahl in AX ein, damit wir sie dividieren können printcxloop: mov dx, 0 ; höherwertiges Wort des Zählers – immer 0 MOV-Bx, 10 Div-Bx ; Teilen Sie DX:AX durch 10. AX=Quotient, DX=Rest dl hinzufügen, „0“ ; Rest in ein ASCII-Zeichen umwandeln mov[ds:di],dl; lege es in den Druckpuffer cmp ax, 0; Sind noch weitere Ziffern zu berechnen? je printcxend; Wenn nicht, beenden Sie Dez. Di ; Setzen Sie die nächste Ziffer vor die aktuelle jmp printcxloop ; Schleife printcxend: mov dx , di ; Drucken, beginnend mit der letzten berechneten Ziffer mov ah, 9 int 21h ret; Datenleitung1 db „Bierflaschen an der Wand“, 13 , 10 , „$“ line2_3 db „Flaschen Bier“, 13 , 10 , „Nimm eins runter, gib es herum“, 13 , 10 , „$“ line4 db „Bierflaschen an der Wand.“, 13 , 10 , 13 , 10 , „$“ numbuffer db 0 , 0 , 0 , 0 , 0 numbufferend db 0 , „$“ Code endet Ende Anfang

Wie wird Arduino programmiert?

Wenn wir über Arduino oder Mikrocontroller von Atmel sprechen, in welcher Sprache kann man Programme dafür schreiben? Die theoretische Antwort: beliebig. Doch in der Praxis beschränkt sich die Auswahl auf die Sprachen Assembler, C und C++. Dies liegt daran, dass im Vergleich zu Desktop-Computer Sie verfügen nur über sehr begrenzte Ressourcen. Kilobyte Speicher, nicht Gigabyte. Megahertz auf dem Prozessor, nicht Gigahertz. Dies ist ein Preis für Billigkeit und Energieeffizienz.

Deshalb brauchen wir eine Sprache, die effizient kompilieren und ausführen kann. Das heißt, es wird so optimal wie möglich in genau diese Nullen und Einsen aus Anweisungen übersetzt, ohne wertvolle Anweisungen und Speicher zu verschwenden. Die oben genannten Sprachen verfügen über diese Effizienz. Mit ihnen können Sie selbst innerhalb der engen Grenzen der Mikrocontroller-Ressourcen funktionsreiche Programme schreiben, die schnell ausgeführt werden.

Assembler kann, wie Sie gesehen haben, nicht als die einfachste und eleganteste bezeichnet werden und daher ist C/C++ die Flaggschiffsprache für Arduino.

Viele Quellen sagen, dass Arduino in der Sprache Arduino, Processing, Wiring programmiert ist. Das ist keine ganz richtige Aussage. Arduino ist in C/C++ programmiert und das, was man mit diesen Worten nennt, ist einfach ein praktisches „Bodykit“, mit dem Sie viele häufig auftretende Probleme lösen können, ohne das Rad jedes Mal neu erfinden zu müssen.

Warum werden C und C++ im selben Satz erwähnt? C++ ist eine Überstruktur von C. Jedes C-Programm ist ein gültiges C++-Programm, aber nicht umgekehrt. Sie können beides verwenden. Meistens denken Sie bei der Lösung des aktuellen Problems nicht einmal darüber nach, was Sie verwenden.

Näher am Punkt: das erste Programm

Schreiben wir das erste Programm für Arduino und lassen es vom Board ausführen. Sie müssen eine Textdatei mit dem Quellcode erstellen, diese kompilieren und die resultierende Binärdatei an den Mikrocontroller auf der Platine weiterleiten.

Gehen wir der Reihe nach vor. Schreiben wir den Quellcode. Sie können es im Editor oder einem anderen Editor schreiben. Um die Arbeit jedoch komfortabler zu gestalten, gibt es sogenannte Entwicklungsumgebungen (IDE: Integrated Development Environment). Sie bieten in Form eines einzigen Werkzeugs und Texteditor mit Hintergrundbeleuchtung und Hinweisen, einem per Knopfdruck gestarteten Compiler und vielen anderen Freuden. Für Arduino heißt diese Umgebung Arduino IDE. Es steht auf der offiziellen Website kostenlos zum Download zur Verfügung.

Installieren Sie die Umgebung und führen Sie sie aus. Im erscheinenden Fenster sehen Sie: Der größte Teil des Platzes ist dem Texteditor vorbehalten. Der Code ist darin geschrieben. Code wird in der Arduino-Welt auch genannt skizzieren.

Schreiben wir also eine Skizze, die nichts bewirkt. Das heißt, das Minimum, das möglich ist das richtige Programm in C++, was nur Zeit verschwendet.

void setup() ( ) void loop() ( )

Konzentrieren wir uns zunächst nicht auf die Bedeutung des geschriebenen Codes. Kompilieren wir es. Zu diesem Zweck gibt es in der Arduino IDE in der Symbolleiste eine Schaltfläche „Verifizieren“. Klicken Sie darauf und in wenigen Sekunden ist die Binärdatei fertig. Dies wird durch die Aufschrift „Fertig kompilieren“ unter dem Texteditor angezeigt.

Als Ergebnis haben wir eine Binärdatei mit der Endung .hex, die vom Mikrocontroller ausgeführt werden kann.

Jetzt müssen Sie es in den Arduino stecken. Dieser Vorgang wird Booten, Flashen oder Flooding genannt. Zum Hochladen auf die Arduino IDE gibt es in der Symbolleiste eine Schaltfläche „Hochladen“. Verbinden Sie den Arduino über ein USB-Kabel mit Ihrem Computer, klicken Sie auf „Hochladen“ und in wenigen Augenblicken wird das Programm auf den Arduino hochgeladen. In diesem Fall wird das zuvor vorhandene Programm gelöscht.

Die erfolgreiche Firmware wird durch die Aufschrift „Done Uploading“ angezeigt.

Wenn beim Herunterladen ein Fehler auftritt, stellen Sie sicher, dass:

    Wählen Sie im Menü Extras → Platine den Port aus, an dem das Arduino tatsächlich angeschlossen ist. Sie können das USB-Kabel ein- und ausstecken, um zu sehen, welcher Anschluss angezeigt und ausgeblendet wird: Dies ist der Arduino.

    Sie haben installiert notwendige Treiber für Arduino. Dies ist unter Windows erforderlich, unter Linux nicht erforderlich und nur auf älteren Duemilanove-Boards vor Arduino unter MacOS erforderlich.

Glückwunsch! Sie haben den Weg von einem unbeschriebenen Blatt zu einem funktionierenden Programm in Arduino gefunden. Sie macht vielleicht nichts, aber das ist schon ein Erfolg.

Die Zielgruppe von Arduino sind Laienanwender im Bereich Robotik und einfache Automatisierungssysteme. Das Hauptprodukt ist eine Reihe von Brettern, die durch Kombination erstellt werden können verschiedene Geräte in der Lage, ein breites Aufgabenspektrum zu erfüllen.

Aus einem Satz Bretter dieser Firma können Sie beispielsweise einen Futterautomaten für Ihre Haustiere zusammenstellen. Und das ist nur eines der einfachsten Beispiele. Der Umfang ihrer möglichen Anwendung wird nur durch die Vorstellungskraft der Benutzer begrenzt.

Zusätzlich zu den unter der Marke Arduino hergestellten Leiterplatten verfügen sie über eine eigene Arduino-Programmiersprache, die auf einer unter Programmierern weithin bekannten Sprache basiert C/C++. Schauen wir uns genauer an, was es ist.

Die Programmiersprache Arduino ist recht einfach zu erlernen, da die Hauptsprache Zielgruppe seine Anwendungen sind Amateure. Sie gilt jedoch als eine der besten Sprachen zur Programmierung von Mikrocontrollern.

Arduino IDE ist kostenloses Programm, das jeder herunterladen kann. Auf unserer Website können Sie jede für Sie passende Version der Umgebung nutzen. Außerdem ist der Zugang zum Download der IDE auf der offiziellen Website des Unternehmens möglich, und auf Wunsch kann den Entwicklern mit einer Geldüberweisung gedankt werden.

Ein in der Programmiersprache Arduino geschriebenes Programm wird Sketch genannt. Fertige Skizzen werden zur Ausführung an der Tafel festgehalten.

Die IDE wird unterstützt von: Betriebssysteme wie Windows, MacOs und Linux. Das heißt es auf der offiziellen Website des Unternehmens gegebene Sprache Die Programmierung ist in Wiring geschrieben, existiert aber tatsächlich nicht und wird mit geringfügigen Änderungen in C++ geschrieben.

Was benötigen Sie, um mit der Arduino IDE zu beginnen?

Um loszulegen, benötigen wir folgende Dinge:

  • Arduino-Boards;
  • USB-Kabel;
  • ein Computer, auf dem die Arduino IDE installiert ist.

Mit diesem Set können Sie mit den vorhandenen Tafeln experimentieren und Ihre ersten Skizzen darauf aufzeichnen.

Wie richte ich Arduino auf einem Computer ein?

Dies geschieht einfach. Sie müssen Folgendes tun:

  • Sie müssen das von Ihnen zusammengestellte Produkt über ein USB-Kabel an Ihren Computer anschließen.
  • Im Geräte-Manager müssen Sie prüfen, an welchen Port Ihr Mikrocontroller angeschlossen ist. Wenn es nicht angezeigt wird oder es heißt, dass das Gerät nicht erkannt wird, bedeutet das, dass Sie den Treiber nicht richtig installiert haben oder dass Ihr Board eine Diagnose benötigt;
  • Der nächste Schritt besteht darin, unsere Programmiersprache Arduino IDE zu starten. Im Menü müssen Sie die Registerkarte Extras auswählen. Wenn Sie darauf klicken, öffnet sich eine Liste, in der Sie das Portelement auswählen müssen. Dort müssen Sie den im Gerätemanager angegebenen Port auswählen;
  • Der letzte Schritt besteht darin, das Board auszuwählen, das wir zum Hochladen der Skizzen verwenden möchten.

Wichtig! Wenn Sie Ihr Board mit einem anderen verbinden USB-Anschluss Alle Einstellungen müssen erneut vorgenommen werden.

Einführung in die Arduino-Schnittstelle

Eines der Hauptelemente von Arduino ist das Hauptmenü des Programms, über das Sie auf alles zugreifen können verfügbaren Funktionen Unser Programm.

Unten finden Sie ein Panel mit Symbolen, die die am häufigsten verwendeten Funktionen der Arduino IDE anzeigen:

  • auf Fehler prüfen;
  • Erstellen einer neuen Skizze;
  • Öffnen des Mikrocontroller-Portfensters;
  • Das nächstwichtigste Element ist die Registerkarte „Projektdateien“. Wenn es sich um eine einfache Skizze handelt, gibt es nur eine Datei. Komplexe Skizzen können jedoch aus mehreren Dateien bestehen. In diesem Fall können Sie in der Registerkartenleiste schnell von einer Datei zur anderen wechseln. Es ist sehr bequem.

    Der größte der Blöcke ist das Editorfeld für unsere Skizzen. Hier können wir den von uns benötigten Programmcode einsehen und ggf. bearbeiten. Ein separates Feld zur Anzeige von Systemmeldungen wurde implementiert. Damit können Sie überprüfen, ob das Speichern oder Laden Ihrer Skizze erfolgreich war, und mit den nächsten Schritten fortfahren. Außerdem gibt es im Programm ein Fenster, das beim Kompilieren das Vorhandensein Ihrer Skizze anzeigt.

    Zusammenstellung– Transformation Quellcode Hochsprache in Maschinencode oder Assemblersprache umwandeln.

    Grundfunktionen der Programmiersprache

    Kommen wir abschließend zu den grundlegendsten Funktionen der Arduino-Programmiersprache.

    Nehmen wir gleich an, dass Sie alle Funktionen auf unserer praktischen Website finden.

    Punkt mit Komma;

    Auf jede in der Programmiersprache Arduino geschriebene Anweisung muss ein Semikolon folgen. Zum Beispiel:

    Int LEDpin = 9;

    In diesem Ausdruck weisen wir einer Variablen einen Wert zu und beachten das Semikolon am Ende. Dies teilt dem Compiler mit, dass Sie einen Codeabschnitt fertiggestellt haben und mit dem nächsten Abschnitt fortfahren. Ein Semikolon im Arduino-Code trennt einen vollständigen Ausdruck von einem anderen.

    Doppelter Backslash für einzeilige Kommentare //

    // Alles, was nach dem doppelten Schrägstrich kommt, wird grau dargestellt und vom Programm nicht gelesen

    Mit Kommentaren kommentieren Sie Code aus. Guter Code gut kommentiert. Kommentare sollen Ihnen und allen anderen, die möglicherweise auf Ihren Code stoßen, sagen, was Sie gedacht haben, als Sie ihn geschrieben haben. Ein guter Kommentar wäre etwa so:

    // Eine LED an diesen Arduino-Pin anschließen int LEDpin = 9;

    Wenn ich mir dieses Programm jetzt auch nach 3 Monaten ansehe, weiß ich, wo die LED angeschlossen war.

    Der Compiler ignoriert Kommentare, sodass Sie schreiben können, was Sie möchten. Wenn Sie viel Text für einen Kommentar benötigen, können Sie einen der folgenden mehrzeiligen Kommentare verwenden:

    /* Ein mehrzeiliger Kommentar wird mit einem einzelnen Backslash gefolgt von einem Sternchen geöffnet. Alles Folgende wird ausgegraut und vom Compiler ignoriert, bis Sie den Kommentar schließen, indem Sie zuerst ein Sternchen und dann einen Backslash */ verwenden.

    Kommentare ähneln Code-Fußnoten, kommen jedoch häufiger vor als solche, die am Ende der Seiten von Büchern platziert werden.

    Geschweifte Klammern ( )

    Geschweifte Klammern werden verwendet, um Anweisungen hinzuzufügen, die von einer Funktion ausgeführt werden sollen (wir werden später auf Funktionen eingehen). Es gibt immer eine offene geschweifte Klammer und eine schließende geschweifte Klammer. Wenn Sie vergessen, eine geschweifte Klammer zu schließen, gibt der Compiler einen Fehlercode aus.

    Void loop() ( //diese geschweifte Klammer wird geöffnet //cooles Programm hier) //diese geschweifte Klammer wird geschlossen

    Denken Sie daran: Keine geschweifte Klammer darf offen bleiben!

    Funktionen ()

    Jetzt ist es an der Zeit, über Funktionen zu sprechen. Funktionen sind Codeteile, die so oft verwendet werden, dass sie in bestimmte Codes gekapselt sind Stichworte damit Sie sie einfacher verwenden können. Eine Funktion könnte beispielsweise die folgende Anweisung sein, wenn Sie Ihren Hund waschen müssen:

    1. Holen Sie sich einen Eimer
    2. Füllen Sie es mit Wasser
    3. Seife hinzufügen
    4. Finde einen Hund
    5. Schäume den Hund ein
    6. Waschen Sie den Hund
    7. Spülen Sie den Hund ab
    8. Trockne den Hund
    9. Stellen Sie den Eimer beiseite

    Dieses Set einfache Anleitung kann in einer Funktion gekapselt werden, die wir WashDog nennen können. Jedes Mal, wenn wir alle diese Anweisungen ausführen möchten, geben wir einfach WashDog ein und voilà – alle Anweisungen werden ausgeführt.

    Arduino verfügt über bestimmte Funktionen, die häufig im verwendet werden. Wenn Sie sie eingeben, ist der Funktionsname orange. Beispielsweise ist die Funktion pinMode() eine gängige Funktion, die verwendet wird, um den Arduino-Pin-Modus anzuzeigen.

    Was ist mit den Klammern nach der PinMode-Funktion? Viele Funktionen erfordern Argumente. Ein Argument sind Informationen, die eine Funktion bei ihrer Ausführung verwendet. Für unsere WashDog-Funktion können die Argumente der Name des Hundes und die Art der Seife sowie die Temperatur und die Größe des Eimers sein.

    PinMode(13, OUTPUT); //Setzt den Arduino-Ausgabemodus

    Argument 13 bezieht sich auf Pin 13 und OUTPUT ist der Modus, in dem der Pin arbeiten soll. Wenn Sie diese Argumente eingeben, wird dies in der Terminologie als Datenübergabe bezeichnet. Sie übergeben notwendige Informationen in Funktion. Nicht alle Funktionen erfordern Argumente, die öffnenden und schließenden Klammern bleiben jedoch leer, wenn auch leer.

    Millis(); //Erhält die Zeit in Millisekunden, die der Arduino startet

    Beachten Sie, dass das Wort OUTPUT normalerweise blau ist. Es gibt bestimmte Schlüsselwörter in der Arduino-Programmiersprache, die häufig verwendet werden und die Farbe Blau hilft, sie zu identifizieren. Die Arduino IDE färbt sie automatisch blau.

    void setup()

    Die Funktion setup() wird, wie der Name schon sagt, zur Konfiguration des Arduino-Boards verwendet. Arduino führt den gesamten Code, der zwischen den geschweiften Klammern nach setup() enthalten ist, nur einmal aus. Typische Dinge, die in setup() passieren, sind zum Beispiel das Setzen des Modus auf Kontakte:

    Void setup() ( //Code zwischen geschweiften Klammern wird nur einmal ausgeführt)

    Sie fragen sich vielleicht, was void vor der Funktion setup() bedeutet. Void bedeutet, dass die Funktion keine Informationen zurückgibt.

    Einige Funktionen geben Werte zurück – unsere DogWash-Funktion kann die Anzahl der Eimer zurückgeben, die zum Reinigen eines Hundes erforderlich sind. Die Funktion analogRead() gibt einen ganzzahligen Wert zwischen 0 und 1023 zurück. Wenn Ihnen das jetzt etwas seltsam vorkommt, machen Sie sich keine Sorgen, denn wir werden im weiteren Verlauf des Kurses alle gängigen Arduino-Funktionen behandeln.

    Schauen wir uns ein paar Dinge an, die Sie über setup() wissen sollten:

    1. setup() wird nur einmal ausgeführt;
    2. setup() sollte die erste Funktion in der Arduino-Skizze sein;
    3. setup() muss öffnende und schließende geschweifte Klammern haben.

    Leere Schleife()

    Man muss die Arduino-Entwickler lieben, weil sie dafür gesorgt haben, dass die Funktionsnamen für sich sprechen. Wie der Name schon sagt, wird der gesamte Code zwischen den geschweiften Klammern in loop() immer wieder wiederholt, und das Wort „loop“ bedeutet wörtlich „Schleife“. Mit der Funktion „loop()“ wird der Hauptteil Ihres Programms abgelegt.

    Wie bei setup() gibt auch loop() keinen Wert zurück, daher steht vor ihm das Wort void.

    Void loop() ( //jeder hier angegebene Code wird immer wieder ausgeführt)

    Kommt es Ihnen seltsam vor, dass der Code in einer großen Schleife läuft? Dieser scheinbare Mangel an Variation ist eine Illusion. Der Großteil Ihres Codes verfügt über bestimmte Wartebedingungen, die neue Aktionen auslösen.

    Gibt es andere Programme, die mit Arduino funktionieren?

    Neben der offiziellen Arduino IDE gibt es Programme Drittentwickler, die ihre Produkte für die Arbeit mit Arduino-basierten Mikrocontrollern anbieten.

    Eine ähnliche Reihe von Funktionen kann uns ein Programm namens „Processing“ zur Verfügung stellen. Es ist der Arduino IDE sehr ähnlich, da beide auf derselben Engine basieren. Processing verfügt über einen umfangreichen Funktionsumfang, der dem Originalprogramm in nichts nachsteht. Mit Hilfe der herunterladbaren seriellen Bibliothek kann der Benutzer eine Verbindung zwischen der Datenübertragung herstellen, die die Karte und die Verarbeitung untereinander übertragen. In diesem Fall können wir die Karte dazu bringen, Programme direkt von unserem PC aus auszuführen.

    Es gibt noch eine weitere interessante Version Originalprogramm. Es heißt B4R und sein Hauptunterschied besteht darin, dass es nicht die Sprache C als Basis verwendet, sondern eine andere Programmiersprache – Basic. Dieses Softwareprodukt ist kostenlos. Um damit zu arbeiten gibt es gute Tutorials, einschließlich derjenigen, die von den Erstellern dieses Produkts verfasst wurden.

    Es gibt auch kostenpflichtige Optionen für die Arduino IDE. Eines davon ist das PROGROMINO-Programm. Sein Hauptvorteil ist die Möglichkeit der Code-Vervollständigung. Beim Zusammenstellen eines Programms müssen Sie nicht mehr in Fachbüchern nach Informationen suchen. Das Programm selbst bietet Ihnen Möglichkeiten mit dem einen oder anderen Verfahren. Ihr Set umfasst noch viel mehr interessante Funktionen, die im Originalprogramm fehlen und Ihnen die Arbeit mit Boards erleichtern können.

    Arduino-Konkurrenten

    Dieser Markt für die Herstellung von Mikrocontrollern zur Erstellung verschiedener elektronische Schaltkreise und Robotik hat viele Fans auf der ganzen Welt. Diese Situation trägt dazu bei, dass auf dem Markt nicht nur Wettbewerber entstehen, die ähnliche Produkte anbieten. Darüber hinaus werden zahlreiche Fälschungen unterschiedlicher Qualität hergestellt. Einige lassen sich aufgrund der identischen Qualität nur sehr schwer von den Originalen unterscheiden, andere weisen sehr schlechte Eigenschaften auf und funktionieren möglicherweise überhaupt nicht mit den Originalprodukten.

    Es gibt sogar Arduino-Boards, die Mikroprozessoren unterstützen, auf denen JavaScript-Interpreter ausgeführt werden. Sie sind vor allem für diejenigen relevant, die sie nutzen möchten Java-Sprache statt C. Schließlich ist es einfacher und ermöglicht schnellere Ergebnisse. Allerdings sind diese Platinen im Vergleich zu Arduino teurer, was einen erheblichen Nachteil darstellt.

    Wenn Sie auf der Suche nach einem Hobby sind und sich für einen Bereich wie Elektrotechnik interessieren, können Sie sich dafür getrost für Arduino entscheiden. Dieses Hobby hat viele Vorteile. Sie werden sich intellektuell weiterentwickeln diese Lektion erfordert Kenntnisse in verschiedenen Bereichen.

    Neben der Unterhaltung hilft Ihnen Ihr Hobby dabei, viele nützliche Produkte zu entwickeln, mit denen Sie Ihren Alltag erleichtern können. Jedes Mal werden Sie immer neue Möglichkeiten finden, Ihre Leidenschaft zu nutzen.

    Dank der Verfügbarkeit einer großen Anzahl von Lehrbüchern und Tutorials wird es nicht so schwierig sein, diese Aktivität zu meistern. In Zukunft werden Sie auf der ganzen Welt viele Gleichgesinnte finden, die ihr Wissen mit Ihnen teilen und Ihnen den Ansporn für neue Experimente geben!