Projekt: Hilfe Programmierung Arduino + Schrittmotor + Knöpfe

Hallo Leute,

ich möchte eine Insulinspritze mit einem Schrittmotor bauen. Diesen möchte ich per Knopfdruck ansteuern.
Soll heißen, wenn der Knopf gedrückt wird, soll sich der Schrittmotor um eine bestimmte Anzahl von Schritten drehen.
Super wäre es wenn pro Knopfdruck ein LED Lämpchen dazu angeht. Nun ist meine Frage, wie man programmiertechnisch diese
"Verknüpfung" der eben genannten Faktoren, also pro Knopfdruck = 1 gewisse Anzahl Schritte + 1 LED hinbekommt.
Kann mir jemand dazu ein paar Vorschläge geben? Danke schon einmal im voraus :)!

mfg,
auqarömer

aquaroemer:
Nun ist meine Frage, wie man programmiertechnisch diese
"Verknüpfung" der eben genannten Faktoren, also pro Knopfdruck = 1 gewisse Anzahl Schritte + 1 LED hinbekommt.

Ganz einfach:

  1. Man schreibe ein kleines Programm, das einen Knopf überprüft und falls er gedrückt wird, etwas macht. Und sollte man es nicht schreiben wollen, kann man jedes beliebige Tutorial zu diesem Thema nehmen. Das ist meistens so das zweite, nach dem Led-blinken-lassen.

  2. Man schreibe ein kleines Programm, um den Schrittmotor zu steuern. Das ebenfalls ist meistens das erste Tutorial zum Thema Schrittmotor.

  3. Man erweitere das Programm aus Schritt 2 um eine definierte Anzahl von Schritten zu steuern. Das sollte ebenfalls als Tutorial vorhanden sein. Wenn nicht, ist das auch nicht so schwer.

  4. Man kombiniere die Programme aus Schritt 3 und Schritt 1.

Korman

Laß das bleiben.
Wenn irgendwas schief geht bekommst Du zuviel Insulin ab und gehst drauf.
Grüße Uwe

ich schätze das er das ned braucht zum insulispritzen sodern für aquariendüngung :wink:

Lassen wir es ihm sagen was er mit der motorisierten Spritze vor hat.
Grüße Uwe

Danke für die Hilfe. Ich werde es ausprobieren.
Bei dem Projekt geht es nicht darum eine echte Insulinspritze
zu bauen, dazu wären auch die Mittel zu gering. Ich möchte lediglich ein "Ersatzgerät", dass dann bspw. Wasser anstatt Insulin spritzt ;).

Wenn man einmal als Basis das Tutorial zum Thema Button nimmt und ich davon ausgehe, daß du ein Programmfragment hast, daß deine Motor bewegt. Dann sieht die Sache etwa so aus:

const int buttonPin = 2;     // the number of the pushbutton pin
const int ledPin =  13;      // the number of the LED pin

// variables will change:
int buttonState = 0;         // variable for reading the pushbutton status
int oldButtonState = LOW;

void setup() {
  // initialize the LED pin as an output:
  pinMode(ledPin, OUTPUT);      
  // initialize the pushbutton pin as an input:
  pinMode(buttonPin, INPUT);    
}

void loop(){
   
   

  // read the state of the pushbutton value:
  buttonState = digitalRead(buttonPin);

   // Check if button has changed - We just want one action per button press
   if (buttonState != oldButtonState) {
    // check if the pushbutton has just been pressed.
    // if it is, the buttonState is HIGH:
    if (buttonState == HIGH) {    
      // turn LED on:    
      digitalWrite(ledPin, HIGH);  


      // add here your code to move the motor x steps.
      ....
   

      // turn LED off:
      digitalWrite(ledPin, LOW);
    }

    // Simple debouncing of button
    delay (200);

    // Remember the new button state.
    oldButtonState = buttonState;
  }
}

Die Zeile mit den ... ersetzt du mit dem Code um den Motor zu bewegen.

Damit solltest du zurechtkommen.

Korman

Ok, vielen Dank :)!

// Simple debouncing of button
delay (200);

// Remember the new button state.
oldButtonState = buttonState;

Das versteh ich nicht. Was bewirkt das?