Kategorien: Ausgewählte Artikel » Praktische Elektronik
Anzahl der Ansichten: 67360
Kommentare zum Artikel: 7
Anschließen und Programmieren von Arduino für Anfänger
Scheint das Studium von Mikrocontrollern kompliziert und unverständlich? Vor dem Erscheinen von Arudino war es wirklich nicht einfach und erforderte eine bestimmte Gruppe von Programmierern und anderen Geräten.
Was ist ein Arduino?
Dies ist eine Art elektronischer Konstruktor. Das ursprüngliche Ziel des Projekts ist es, den Menschen das einfache Programmieren elektronischer Geräte zu ermöglichen und gleichzeitig nur minimale Zeit für den elektronischen Teil aufzuwenden.
Die Montage der kompliziertesten Schaltkreise und der Anschluss der Platinen kann ohne Lötkolben und mit Hilfe von Steckbrücken mit abnehmbaren Verbindungen „Vater“ und „Mutter“ erfolgen. Auf diese Weise können sowohl Anhänge als auch Erweiterungskarten verbunden werden, die im Lexikon der Arduinisten einfach als „Schilde“ bezeichnet werden.

Was ist das erste Arduino-Board, das für einen Neuling gekauft wird?
Die Basis und beliebteste Tafel wird berücksichtigt Arduino uno. Diese Gebühr ähnelt einer Kreditkarte. Ziemlich groß. Die meisten Schilde, die zum Verkauf stehen, sind perfekt für sie. Auf der Platine befinden sich Buchsen zum Anschließen externer Geräte.

In inländischen Geschäften für 2017 liegt der Preis bei etwa 4-5 Dollar. Bei modernen Modellen ist Atmega328 ihr Herz.
Bild- und Funktionsdecodierung der Arduino-Platine für jeden Pin, Arduino UNO-Pinbelegung
Der Mikrocontroller auf dieser Platine ist ein langer Chip im DIP28-Gehäuse, der anzeigt, dass er 28 Beine hat.
Das nächstbeliebteste Board kostet fast doppelt so viel wie das vorherige - 2-3 Dollar. Das ist das Board Arduino Nano. Tatsächliche Boards werden von demselben Atmega328 gebaut, sie ähneln funktionell UNO, es gibt Größenunterschiede und eine passende Lösung mit USB, dazu später mehr. Ein weiterer Unterschied besteht darin, dass ein Stecker in Form von Nadeln zum Anschließen von Geräten an die Leiterplatte vorgesehen ist.

Die Anzahl der Stifte (Beine) dieser Platine ist gleich, aber Sie können beobachten, dass der Mikrocontroller in einem kompakteren TQFP32-Gehäuse hergestellt ist. ADC6 und ADC7 werden in dem Fall hinzugefügt, die anderen beiden „zusätzlichen“ Beine duplizieren den Leistungsbus. Die Abmessungen sind recht kompakt - ungefähr so groß wie ein Daumen Ihrer Hand.
Das drittbeliebteste Board ist Arduino Pro MiniDa es keinen USB-Anschluss für den Anschluss an einen Computer gibt, werde ich Ihnen später erläutern, wie Sie kommunizieren können.

Arduino Nano vs Pro Mini Größenvergleich
Dies ist das kleinste Motherboard aller in Betracht gezogenen Modelle, ansonsten ähnelt es den beiden vorherigen und Atmega328 ist immer noch sein Herz. Wir werden andere Boards nicht berücksichtigen, da dies ein Artikel für Anfänger ist und der Vergleich von Boards das Thema eines separaten Artikels ist.
Arduino Pro Mini PinbelegungIm oberen Teil ist das USB-UART-Anschlussdiagramm, Pin „GRN“, mit der Rücksetzschaltung des Mikrocontrollers verbunden. Es kann auch anders aufgerufen werden, was Sie später herausfinden müssen.
Zusammenfassung:
Wenn UNO für das Prototyping geeignet ist, sind Nano und Pro Mini für die endgültigen Versionen Ihres Projekts geeignet, da sie wenig Platz beanspruchen.

Wie verbinde ich Arduino mit einem Computer?
Arduino Uno und Nano verbinden sich über USB mit einem Computer. Gleichzeitig gibt es keine Hardware-Unterstützung für den USB-Anschluss. Hier wird eine Schaltungslösung für die Pegelkonvertierung verwendet, die üblicherweise als USB-zu-Seriell oder USB-UART (rs-232) bezeichnet wird. Gleichzeitig wird ein spezieller Arduino-Bootloader in den Mikrocontroller geflasht, der das Flashen auf diesen Bussen ermöglicht.
In Arduino Uno ist diese Ligatur auf einem Mikrocontroller mit USB-Unterstützung implementiert - ATmega16U2 (AT16U2). Es stellt sich heraus, dass der zusätzliche Mikrocontroller auf der Platine zum Flashen des Hauptmikrocontrollers benötigt wird.
In Arduino Nano wird dies vom FT232R-Chip oder seinem analogen CH340 implementiert. Dies ist kein Mikrocontroller - es ist ein Pegelwandler. Diese Tatsache macht es einfach, den Arduino Nano von Grund auf mit Ihren eigenen Händen zusammenzubauen.
In der Regel werden Treiber automatisch installiert, wenn die Arduino-Karte angeschlossen wird. Als ich jedoch eine chinesische Kopie des Arduino Nano kaufte, wurde das Gerät erkannt, aber es funktionierte nicht. Ein runder Aufkleber mit Daten zum Veröffentlichungsdatum wurde auf den Konverter geklebt. Ich weiß nicht, ob dies absichtlich gemacht wurde, aber nach dem Abziehen sah ich die Markierung CH340.
Zuvor war ich nicht darauf gestoßen und dachte, dass alle USB-UART-Konverter auf FT232 montiert waren. Ich musste Treiber herunterladen. Sie sind auf Anfrage des „Arduino ch340-Treibers“ sehr leicht zu finden. Nach einer einfachen Installation hat es funktioniert!
Über denselben USB-Anschluss kann der Mikrocontroller auch mit Strom versorgt werden, d. H. Wenn Sie es von einem Mobiltelefon aus an den Adapter anschließen, funktioniert Ihr System.
Was soll ich tun, wenn mein Board keinen USB hat?
Der Arduino Pro Mini ist kleiner. Dies wurde erreicht, indem der USB-Anschluss für die Firmware und derselbe USB-UART-Konverter entfernt wurden. Daher muss es separat erworben werden. Der einfachste Konverter für CH340 (der billigste), CPL2102 und FT232R, zum Verkauf kostet ab 1 USD.
Achten Sie beim Kauf darauf, für welche Spannung dieser Adapter ausgelegt ist. Pro mini ist in den Versionen 3.3 und 5 V erhältlich. An den Wandlern befindet sich häufig eine Brücke, um die Versorgungsspannung umzuschalten.

Wenn Sie den Pro Mini kurz vor dem Start flashen, müssen Sie auf RESET klicken. Bei Konvertern mit DTR müssen Sie dies jedoch nicht tun, wie in der folgenden Abbildung dargestellt.

Zu ihnen gesellen sich spezielle Terminals "Mama-Mama" (weiblich-weiblich).

Tatsächlich können alle Verbindungen mit solchen Klemmen (Dupont) hergestellt werden. Beide befinden sich auf zwei Seiten mit Buchsen und Steckern und auf der einen Seite mit einer Buchse und auf der anderen Seite mit einem Stecker.

Wie schreibe ich Programme für Arduino?
Um mit Skizzen arbeiten zu können (der Name der Firmware ist in der Sprache des Arduino), gibt es eine spezielle integrierte Umgebung für die Entwicklung der Arduino-IDE. Sie können sie kostenlos von der offiziellen Website oder von einer beliebigen thematischen Ressource herunterladen. Normalerweise gibt es keine Probleme bei der Installation.
So sieht die Programmoberfläche aus. Sie können Programme in der vereinfachten C AVR-Sprache schreiben, die speziell für Arduino entwickelt wurde. Tatsächlich handelt es sich um eine Reihe von Bibliotheken namens Wiring sowie in reinem C AVR. Die Verwendung erleichtert den Code und beschleunigt seine Arbeit.
Oben im Fenster befindet sich ein bekanntes Menü, in dem Sie die Datei und die Einstellungen öffnen, das Board auswählen können, mit dem Sie arbeiten (Uno, Nano und viele, viele andere) und Projekte mit vorgefertigten Codebeispielen öffnen können. Unten finden Sie eine Reihe von Schaltflächen zum Arbeiten mit Firmware. Die Tasten sehen Sie in der folgenden Abbildung.

