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
Big Grin Brauche dringend Hilfe mit dem Programmieren von Servo und Taster holzchistli 4 242 19.06.2018 16:45
Letzter Beitrag: hotsystems
  2 Schrittmotoren laufen lassen Reinhard112 20 1.471 09.04.2018 19:16
Letzter Beitrag: Tommy56
  Taster schalten LEDs mit Schieberegister Sonne 3 383 26.03.2018 20:08
Letzter Beitrag: hotsystems
  LCD Menü per taster Herberto 3 466 21.02.2018 17:56
Letzter Beitrag: Herberto
  LCD Menü per taster Luppi 5 3.667 18.02.2018 12:44
Letzter Beitrag: ardu_arne
  Temperatur mit Taster um +1 erhöhen T100 7 575 09.02.2018 04:58
Letzter Beitrag: T100
  Programm-Code für 4 Schrittmotoren Philipp92 18 1.541 27.01.2018 12:10
Letzter Beitrag: Tommy56
  led mit taster moankopf 11 960 25.12.2017 23:34
Letzter Beitrag: Chopp
  Taster 1 mal drücken = LED 2 mal blinken oder aufblitzen gordolino 19 2.484 03.11.2017 15:14
Letzter Beitrag: ardu_arne
  Taster: Wechselschaltung Nordlicht 33 3.731 18.09.2017 09:35
Letzter Beitrag: MicroBahner

Gehe zu:


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