Grundkenntnisse Programmierung 2 (Servomotor mit einem Potentiometer steuern): Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
[[Kategorie:Arduino: Projekt]]
[[Kategorie:Arduino: Projekt]]
'''Autor:''' Justin Frommberger<br>
'''Autor: ''' Justin Frommberger<br>
== #include ==
== #include ==
Wird verwendet, um eine '''Bibliothek''' in das Programm einzufügen.
Wird verwendet, um eine '''Bibliothek''' in das Programm einzufügen.
Zeile 7: Zeile 7:


['''Quelltext 1: ''' <code>include.ino</code>]
['''Quelltext 1: ''' <code>include.ino</code>]
<syntaxhighlight lang="C" style="border: none; background-color: #EFF1C1; font-size:14px">
<syntaxhighlight lang="C" style="border: none; background-color: #EFF1C1; font-size:small">
# include <Servo.h>  // eingebaute Bibliothek einbinden
# include <Servo.h>  // eingebaute Bibliothek einbinden
Servo Motor;
Servo Motor;
Zeile 18: Zeile 18:


['''Quelltext 2: ''' <code>init.ino</code>]
['''Quelltext 2: ''' <code>init.ino</code>]
<syntaxhighlight lang="C" style="border: none; background-color: #EFF1C1; font-size:14px">
<syntaxhighlight lang="C" style="border: none; background-color: #EFF1C1; font-size:small">
Servo Motor;  // Motor initialisieren
Servo Motor;  // Motor initialisieren
</syntaxhighlight>
</syntaxhighlight>
Zeile 27: Zeile 27:


['''Quelltext 3: ''' <code>attach.ino</code>]
['''Quelltext 3: ''' <code>attach.ino</code>]
<syntaxhighlight lang="C" style="border: none; background-color: #EFF1C1; font-size:14px">
<syntaxhighlight lang="C" style="border: none; background-color: #EFF1C1; font-size:small">
Motor.attach(9); // Motor an Pin 9 angeschlossen (attach)
Motor.attach(9); // Motor an Pin 9 angeschlossen (attach)
</syntaxhighlight>
</syntaxhighlight>
Zeile 35: Zeile 35:


['''Quelltext 4: ''' <code>write.ino</code>]
['''Quelltext 4: ''' <code>write.ino</code>]
<syntaxhighlight lang="C" style="border: none; background-color: #EFF1C1; font-size:14px">
<syntaxhighlight lang="C" style="border: none; background-color: #EFF1C1; font-size:small">
Motor.write(Position); // Motor zur Position bewegen
Motor.write(Position); // Motor zur Position bewegen
</syntaxhighlight>
</syntaxhighlight>
Zeile 47: Zeile 47:


['''Quelltext 5: ''' <code>analogRead.ino</code>]
['''Quelltext 5: ''' <code>analogRead.ino</code>]
<syntaxhighlight lang="C" style="border: none; background-color: #EFF1C1; font-size:14px">
<syntaxhighlight lang="C" style="border: none; background-color: #EFF1C1; font-size:small">
int analogPin = A3;  // Pin, der gelesen werden soll: Pin A3
int analogPin = A3;  // Pin, der gelesen werden soll: Pin A3
int val = 0;        // Variable, die den gelesenen Wert speichert
int val = 0;        // Variable, die den gelesenen Wert speichert
Zeile 79: Zeile 79:


['''Quelltext 6: ''' <code>map.ino</code>]
['''Quelltext 6: ''' <code>map.ino</code>]
<syntaxhighlight lang="C" style="border: none; background-color: #EFF1C1; font-size:14px">
<syntaxhighlight lang="C" style="border: none; background-color: #EFF1C1; font-size:small">
void loop()
void loop()
{
{

Version vom 26. August 2023, 13:29 Uhr

Autor: Justin Frommberger

#include

Wird verwendet, um eine Bibliothek in das Programm einzufügen.

  • Eine Bibliothek ist eine Sammlung von Unterprogrammen/-routinen, die Lösungswege für Aufgaben vereinfachen, indem mit kurzen Befehlen Programmcode ausgeführt wird.
  • Beispiel: Servo.h Befehle.

[Quelltext 1: include.ino]

# include <Servo.h>  // eingebaute Bibliothek einbinden
Servo Motor;

Servo.h

Initialisierung

Der Servomotor wird initialisiert mit, siehe Quelltext 2:

[Quelltext 2: init.ino]

Servo Motor;  // Motor initialisieren

attach()

Der Motor wird über einen PWM Pin gesteuert.
Der PIN wird mit dem Befehl attach() festgelegt.

[Quelltext 3: attach.ino]

Motor.attach(9); // Motor an Pin 9 angeschlossen (attach)

write()

Um den Motor zu einer bestimmten Position zu drehen, wird der Code write() benötigt.

[Quelltext 4: write.ino]

Motor.write(Position); // Motor zur Position bewegen

Funktionen

analogRead()

Liest den Wert vom angegebenen analogen Pin ein.

  • Den analog gelesenen Wert auf dem Pin (int), allerdings ist der Wert limitiert durch die Auflösung des Digital-Konverters (0 - 1023 für 10 Bit und 0 - 4095 für 12 Bit).
  • Ein Digital-Konverter ist ein Umwandler, damit zwei Geräte miteinander kommunizieren können, obwohl sie eine andere Sprache sprechen.

[Quelltext 5: analogRead.ino]

int analogPin = A3;  // Pin, der gelesen werden soll: Pin A3
int val = 0;         // Variable, die den gelesenen Wert speichert

void setup() {
 
}

void loop() {
  val = analogRead(analogPin); // Pin einlesen
}

map()

Bildet eine Zahl von einem Bereich in einen anderen ab.
Das heißt, ein Wert von fromLow würde auf toLow, einen Wert von fromHigh bis toHigh, Werte zwischen dazwischen auf Werte dazwischen usw. zugeordnet.

Tabelle 1: map();
value Die Nummer, die zugeordnet werden soll.
fromLow Die untere Grenze des aktuellen Wertebereichs.
fromHigh Die obere Grenze des aktuellen Wertebereichs.
toLow Die untere Grenze des Zielbereichs des Werts.
toHigh Die obere Grenze des Zielbereichs des Werts.

[Quelltext 6: map.ino]

void loop()
{
                                                   // 0 bis 1023 (analoger Sensorwert)                                                      
map(value, fromLow, fromHigh, toLow, toHigh);       // 0 bis 180  (Drehung des Motors) 
                                                   // Low(tief) = 0  | High(hoch) = 1023 oder 180
}

[Link zum Nachlesen]



→ zurück zur Übersicht: Projekte