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
Smile Motorsteuerung mit Taster Eggi123 11 400 26.02.2017 15:48
Letzter Beitrag: MicroBahner
  Arduino-UNO LED über Taster digital zum leuchten zu bringen IvKriz 9 339 18.02.2017 08:33
Letzter Beitrag: renid55
  Hilfe bei Taster huber5093 11 307 14.02.2017 19:26
Letzter Beitrag: Tommy56
  8 Taster an einem Pin Kitt 9 470 04.02.2017 18:51
Letzter Beitrag: ardu_arne
  Led Impuls beim Taster betätigen clemens5555 11 453 17.01.2017 20:00
Letzter Beitrag: renid55
  Über drei Taster zwei externe Timer steuern Sidamo 23 614 09.01.2017 20:12
Letzter Beitrag: Tommy56
  Led mit taster ausschalten Frankeg 17 729 07.01.2017 21:17
Letzter Beitrag: renid55
  Arduino 2 schrittmotoren ansteuern super47 10 730 04.01.2017 01:35
Letzter Beitrag: renid55
  aufeinander Aufbauende Lichtaktion mit einem Taster Colby 9 482 17.12.2016 13:30
Letzter Beitrag: Colby
  mehrere Taster entprellen Kitt 15 958 24.10.2016 21:17
Letzter Beitrag: georg01

Gehe zu:


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