Am unteren Rand des Fensters befindet sich ein Bereich, in dem Informationen zum Projekt, zum Status des Codes, zur Firmware und zum Vorhandensein von Fehlern angezeigt werden.
Grundlagen der Arduino IDE-Programmierung
Zu Beginn des Codes müssen Sie Variablen deklarieren und zusätzliche Bibliotheken verbinden. Wenn diese vorhanden sind, gehen Sie wie folgt vor:
#include biblioteka.h; // verbinde die Bibliothek mit dem Namen "Biblioteka.h"
#define peremennaya 1234; // Deklariere eine Variable mit einem Wert von 1234
Mit dem Befehl Definieren kann der Compiler den Typ der Variablen auswählen. Sie können ihn jedoch manuell festlegen, z. B. eine Ganzzahl int oder einen Gleitkomma-Gleitkommawert.
int led = 13; // die Variable "led" erstellt und ihr den Wert "13" zugewiesen
Das Programm kann den Zustand des Pins als 1 oder 0 bestimmen. 1 ist eine logische Einheit. Wenn Pin 13 1 ist, entspricht die Spannung an seinem physischen Zweig der Versorgungsspannung des Mikrocontrollers (für Arduino UNO und Nano - 5 V).
Das digitale Signal wird mit dem Befehl digitalWrite (Pin, Wert) aufgezeichnet, zum Beispiel:
digitalWrite (LED, hoch); // schreibe das Gerät auf Pin 13 (wir haben es oben angekündigt) log. Einheiten.
Wie Sie verstehen können, erfolgt der Zugriff auf die Ports durch Nummerierung auf der Karte, entsprechende Abbildung. Hier ist ein Beispiel ähnlich dem vorherigen Code:
digitalWrite (13, hoch); // Pin 13 auf eins setzen
Oft wird die gesuchte Zeitverzögerungsfunktion durch den Befehl delay () aufgerufen, dessen Wert in Millisekunden eingestellt wird, wobei Mikrosekunden mit erreicht werden
delayMicroseconds () Verzögerung (1000); // Mikrocontroller wartet 1000 ms (1 Sekunde)
Die Porteinstellungen für Ein- und Ausgabe werden in der Funktion void setup {} mit dem folgenden Befehl festgelegt:
void setup () {
pinMode (NOMERPORTA, OUTPUT / INPUT); // Argumente - Variablenname oder Portnummer, Eingabe oder Ausgabe zur Auswahl
}
Leere Schleife {}
Das erste Blink-Programm verstehen
Als eine Art „Hallo Welt“ für Mikrocontroller gibt es ein LED-Blinkprogramm. Lassen Sie uns den Code analysieren:
Am Anfang haben wir mit dem Befehl pinMode den Mikrocontroller angewiesen, dem Ausgang einen Port mit einer LED zuzuweisen.Sie haben bereits bemerkt, dass der Code die Variable „LED_BUILTIN“ nicht deklariert. Tatsache ist, dass bei Uno, Nano und anderen werkseitigen Karten die eingebaute LED an Pin 13 angeschlossen und mit der Karte verlötet ist. Es kann von Ihnen zur Anzeige in Ihren Projekten oder zur einfachsten Überprüfung Ihrer Flash-Programme verwendet werden.
Als nächstes setzen wir den Ausgang, an den die LED gelötet ist, auf Eins (5 V), die nächste Zeile lässt den MK 1 Sekunde warten und setzt dann den LED_BUILTIN-Pin auf Null, wartet eine Sekunde und das Programm wiederholt sich in einem Kreis, also wenn LED_BUILTIN 1 ist - die LED ( und jede andere an den Port angeschlossene Last wird eingeschaltet, wenn sie bei 0 ausgeschaltet ist.
Funktioniert alles und alles ist klar? Dann mach weiter!
Wir lesen den Wert vom analogen Port und verwenden die gelesenen Daten
Der Atmega328 AVR-Mikrocontroller verfügt über einen eingebauten 10-Bit-Analog-Digital-Wandler. Mit dem 10-Bit-ADC können Sie den Spannungswert von 0 bis 5 Volt in Schritten von 1/1024 des gesamten Amplitudenbereichs des Signals (5 V) ablesen.
Um es klarer zu machen, betrachten Sie die Situation, nehmen Sie an, dass der Spannungswert am Analogeingang 2,5 V beträgt, dann liest der Mikrocontroller den Wert von Pin "512", wenn die Spannung 0 - "0" ist und wenn 5 V - (1023). 1023 - weil die Zählung von 0 geht, d.h. 0, 1, 2, 3 usw. bis zu 1023 - insgesamt 1024 Werte.
So sieht es im Code am Beispiel der Standardskizze „analogInput“ aus
int sensorPin = A0;
int ledPin = 13;
int sensorValue = 0;
void setup () {
pinMode (ledPin, OUTPUT);
}
void loop () {
sensorValue = analogRead (sensorPin);
digitalWrite (ledPin, HIGH);
Verzögerung (sensorValue);
digitalWrite (ledPin, LOW);
Verzögerung (sensorValue);
}

Das Anschlussschema des Potentiometers an Arduino, analog den zentralen Ausgang, den Sie an jeden analogen Eingang anschließen können.
Variablen deklarieren:
-
Ledpin - Weisen Sie dem Ausgang unabhängig einen Pin mit integrierter LED zu und geben Sie ihm einen individuellen Namen.
-
sensorPin - Analogeingang, eingestellt gemäß der Markierung auf der Platine: A0, A1, A2 usw.;
-
sensorValue - eine Variable zum Speichern eines ganzzahligen Lesewerts und zum weiteren Arbeiten damit.
Der Code funktioniert folgendermaßen: sensorValue speichert den mit sensorPin gelesenen Analogwert (Befehl analogRead). - hier endet die Arbeit mit dem analogen Signal, dann ist alles wie im vorherigen Beispiel.
Wir schreiben die Einheit in ledPin, die LED leuchtet auf und warten auf eine Zeit, die dem Wert von sensorValue entspricht, d. H. von 0 bis 1023 Millisekunden. Schalten Sie die LED aus und warten Sie erneut für diesen Zeitraum. Danach wiederholt sich der Code.
Durch die Position des Potentiometers stellen wir also die Blinkfrequenz der LED ein.
Kartenfunktion für Arudino
Nicht alle Funktionen für Aktuatoren (ich kenne keine) unterstützen "1023" als Argument. Beispielsweise ist der Servoantrieb durch den Drehwinkel begrenzt, dh durch eine halbe Umdrehung (180 Grad) (halbe Umdrehung) des Servomotors ist das maximale Argument der Funktion "180".
Nun zur Syntax: map (der Wert, den wir übersetzen, ist die minimale Eingabe, die maximale Eingabe, die minimale Ausgabe, die maximale Ausgabe).
Im Code sieht es so aus:
(map (analogRead (pot), 0, 1023, 0, 180));
Wir lesen den Wert vom Potentiometer (analogRead (pot)) von 0 bis 1023 ab und erhalten am Ausgang Zahlen von 0 bis 180
Wertezuordnungswerte:
-
0=0;
-
1023=180;
In der Praxis wenden wir dies auf die Arbeit desselben Servocodes an. Sehen Sie sich den Code mit der Arduino-IDE an. Wenn Sie die vorherigen Abschnitte sorgfältig gelesen haben, ist keine Erklärung erforderlich.

Und das Anschlussdiagramm.

Schlussfolgerungen Arduino ist ein sehr praktisches Werkzeug, um zu lernen, wie man mit Mikrocontrollern arbeitet. Wenn Sie reines C AVR verwenden oder es manchmal als "Pure C" bezeichnet wird, reduzieren Sie das Codegewicht erheblich und passen mehr in den Speicher des Mikrocontrollers. Dadurch erhalten Sie eine hervorragende werkseitig hergestellte Debugging-Karte mit USB-Firmware.

Meinung des Autors:
Ich mag Arduino. Es ist schade, dass viele erfahrene Mikrocontroller-Programmierer es unangemessen kritisieren, dass es zu vereinfacht ist. Im Prinzip wird nur die Sprache vereinfacht, aber niemand zwingt Sie dazu, sie zu verwenden. Außerdem können Sie den Mikrocontroller über den ICSP-Anschluss flashen und den gewünschten Code eingeben, ohne dass Sie keine Bootloader benötigen.
Für diejenigen, die als fortgeschrittener Konstrukteur mit Elektronik spielen möchten, ist es perfekt, aber für erfahrene Programmierer ist auch ein Board nützlich, das keine Montage erfordert!
Weitere Informationen über Arduino und die Funktionen seiner Verwendung in verschiedenen Schemata finden Sie im E-Book -Arduino für Dummies. Illustrierte praktische Anleitung.
Siehe auch auf electro-de.tomathouse.com
: