Arduino richtig Prgrammieren

OP #4419749
Leider bin relativ unerfahren was das Programmieren angeht. Ich hab zwar 
die Anleitung vom Arduino Mega 2560 durch, komme aber mit meinem Projekt 
nicht weiter.

Ich möchte mit einem Poti den Stellbefehl für einen Schrittmotor 
umsetzten.
Grundannahme: Schrittmotor mit 200 Schritten und 10 Umdrehungen des 
Motors

Poti bei 0% = 0 Schritte
Poti bei 24% = 480 Schritte
Poti bei 78% = 1560 Schritte
usw.

Wenn ich den Poti nun zurück drehe, dann soll der Schrittmotor auch auf 
den Wert zurückfahren (Im Grunde wird damit ein Ventil gesteuert)

Anhang:
Oben steht die Grundannahme (wird sich vlt noch etwas ändern, da der 
Schrittmotor noch nicht feststeht.)
1. zuerst soll eine Referenzfahrt stattfinden
2. jetzt soll der Motor sich nach dem Wert des Potentiometers ausrichten


Ich hoffe ihr könnt mir mit dem Programm helfen
Angehängte Dateien:
Gast
Es reicht mit Sicherheit nicht nur eine Bedienungsanleitung eines Mega 
durchzulesen, du solltes dich auch in die Programmiersprache einarbeiten 
und die Grundlagen lernen.
Gast
> 1. zuerst soll eine Referenzfahrt stattfinden

Also ersmal 2200 Schritte richtung "0%", egal wo der Motor(das Ventil) 
stand. Ok?

Dann weiss ziemlich sicher dass man bei 0% (Ventil zu?) steht,jedoch 
auch Achsenbruch & Getriebeschaden hat, Motor & Netzteil Rauchzeichen 
abgeben und die Sicherung raus ist.
Zumindest ohne weitere Vorkehrungen.
Gast
gedanken richtig ordnen:
1
GLOBAL:
2
    MSCHRITTE=0;
3
    PPOS=0;
4

5
SETUP:
6
    poti-erfassung aktivieren;
7
    motor still;
8

9
    motor -2200 schritte;
10

11

12
LOOP:
13
    PPOS=(poti-erfassung, in Schritte umgerechnet);  // immer positiv
14

15
    MEHRSCHRITTE=PPOS-MSCHRITTE;  // kann negativ sein
16

17
    motor MEHRSCHRITTE schritte;
@ René Kattner (speedy1991)

>Poti bei 0% = 0 Schritte
>Poti bei 24% = 480 Schritte
>Poti bei 78% = 1560 Schritte
>usw.

>Wenn ich den Poti nun zurück drehe, dann soll der Schrittmotor auch auf
>den Wert zurückfahren (Im Grunde wird damit ein Ventil gesteuert)

Das nennt man einen Servo.

>Oben steht die Grundannahme (wird sich vlt noch etwas ändern, da der
>Schrittmotor noch nicht feststeht.)
>1. zuerst soll eine Referenzfahrt stattfinden

OK.

>2. jetzt soll der Motor sich nach dem Wert des Potentiometers ausrichten

Gut. Dazu braucht man einen Soll- und IST-Wert.

Der Soll kommt vom Poti, den IST muss man mitzählen. Die Differenz muss 
man als Schritte ausgeben und den Motor dabei drehen. Je nach Wunsch und 
Geschwindigkeit kann man nach jeder Differenzbildung erstmal alle 
Schritte abarbeiten oder nach jedem Schritt den Poti neu einlesen und 
entsprechend reagieren. Deine Skizzen sind ein Anfang.
1
int soll, ist, adc_wert;
2

3
setup() {
4
  if(!mache_referenzfahrt()) {
5
    serial.print("Referenzfahrt Error!");
6
    while(1);  // STOP
7
  }
8
}
9

10
loop() {
11
  analog_read(0) = adc_wert;
12
  soll = adc_wert * 2000L / 1024;
13
  if(soll > ist) {
14
    mache_schritt_links();
15
    ist++;
16
  } else if(soll < ist) {
17
    mache_schritt_rechts();
18
    ist--;
19
  }
20
}
21

22
int mache_referenzfahrt() {
23
  int i;
24
  for (i=2000; i>0; i--) {  // max 2000 Schritte für Referenzfahrt
25
    if (EINGANG_NULL) break;
26
    mache_schritt_links()
27
  }
28
  if (i==0) {
29
    // Fehler bei Referenzfahrt
30
   return 0;
31
  } else {
32
    return 1;
33
  }
34
}

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.