INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
3 Schrittmotoren, 2 LED's 1 Taster
31.03.2016, 15:21
Beitrag #1
3 Schrittmotoren, 2 LED's 1 Taster
Hallo in die Runde, ich bin neu hier im Forum und besitze nur wenig Programmiererfahrung und die hab ich auch nur aus den Tutorials von YouTube und hoffe hier Hilfe zu finden….
Aus zwei kopierten Sketch’s wollte ich einen machen aber irgendwo mach ich einen gravierenden Fehler. Ich möchte an einem Arduino Micro 3 Schrittmotoren mit 2 Led’s und einem Taster betreiben. Taster einmal drücken erste LED geht an und der erste Motor fährt zu einer Position,
erneut drücken LED1 geht aus LED2 geht an und der zweite Motor fährt an eine Position, wenn er angekommen ist sollte der dritte Motor automatisch in eine Position fahren. Ich denke mein Hauptfehler lieg[/color]t im Loop Teil. Es ist ja so gedacht, dass der Taster immer um 1 Hochgezählt werden sollte und dann die jeweilige LED anspringt und nach der LED der Schrittmotor starten soll….
Ich habe mir einen Sketch aus einem Tutorial zum durchschalten von LED’s gesucht und ein für einen einfachen Nema14 Schrittmotor mit Easy Driver der auch funktioniert und den ich getestet habe. Auf Grund der Platinenröße habe ich nicht das Motorshield sondern Easy Driver nehmen müssen. Ich habe es auch nur erstmal mit zwei Motoren versucht…... würde mich freuen wenn mir jemand einen Tipp gibt..Danke!

// Konstanten
const int InputPin = 4; // Taster 1 an Pin 4 angeschlossen
const int led1Pin = 3; //LED 1 an Pin 3 angeschlossen
const int led2Pin = 5; //LED 2 an Pin 5 angeschlossen

// Variablen
int lichtmodus = 0; // Variable für die verschiedenen Led's
int tasterStatus = LOW; // Variable zum speichern des Tassterstatus
int pin1Dir = 7; // Motor 1 Variable Drehrichtung
int pin1Step = 8; // Motor 1 Variable Umdreheungen und Zeit
int pin2Dir = 9; // Motor 2 Variable Drehrichtung
int pin2Step = 10; // Motor 2 Variable Umdreheungen und Zeitsetup()
void setup()
{
pinMode(InputPin, INPUT); //Setzt den Taster als Eingang
pinMode(led1Pin, OUTPUT); //Setzt den LED1 Pin als Ausgang
pinMode(led2Pin, OUTPUT); //Setzt den LED2 Pin als Ausgang
pinMode(pin1Dir, OUTPUT); //Setzt den Pin als Ausagang
pinMode(pin1Step, OUTPUT); //Setzt den Pin als Ausgang
pinMode(pin2Dir, OUTPUT); //Setzt den Pin als Ausagang
pinMode(pin2Step, OUTPUT); //Setzt den Pin als Ausgang
}

void loop()
{
// Abfrage ob Taster gedrückt ist
tasterStatus = digitalRead(InputPin);
// Prüfen ob der Taster gedrückt ist
// Wenn der Tasterstatus High ist:
if (tasterStatus == HIGH)
{
lichtmodus++; //Lichtmodus zählt +1 dazu
delay(300); // 300ms warten
}
// Modus 0 = Licht aus
if (lichtmodus == 0)
{
digitalWrite(led1Pin, LOW);
digitalWrite(led2Pin, LOW);

}

// Modus 1 = led1
else if (lichtmodus == 1)
{
digitalWrite(led1Pin, HIGH);
digitalWrite(led2Pin, LOW);
{
// ab hier kommt der erste Motor dazu
drehen(1600,200);
delay(1000);
drehen(-1600,200);
delay(1000);
}
void drehen(int schritte, int tempo)
{
if(schritte > 0)
digitalWrite(pinDir,HIGH);
else
digitalWrite(pinDir,LOW);

schritte = abs(schritte);

for(int i=0; i < schritte; i++)
{
digitalWrite(pinStep, HIGH);
delayMicroseconds(tempo);
digitalWrite(pinStep, LOW);
delayMicroseconds(tempo);
{

// Modus 2 = led2
else if (lichtmodus == 2)
{
digitalWrite(led1Pin, LOW);
digitalWrite(led2Pin, HIGH);
{
// ab hier kommt der zweite Motor dazu
drehen(1600,200);
delay(1000);
drehen(-1600,200);
delay(1000);
}
void drehen(int schritte, int tempo)
{
if(schritte > 0)
digitalWrite(pinDir,HIGH);
else
digitalWrite(pinDir,LOW);

schritte = abs(schritte);

for(int i=0; i < schritte; i++)
{
digitalWrite(pinStep, HIGH);
delayMicroseconds(tempo);
digitalWrite(pinStep, LOW);
delayMicroseconds(tempo);
{
}
// Anzahl der Leuchtmodi auf 3 begrenzen als 0 bis 2 Möglichkeiten
else
{
// LED's was nach 0-2 kommt soll wieder an den Anfang starten
lichtmodus = 0;
}
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Arduino 2 schrittmotoren ansteuern super47 3 151 03.12.2016 14:31
Letzter Beitrag: Franz54
  mehrere Taster entprellen Kitt 15 532 24.10.2016 21:17
Letzter Beitrag: georg01
  Taster für mehrere Funktionen matthias3579 5 353 16.08.2016 16:00
Letzter Beitrag: StephanBuerger
  Steuern von 4 Servo mittels eines Taster und eines Potis Jackie09 17 766 16.07.2016 11:43
Letzter Beitrag: Binatone
  Schwellwert mit Taster ändern malsehen 16 1.421 12.04.2016 20:11
Letzter Beitrag: malsehen
  Arduino Alarmanlage mit Taster erweitern Vengance 0 529 22.03.2016 17:54
Letzter Beitrag: Vengance
  Taster abfragen Rudi 3 694 25.02.2016 14:03
Letzter Beitrag: hotsystems
  digitalOutputpin mit Taster an- oder ausschalten Raptor 2 577 26.12.2015 20:59
Letzter Beitrag: torsten_156
  Accel Stepper Library für Schrittmotoren Problem Rampe fahren Schrittmotor 0 990 13.10.2015 21:03
Letzter Beitrag: Schrittmotor
  Problem mit Taster eddykett 0 784 23.08.2015 10:16
Letzter Beitrag: eddykett

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste